From b10c365513fe085197e50b33f045d640a1b6eb3d Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Sun, 26 Apr 2020 23:50:19 +0200 Subject: [PATCH] Using time-of-day in both 8 queens programs. --- .../eightqueens/eightqueens-recursive.c | 16 +- .../kc/examples/eightqueens/eightqueens.c | 4 +- src/test/kc/tod-1.c | 3 +- .../eightqueens/eightqueens-recursive.asm | 1289 +- .../eightqueens/eightqueens-recursive.cfg | 1288 +- .../eightqueens/eightqueens-recursive.log | 15198 +++++++++------- .../eightqueens/eightqueens-recursive.sym | 464 +- .../ref/examples/eightqueens/eightqueens.asm | 948 +- .../ref/examples/eightqueens/eightqueens.cfg | 1004 +- .../ref/examples/eightqueens/eightqueens.log | 10904 +++++------ .../ref/examples/eightqueens/eightqueens.sym | 287 +- src/test/ref/tod-1.asm | 28 +- src/test/ref/tod-1.cfg | 193 +- src/test/ref/tod-1.log | 1711 +- src/test/ref/tod-1.sym | 36 +- 15 files changed, 18176 insertions(+), 15197 deletions(-) diff --git a/src/test/kc/examples/eightqueens/eightqueens-recursive.c b/src/test/kc/examples/eightqueens/eightqueens-recursive.c index db66cc154..6b0d1aefe 100644 --- a/src/test/kc/examples/eightqueens/eightqueens-recursive.c +++ b/src/test/kc/examples/eightqueens/eightqueens-recursive.c @@ -5,6 +5,7 @@ // This is a recursive solution #include +#include #define QUEENS 8 #define PRINT_SOLUTIONS @@ -18,8 +19,10 @@ unsigned long count = 0; void main() { printf_cls(); printf(" - n queens problem using backtracking -"); - printf("\nNumber of queens:%u",QUEENS); + printf("\nnumber of queens:%u",QUEENS); + tod_init(TOD_ZERO); queen(1); + printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())); } // Generates all valid placements of queens on a NxN board recursively @@ -31,10 +34,13 @@ __stackcall void queen(char row) { if(legal(r,column)) { //no conflicts so place queen board[r]=column; - if(r==QUEENS) - // we are done! Print the board configuration + if(r==QUEENS) { + // A solution! Print the board configuration + count++; + #ifdef PRINT_SOLUTIONS print(); - else { + #endif + } else { // Perform recussive placement on rows above // Push the local vars on the stack (waiting for proper recursion support) asm { @@ -84,7 +90,7 @@ char diff(char a, char b) { // Print the board with a legal placement. Also increments the solution count. void print() { - printf("\n#%lu:\n ",++count); + printf("\n#%lu:\n ",count); for(char i=1;i<=QUEENS;++i) printf("%x",i); for(char i=1;i<=QUEENS;++i) { diff --git a/src/test/kc/examples/eightqueens/eightqueens.c b/src/test/kc/examples/eightqueens/eightqueens.c index 766e81f89..2f77e1e58 100644 --- a/src/test/kc/examples/eightqueens/eightqueens.c +++ b/src/test/kc/examples/eightqueens/eightqueens.c @@ -22,11 +22,9 @@ void main() { printf("\nnumber of queens:%u",QUEENS); tod_init(TOD_ZERO); queens(); - struct TIME_OF_DAY tod = tod_read(); - printf("\ntime: %s",tod_str(tod)); + printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())); } - // Generates all valid placements of queens on a NxN board without recursion // Works exactly like the recursive solution by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below // and then moving on to generating all legal placements on the rows above. diff --git a/src/test/kc/tod-1.c b/src/test/kc/tod-1.c index 51fa9a822..d00c49bf7 100644 --- a/src/test/kc/tod-1.c +++ b/src/test/kc/tod-1.c @@ -5,8 +5,7 @@ void main() { tod_init(TOD_ZERO); while(1) { - struct TIME_OF_DAY tod = tod_read(); gotoxy(0,0); - cputs(tod_str(tod)); + cputs(tod_str(tod_read())); } } diff --git a/src/test/ref/examples/eightqueens/eightqueens-recursive.asm b/src/test/ref/examples/eightqueens/eightqueens-recursive.asm index 340dfd3f3..da6a87af4 100644 --- a/src/test/ref/examples/eightqueens/eightqueens-recursive.asm +++ b/src/test/ref/examples/eightqueens/eightqueens-recursive.asm @@ -6,13 +6,24 @@ .pc = $801 "Basic" :BasicUpstart(__bbegin) .pc = $80d "Program" + // The CIA#1: keyboard matrix, joystick #1/#2 + .label CIA1 = $dc00 .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 + .const OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 + .const OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 + .const OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 + .const OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e + .const OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f + .const OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b + .const OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a + .const OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 + .const OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 .const STACK_BASE = $103 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - .label printf_cursor_x = $10 - .label printf_cursor_y = $11 - .label printf_cursor_ptr = $12 - .label count = $14 + .label printf_cursor_x = $11 + .label printf_cursor_y = $12 + .label printf_cursor_ptr = $13 + .label count = 2 __bbegin: // printf_cursor_x = 0 // X-position of cursor @@ -47,55 +58,331 @@ main: { lda #>str sta.z printf_str.str+1 jsr printf_str - // printf("\nNumber of queens:%u",QUEENS) + // printf("\nnumber of queens:%u",QUEENS) lda #str1 sta.z printf_str.str+1 jsr printf_str - // printf("\nNumber of queens:%u",QUEENS) + // printf("\nnumber of queens:%u",QUEENS) jsr printf_uint + // tod_init(TOD_ZERO) + lda TOD_ZERO + sta.z tod_init.tod_TENTHS + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC + sta.z tod_init.tod_SEC + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN + sta.z tod_init.tod_MIN + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS + sta.z tod_init.tod_HOURS + jsr tod_init // queen(1) lda #1 pha jsr queen pla + // tod_read() + jsr tod_read + // tod_str(tod_read()) + jsr tod_str + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + jsr printf_ulong + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + jsr printf_string + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + lda #str4 + sta.z printf_str.str+1 + jsr printf_str // } rts str: .text " - n queens problem using backtracking -" .byte 0 - str1: .text @"\nNumber of queens:" + str1: .text @"\nnumber of queens:" + .byte 0 + str2: .text @"\nsolutions: " + .byte 0 + str3: .text " time: " + .byte 0 + str4: .text @".\n" .byte 0 } +// Print a zero-terminated string +// Handles escape codes such as newline +// printf_str(byte* zp($c) str) +printf_str: { + .label ch = $f + .label str = $c + __b2: + // ch = *str++ + ldy #0 + lda (str),y + sta.z ch + inc.z str + bne !+ + inc.z str+1 + !: + // if(ch==0) + lda.z ch + cmp #0 + bne __b3 + // } + rts + __b3: + // if(ch=='\n') + lda #'\n' + cmp.z ch + beq __b4 + // printf_char(ch) + jsr printf_char + jmp __b2 + __b4: + // printf_ln() + jsr printf_ln + jmp __b2 +} +// Print a newline +printf_ln: { + .label __0 = $13 + .label __1 = $13 + // printf_cursor_ptr - printf_cursor_x + sec + lda.z __0 + sbc.z printf_cursor_x + sta.z __0 + bcs !+ + dec.z __0+1 + !: + // printf_cursor_ptr - printf_cursor_x + PRINTF_SCREEN_WIDTH + lda #$28 + clc + adc.z __1 + sta.z __1 + bcc !+ + inc.z __1+1 + !: + // printf_cursor_ptr = printf_cursor_ptr - printf_cursor_x + PRINTF_SCREEN_WIDTH + // printf_cursor_x = 0 + lda #0 + sta.z printf_cursor_x + // printf_cursor_y++; + inc.z printf_cursor_y + // printf_scroll() + jsr printf_scroll + // } + rts +} +// Scroll the entire screen if the cursor is on the last line +printf_scroll: { + .label __4 = $13 + // if(printf_cursor_y==PRINTF_SCREEN_HEIGHT) + lda #$19 + cmp.z printf_cursor_y + bne __breturn + // memcpy(PRINTF_SCREEN_ADDRESS, PRINTF_SCREEN_ADDRESS+PRINTF_SCREEN_WIDTH, PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH) + jsr memcpy + // memset(PRINTF_SCREEN_ADDRESS+PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH, ' ', PRINTF_SCREEN_WIDTH) + lda #' ' + sta.z memset.c + lda #<$400+$28*$19-$28 + sta.z memset.str + lda #>$400+$28*$19-$28 + sta.z memset.str+1 + lda #<$28 + sta.z memset.num + lda #>$28 + sta.z memset.num+1 + jsr memset + // printf_cursor_ptr-PRINTF_SCREEN_WIDTH + lda.z __4 + sec + sbc #<$28 + sta.z __4 + lda.z __4+1 + sbc #>$28 + sta.z __4+1 + // printf_cursor_ptr = printf_cursor_ptr-PRINTF_SCREEN_WIDTH + // printf_cursor_y--; + dec.z printf_cursor_y + __breturn: + // } + rts +} +// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// memset(void* zp($a) str, byte zp($e) c, word zp($1f) num) +memset: { + .label end = $1f + .label dst = $a + .label num = $1f + .label str = $a + .label c = $e + // if(num>0) + lda.z num + bne !+ + lda.z num+1 + beq __breturn + !: + // end = (char*)str + num + lda.z end + clc + adc.z str + sta.z end + lda.z end+1 + adc.z str+1 + sta.z end+1 + __b2: + // for(char* dst = str; dst!=end; dst++) + lda.z dst+1 + cmp.z end+1 + bne __b3 + lda.z dst + cmp.z end + bne __b3 + __breturn: + // } + rts + __b3: + // *dst = c + lda.z c + ldy #0 + sta (dst),y + // for(char* dst = str; dst!=end; dst++) + inc.z dst + bne !+ + inc.z dst+1 + !: + jmp __b2 +} +// Copy block of memory (forwards) +// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. +memcpy: { + .label destination = $400 + .label source = $400+$28 + .const num = $28*$19-$28 + .label src_end = source+num + .label dst = $a + .label src = $1f + lda #destination + sta.z dst+1 + lda #source + sta.z src+1 + __b1: + // while(src!=src_end) + lda.z src+1 + cmp #>src_end + bne __b2 + lda.z src + cmp #tod_buffer + sta.z printf_str.str+1 + jsr printf_str + // } + rts +} // Print an unsigned int using a specific format -printf_uint: { - .label uvalue = 8 - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 +// printf_ulong(dword zp(2) uvalue) +printf_ulong: { + .label uvalue = 2 // printf_buffer.sign = format.sign_always?'+':0 // Handle any sign lda #0 sta printf_buffer - // utoa(uvalue, printf_buffer.digits, format.radix) + // ultoa(uvalue, printf_buffer.digits, format.radix) + lda.z uvalue + sta.z ultoa.value + lda.z uvalue+1 + sta.z ultoa.value+1 + lda.z uvalue+2 + sta.z ultoa.value+2 + lda.z uvalue+3 + sta.z ultoa.value+3 // Format number into buffer - jsr utoa + jsr ultoa // printf_number_buffer(printf_buffer, format) lda printf_buffer sta.z printf_number_buffer.buffer_sign // Print using format - lda #format_upper_case + lda #0 sta.z printf_number_buffer.format_upper_case lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z printf_number_buffer.buffer_digits+1 - lda #format_zero_padding + lda #0 sta.z printf_number_buffer.format_zero_padding - lda #format_justify_left sta.z printf_number_buffer.format_justify_left - lda #format_min_length sta.z printf_number_buffer.format_min_length jsr printf_number_buffer // } @@ -103,17 +390,17 @@ printf_uint: { } // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($23) buffer_sign, byte* zp($c) buffer_digits, byte zp($f) format_min_length, byte zp($1d) format_justify_left, byte zp($18) format_zero_padding, byte zp($22) format_upper_case) +// printf_number_buffer(byte zp($16) buffer_sign, byte* zp($c) buffer_digits, byte zp($10) format_min_length, byte zp($24) format_justify_left, byte zp($15) format_zero_padding, byte zp($17) format_upper_case) printf_number_buffer: { - .label __19 = 2 - .label buffer_sign = $23 - .label len = 4 - .label padding = $f - .label format_min_length = $f - .label format_zero_padding = $18 - .label format_justify_left = $1d + .label __19 = $a + .label buffer_sign = $16 + .label len = $e + .label padding = $10 + .label format_min_length = $10 + .label format_zero_padding = $15 + .label format_justify_left = $24 .label buffer_digits = $c - .label format_upper_case = $22 + .label format_upper_case = $17 // if(format.min_length) lda #0 cmp.z format_min_length @@ -223,11 +510,11 @@ printf_number_buffer: { rts } // Print a padding char a number of times -// printf_padding(byte zp(5) pad, byte zp(4) length) +// printf_padding(byte zp($f) pad, byte zp($18) length) printf_padding: { - .label i = 6 - .label length = 4 - .label pad = 5 + .label i = $1d + .label length = $18 + .label pad = $f lda #0 sta.z i __b1: @@ -244,231 +531,12 @@ printf_padding: { inc.z i jmp __b1 } -// Print a single char -// If the end of the screen is reached scroll it up one char and place the cursor at the -// printf_char(byte zp(5) ch) -printf_char: { - .label ch = 5 - // *(printf_cursor_ptr++) = ch - lda.z ch - ldy #0 - sta (printf_cursor_ptr),y - // *(printf_cursor_ptr++) = ch; - inc.z printf_cursor_ptr - bne !+ - inc.z printf_cursor_ptr+1 - !: - // if(++printf_cursor_x==PRINTF_SCREEN_WIDTH) - inc.z printf_cursor_x - lda #$28 - cmp.z printf_cursor_x - bne __breturn - // printf_cursor_x = 0 - lda #0 - sta.z printf_cursor_x - // ++printf_cursor_y; - inc.z printf_cursor_y - // printf_scroll() - jsr printf_scroll - __breturn: - // } - rts -} -// Scroll the entire screen if the cursor is on the last line -printf_scroll: { - .label __4 = $12 - // if(printf_cursor_y==PRINTF_SCREEN_HEIGHT) - lda #$19 - cmp.z printf_cursor_y - bne __breturn - // memcpy(PRINTF_SCREEN_ADDRESS, PRINTF_SCREEN_ADDRESS+PRINTF_SCREEN_WIDTH, PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH) - jsr memcpy - // memset(PRINTF_SCREEN_ADDRESS+PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH, ' ', PRINTF_SCREEN_WIDTH) - lda #' ' - sta.z memset.c - lda #<$400+$28*$19-$28 - sta.z memset.str - lda #>$400+$28*$19-$28 - sta.z memset.str+1 - lda #<$28 - sta.z memset.num - lda #>$28 - sta.z memset.num+1 - jsr memset - // printf_cursor_ptr-PRINTF_SCREEN_WIDTH - lda.z __4 - sec - sbc #<$28 - sta.z __4 - lda.z __4+1 - sbc #>$28 - sta.z __4+1 - // printf_cursor_ptr = printf_cursor_ptr-PRINTF_SCREEN_WIDTH - // printf_cursor_y--; - dec.z printf_cursor_y - __breturn: - // } - rts -} -// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(2) str, byte zp(7) c, word zp($19) num) -memset: { - .label end = $19 - .label dst = 2 - .label num = $19 - .label str = 2 - .label c = 7 - // if(num>0) - lda.z num - bne !+ - lda.z num+1 - beq __breturn - !: - // end = (char*)str + num - lda.z end - clc - adc.z str - sta.z end - lda.z end+1 - adc.z str+1 - sta.z end+1 - __b2: - // for(char* dst = str; dst!=end; dst++) - lda.z dst+1 - cmp.z end+1 - bne __b3 - lda.z dst - cmp.z end - bne __b3 - __breturn: - // } - rts - __b3: - // *dst = c - lda.z c - ldy #0 - sta (dst),y - // for(char* dst = str; dst!=end; dst++) - inc.z dst - bne !+ - inc.z dst+1 - !: - jmp __b2 -} -// Copy block of memory (forwards) -// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -memcpy: { - .label destination = $400 - .label source = $400+$28 - .const num = $28*$19-$28 - .label src_end = source+num - .label dst = 2 - .label src = $19 - lda #destination - sta.z dst+1 - lda #source - sta.z src+1 - __b1: - // while(src!=src_end) - lda.z src+1 - cmp #>src_end - bne __b2 - lda.z src - cmp #='a' && ch<='z') lda.z ch cmp #'a' @@ -518,11 +586,11 @@ toupper: { rts } // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($19) str) +// strlen(byte* zp($1f) str) strlen: { - .label len = 2 - .label str = $19 - .label return = 2 + .label len = $a + .label str = $1f + .label return = $a lda #<0 sta.z len sta.z len+1 @@ -552,16 +620,391 @@ 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($c) value, byte* zp(2) buffer) -utoa: { - .const max_digits = 5 - .label __10 = $1b +// ultoa(dword zp(6) value, byte* zp($c) buffer) +ultoa: { + .label __10 = $23 .label __11 = $18 .label digit_value = $19 - .label buffer = 2 - .label digit = $f - .label value = $c - .label started = $1d + .label buffer = $c + .label digit = $10 + .label value = 6 + .label started = $24 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z buffer+1 + lda #0 + sta.z started + sta.z digit + __b1: + // for( char digit=0; digit= digit_value) + lda #0 + cmp.z started + bne __b5 + lda.z value+3 + cmp.z digit_value+3 + bcc !+ + bne __b5 + lda.z value+2 + cmp.z digit_value+2 + bcc !+ + bne __b5 + lda.z value+1 + cmp.z digit_value+1 + bcc !+ + bne __b5 + lda.z value + cmp.z digit_value + bcs __b5 + !: + __b4: + // for( char digit=0; digit= sub) + lda.z value+3 + cmp.z sub+3 + bcc !+ + bne __b2 + lda.z value+2 + cmp.z sub+2 + bcc !+ + bne __b2 + lda.z value+1 + cmp.z sub+1 + bcc !+ + bne __b2 + lda.z value + cmp.z sub + bcs __b2 + !: + // *buffer = DIGITS[digit] + ldy.z digit + lda DIGITS,y + ldy #0 + sta (buffer),y + // } + rts + __b2: + // digit++; + inc.z digit + // value -= sub + lda.z value + sec + sbc.z sub + sta.z value + lda.z value+1 + sbc.z sub+1 + sta.z value+1 + lda.z value+2 + sbc.z sub+2 + sta.z value+2 + lda.z value+3 + sbc.z sub+3 + sta.z value+3 + jmp __b1 +} +// Convert time of day to a human-readable string "hh:mm:ss:10" +// tod_str(byte zp($15) tod_TENTHS, byte zp($16) tod_SEC, byte zp($17) tod_MIN, byte zp($18) tod_HOURS) +tod_str: { + .label __0 = $23 + .label __1 = $23 + .label __2 = $18 + .label __3 = $18 + .label __4 = $1d + .label __5 = $1d + .label __6 = $17 + .label __7 = $17 + .label __8 = $1e + .label __9 = $1e + .label __10 = $16 + .label __11 = $16 + .label __12 = $21 + .label __13 = $21 + .label __14 = $15 + .label __15 = $15 + .label tod_TENTHS = $15 + .label tod_SEC = $16 + .label tod_MIN = $17 + .label tod_HOURS = $18 + // tod.HOURS>>4 + lda.z tod_HOURS + lsr + lsr + lsr + lsr + sta.z __0 + // '0'+(tod.HOURS>>4) + lax.z __1 + axs #-['0'] + stx.z __1 + // tod_buffer[0] = '0'+(tod.HOURS>>4) + txa + sta tod_buffer + // tod.HOURS&0x0f + lda #$f + and.z __2 + sta.z __2 + // '0'+(tod.HOURS&0x0f) + lax.z __3 + axs #-['0'] + stx.z __3 + // tod_buffer[1] = '0'+(tod.HOURS&0x0f) + txa + sta tod_buffer+1 + // tod.MIN>>4 + lda.z tod_MIN + lsr + lsr + lsr + lsr + sta.z __4 + // '0'+(tod.MIN>>4) + lax.z __5 + axs #-['0'] + stx.z __5 + // tod_buffer[3] = '0'+(tod.MIN>>4) + txa + sta tod_buffer+3 + // tod.MIN&0x0f + lda #$f + and.z __6 + sta.z __6 + // '0'+(tod.MIN&0x0f) + lax.z __7 + axs #-['0'] + stx.z __7 + // tod_buffer[4] = '0'+(tod.MIN&0x0f) + txa + sta tod_buffer+4 + // tod.SEC>>4 + lda.z tod_SEC + lsr + lsr + lsr + lsr + sta.z __8 + // '0'+(tod.SEC>>4) + lax.z __9 + axs #-['0'] + stx.z __9 + // tod_buffer[6] = '0'+(tod.SEC>>4) + txa + sta tod_buffer+6 + // tod.SEC&0x0f + lda #$f + and.z __10 + sta.z __10 + // '0'+(tod.SEC&0x0f) + lax.z __11 + axs #-['0'] + stx.z __11 + // tod_buffer[7] = '0'+(tod.SEC&0x0f) + txa + sta tod_buffer+7 + // tod.TENTHS>>4 + lda.z tod_TENTHS + lsr + lsr + lsr + lsr + sta.z __12 + // '0'+(tod.TENTHS>>4) + lax.z __13 + axs #-['0'] + stx.z __13 + // tod_buffer[9] = '0'+(tod.TENTHS>>4) + txa + sta tod_buffer+9 + // tod.TENTHS&0x0f + lda #$f + and.z __14 + sta.z __14 + // '0'+(tod.TENTHS&0x0f) + lax.z __15 + axs #-['0'] + stx.z __15 + // tod_buffer[10] = '0'+(tod.TENTHS&0x0f) + txa + sta tod_buffer+$a + // } + rts +} +// Read time of day +tod_read: { + .label return_TENTHS = $15 + .label return_SEC = $16 + .label return_MIN = $17 + .label return_HOURS = $18 + // hours = CIA1->TOD_HOURS + // Reading sequence is important. TOD latches on reading hours until 10ths is read. + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + sta.z return_HOURS + // mins = CIA1->TOD_MIN + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + sta.z return_MIN + // secs = CIA1->TOD_SEC + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + sta.z return_SEC + // tenths = CIA1->TOD_10THS + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + sta.z return_TENTHS + // } + rts +} +// Initialize time-of-day clock +// This uses the MOS6526 CIA#1 +// tod_init(byte zp($24) tod_TENTHS, byte zp($15) tod_SEC, byte zp($16) tod_MIN, byte zp($17) tod_HOURS) +tod_init: { + .label tod_TENTHS = $24 + .label tod_SEC = $15 + .label tod_MIN = $16 + .label tod_HOURS = $17 + // CIA1->TIMER_A_CONTROL |= 0x80 + // Set 50hz (this assumes PAL!) (bit7=1) + lda #$80 + ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL + // CIA1->TIMER_B_CONTROL &= 0x7f + // Writing TOD clock (bit7=0) + lda #$7f + and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL + // CIA1->TOD_HOURS = tod.HOURS + // Reset TOD clock + // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. + lda.z tod_HOURS + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + // CIA1->TOD_MIN = tod.MIN + lda.z tod_MIN + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + // CIA1->TOD_SEC = tod.SEC + lda.z tod_SEC + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + // CIA1->TOD_10THS = tod.TENTHS + lda.z tod_TENTHS + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + // } + rts +} +// Print an unsigned int using a specific format +printf_uint: { + .label uvalue = 8 + .const format_min_length = 0 + .const format_justify_left = 0 + .const format_zero_padding = 0 + .const format_upper_case = 0 + // printf_buffer.sign = format.sign_always?'+':0 + // Handle any sign + lda #0 + sta printf_buffer + // utoa(uvalue, printf_buffer.digits, format.radix) + // Format number into buffer + jsr utoa + // printf_number_buffer(printf_buffer, format) + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // Print using format + lda #format_upper_case + sta.z printf_number_buffer.format_upper_case + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + lda #format_zero_padding + sta.z printf_number_buffer.format_zero_padding + lda #format_justify_left + sta.z printf_number_buffer.format_justify_left + lda #format_min_length + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + // } + rts +} +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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($a) value, byte* zp($c) buffer) +utoa: { + .const max_digits = 5 + .label __10 = $1e + .label __11 = $1d + .label digit_value = $1f + .label buffer = $c + .label digit = $16 + .label value = $a + .label started = $17 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -645,12 +1088,12 @@ 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(2) buffer, word zp($c) value, word zp($19) sub) +// utoa_append(byte* zp($c) buffer, word zp($a) value, word zp($1f) sub) utoa_append: { - .label buffer = 2 - .label value = $c - .label sub = $19 - .label return = $c + .label buffer = $c + .label value = $a + .label sub = $1f + .label return = $a .label digit = $18 lda #0 sta.z digit @@ -714,14 +1157,14 @@ printf_cls: { // Generates all valid placements of queens on a NxN board recursively // Works by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below // and then recursively generating all legal placements on the rows above. -// queen(byte zp($1b) row) +// queen(byte zp($21) row) queen: { .const OFFSET_STACK_ROW = 0 - .label r = $1b - .label column = $1c - .label __1 = $f - .label __4 = $1b - .label row = $1b + .label r = $21 + .label column = $22 + .label __1 = $e + .label __4 = $21 + .label row = $21 tsx lda STACK_BASE+OFFSET_STACK_ROW,x sta.z row @@ -779,17 +1222,7 @@ queen: { inc.z column jmp __b1 __b4: - // print() - // we are done! Print the board configuration - jsr print - jmp __b3 -} -// Print the board with a legal placement. Also increments the solution count. -print: { - .label i = $e - .label i1 = $e - .label j = $23 - // printf("\n#%lu:\n ",++count); + // count++; inc.z count bne !+ inc.z count+1 @@ -798,23 +1231,24 @@ print: { bne !+ inc.z count+3 !: - // printf("\n#%lu:\n ",++count) + // print() + jsr print + jmp __b3 +} +// Print the board with a legal placement. Also increments the solution count. +print: { + .label i = $1e + .label i1 = $1e + .label j = $1d + // printf("\n#%lu:\n ",count) lda #str sta.z printf_str.str+1 jsr printf_str - // printf("\n#%lu:\n ",++count) - lda.z count - sta.z printf_ulong.uvalue - lda.z count+1 - sta.z printf_ulong.uvalue+1 - lda.z count+2 - sta.z printf_ulong.uvalue+2 - lda.z count+3 - sta.z printf_ulong.uvalue+3 + // printf("\n#%lu:\n ",count) jsr printf_ulong - // printf("\n#%lu:\n ",++count) + // printf("\n#%lu:\n ",count) lda #str1 @@ -897,9 +1331,9 @@ print: { .byte 0 } // Print an unsigned char using a specific format -// printf_uchar(byte zp($e) uvalue) +// printf_uchar(byte zp($1e) uvalue) printf_uchar: { - .label uvalue = $e + .label uvalue = $1e // printf_buffer.sign = format.sign_always?'+':0 // Handle any sign lda #0 @@ -932,13 +1366,13 @@ printf_uchar: { // - 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(4) value, byte* zp($c) buffer) +// uctoa(byte zp($f) value, byte* zp($c) buffer) uctoa: { - .label digit_value = $1d + .label digit_value = $23 .label buffer = $c - .label digit = $22 - .label value = 4 - .label started = 5 + .label digit = $e + .label value = $f + .label started = $10 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -1005,13 +1439,13 @@ 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($c) buffer, byte zp(4) value, byte zp($1d) sub) +// uctoa_append(byte* zp($c) buffer, byte zp($f) value, byte zp($23) sub) uctoa_append: { .label buffer = $c - .label value = 4 - .label sub = $1d - .label return = 4 - .label digit = 6 + .label value = $f + .label sub = $23 + .label return = $f + .label digit = $24 lda #0 sta.z digit __b1: @@ -1036,215 +1470,21 @@ uctoa_append: { sta.z value jmp __b1 } -// Print an unsigned int using a specific format -// printf_ulong(dword zp(8) uvalue) -printf_ulong: { - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = 8 - // printf_buffer.sign = format.sign_always?'+':0 - // Handle any sign - lda #0 - sta printf_buffer - // ultoa(uvalue, printf_buffer.digits, format.radix) - // Format number into buffer - jsr ultoa - // printf_number_buffer(printf_buffer, format) - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // Print using format - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - // } - rts -} -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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) -// ultoa(dword zp(8) value, byte* zp($c) buffer) -ultoa: { - .const max_digits = $a - .label __10 = $22 - .label __11 = $1d - .label digit_value = $1e - .label buffer = $c - .label digit = 7 - .label value = 8 - .label started = $f - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - lda #0 - sta.z started - sta.z digit - __b1: - // for( char digit=0; digit= digit_value) - lda #0 - cmp.z started - bne __b5 - lda.z value+3 - cmp.z digit_value+3 - bcc !+ - bne __b5 - lda.z value+2 - cmp.z digit_value+2 - bcc !+ - bne __b5 - lda.z value+1 - cmp.z digit_value+1 - bcc !+ - bne __b5 - lda.z value - cmp.z digit_value - bcs __b5 - !: - __b4: - // for( char digit=0; digit= sub) - lda.z value+3 - cmp.z sub+3 - bcc !+ - bne __b2 - lda.z value+2 - cmp.z sub+2 - bcc !+ - bne __b2 - lda.z value+1 - cmp.z sub+1 - bcc !+ - bne __b2 - lda.z value - cmp.z sub - bcs __b2 - !: - // *buffer = DIGITS[digit] - ldy.z digit - lda DIGITS,y - ldy #0 - sta (buffer),y - // } - rts - __b2: - // digit++; - inc.z digit - // value -= sub - lda.z value - sec - sbc.z sub - sta.z value - lda.z value+1 - sbc.z sub+1 - sta.z value+1 - lda.z value+2 - sbc.z sub+2 - sta.z value+2 - lda.z value+3 - sbc.z sub+3 - sta.z value+3 - jmp __b1 -} // Checks is a placement of the queen on the board is legal. // Checks the passed (row, column) against all queens placed on the board on lower rows. // If no conflict for desired position returns 1 otherwise returns 0 -// legal(byte zp($1b) row, byte zp($1c) column) +// legal(byte zp($21) row, byte zp($22) column) legal: { - .label __0 = $22 - .label __3 = $23 - .label __4 = $1d - .label row = $1b - .label column = $1c + .label __0 = $23 + .label __3 = $24 + .label __4 = $f + .label row = $21 + .label column = $22 // Placement is legal // The same column is a conflict. // The same diagonal is a conflict. - .label return = $f - .label i = $e + .label return = $e + .label i = $1e lda #1 sta.z i __b1: @@ -1297,12 +1537,12 @@ legal: { jmp __b1 } // Find the absolute difference between two unsigned chars -// diff(byte zp($1d) a, byte zp($18) b) +// diff(byte zp($f) a, byte zp($10) b) diff: { - .label a = $1d - .label b = $18 - .label return = $23 - .label return_1 = $1d + .label a = $f + .label b = $10 + .label return = $24 + .label return_1 = $f // if(a=(signed byte) 0) goto printf_number_buffer::@21 - to:printf_number_buffer::@1 -printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 + [24] call tod_read + [25] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 + [26] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 + [27] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 + [28] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 + to:main::@6 +main::@6: scope:[main] from main::@5 + [29] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 + [30] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 + [31] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 + [32] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 + [33] call tod_str + to:main::@7 +main::@7: scope:[main] from main::@6 + [34] phi() + [35] call printf_str + to:main::@8 +main::@8: scope:[main] from main::@7 + [36] (dword) printf_ulong::uvalue#0 ← (dword) count + [37] call printf_ulong + to:main::@9 +main::@9: scope:[main] from main::@8 [38] phi() - to:printf_number_buffer::@1 -printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [39] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) - [40] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 - to:printf_number_buffer::@17 -printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [41] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 - to:printf_number_buffer::@16 -printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [42] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 - to:printf_number_buffer::@2 -printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [43] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 - [44] call printf_padding - to:printf_number_buffer::@2 -printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [45] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 - to:printf_number_buffer::@9 -printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [46] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 - [47] call printf_char - to:printf_number_buffer::@3 -printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [48] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 - to:printf_number_buffer::@18 -printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [49] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 - to:printf_number_buffer::@4 -printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [50] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 - [51] call printf_padding - to:printf_number_buffer::@4 -printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [52] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 - to:printf_number_buffer::@11 -printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [53] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 - [54] call strupr - to:printf_number_buffer::@5 -printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [55] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - [56] call printf_str - to:printf_number_buffer::@15 -printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [57] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return - to:printf_number_buffer::@20 -printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [58] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return - to:printf_number_buffer::@19 -printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [59] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 - to:printf_number_buffer::@return -printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [60] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 - [61] call printf_padding - to:printf_number_buffer::@return -printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [62] return + [39] call printf_str + to:main::@10 +main::@10: scope:[main] from main::@9 + [40] phi() + [41] call printf_string + to:main::@11 +main::@11: scope:[main] from main::@10 + [42] phi() + [43] call printf_str + to:main::@return +main::@return: scope:[main] from main::@11 + [44] return to:@return -(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [63] (byte) printf_padding::pad#5 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) - [63] (byte) printf_padding::length#4 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) - to:printf_padding::@1 -printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [64] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) - [65] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 - to:printf_padding::@return -printf_padding::@return: scope:[printf_padding] from printf_padding::@1 - [66] return - to:@return -printf_padding::@2: scope:[printf_padding] from printf_padding::@1 - [67] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#5 - [68] call printf_char - to:printf_padding::@3 -printf_padding::@3: scope:[printf_padding] from printf_padding::@2 - [69] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 - to:printf_padding::@1 - -(void()) printf_char((byte) printf_char::ch) -printf_char: scope:[printf_char] from printf_number_buffer::@9 printf_padding::@2 printf_str::@5 - [70] (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::@5/(byte) printf_char::ch#1 ) - [71] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 - [72] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr - [73] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x - [74] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return - to:printf_char::@1 -printf_char::@1: scope:[printf_char] from printf_char - [75] (byte) printf_cursor_x ← (byte) 0 - [76] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y - [77] call printf_scroll - to:printf_char::@return -printf_char::@return: scope:[printf_char] from printf_char printf_char::@1 - [78] return - to:@return - -(void()) printf_scroll() -printf_scroll: scope:[printf_scroll] from printf_char::@1 printf_ln - [79] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return - to:printf_scroll::@1 -printf_scroll::@1: scope:[printf_scroll] from printf_scroll - [80] phi() - [81] call memcpy - to:printf_scroll::@2 -printf_scroll::@2: scope:[printf_scroll] from printf_scroll::@1 - [82] phi() - [83] call memset - to:printf_scroll::@3 -printf_scroll::@3: scope:[printf_scroll] from printf_scroll::@2 - [84] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 - [85] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 - [86] (byte) printf_cursor_y ← -- (byte) printf_cursor_y - to:printf_scroll::@return -printf_scroll::@return: scope:[printf_scroll] from printf_scroll printf_scroll::@3 - [87] return - to:@return - -(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) -memset: scope:[memset] from printf_cls printf_scroll::@2 - [88] (byte) memset::c#4 ← phi( printf_cls/(byte) ' ' printf_scroll::@2/(byte) ' ' ) - [88] (void*) memset::str#3 ← phi( printf_cls/(void*) 1024 printf_scroll::@2/(void*)(number) $400+(number) $28*(number) $19-(number) $28 ) - [88] (word) memset::num#2 ← phi( printf_cls/(word)(number) $28*(number) $19 printf_scroll::@2/(byte) $28 ) - [89] if((word) memset::num#2<=(byte) 0) goto memset::@return - to:memset::@1 -memset::@1: scope:[memset] from memset - [90] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 - [91] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 - to:memset::@2 -memset::@2: scope:[memset] from memset::@1 memset::@3 - [92] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) - [93] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 - to:memset::@return -memset::@return: scope:[memset] from memset memset::@2 - [94] return - to:@return -memset::@3: scope:[memset] from memset::@2 - [95] *((byte*) memset::dst#2) ← (byte) memset::c#4 - [96] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 - to:memset::@2 - -(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) -memcpy: scope:[memcpy] from printf_scroll::@1 - [97] phi() - to:memcpy::@1 -memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - [98] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*)(const void*) memcpy::destination#0 memcpy::@2/(byte*) memcpy::dst#1 ) - [98] (byte*) memcpy::src#2 ← phi( memcpy/(byte*)(const void*) memcpy::source#0 memcpy::@2/(byte*) memcpy::src#1 ) - [99] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 - to:memcpy::@return -memcpy::@return: scope:[memcpy] from memcpy::@1 - [100] return - to:@return -memcpy::@2: scope:[memcpy] from memcpy::@1 - [101] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) - [102] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 - [103] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 - to:memcpy::@1 - (void()) printf_str((byte*) printf_str::str) -printf_str: scope:[printf_str] from main::@1 main::@2 print print::@10 print::@12 print::@4 print::@8 printf_number_buffer::@5 - [104] (byte*) printf_str::str#11 ← phi( main::@1/(const byte*) main::str main::@2/(const byte*) main::str1 print/(const byte*) print::str print::@10/(const byte*) print::str4 print::@12/(const byte*) print::str1 print::@4/(const byte*) print::str2 print::@8/(const byte*) print::str3 printf_number_buffer::@5/(byte*) printf_str::str#1 ) +printf_str: scope:[printf_str] from main::@1 main::@11 main::@2 main::@7 main::@9 print print::@10 print::@12 print::@4 print::@8 printf_number_buffer::@5 printf_string::@1 + [45] (byte*) printf_str::str#15 ← phi( main::@1/(const byte*) main::str main::@11/(const byte*) main::str4 main::@2/(const byte*) main::str1 main::@7/(const byte*) main::str2 main::@9/(const byte*) main::str3 print/(const byte*) print::str print::@10/(const byte*) print::str4 print::@12/(const byte*) print::str1 print::@4/(const byte*) print::str2 print::@8/(const byte*) print::str3 printf_number_buffer::@5/(byte*) printf_str::str#1 printf_string::@1/(const byte*) tod_buffer ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@4 printf_str::@5 - [105] (byte*) printf_str::str#10 ← phi( printf_str/(byte*) printf_str::str#11 printf_str::@4/(byte*) printf_str::str#0 printf_str::@5/(byte*) printf_str::str#0 ) + [46] (byte*) printf_str::str#13 ← phi( printf_str/(byte*) printf_str::str#15 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 - [106] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#10) - [107] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#10 - [108] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 + [47] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) + [48] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 + [49] 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 - [109] return + [50] return to:@return printf_str::@3: scope:[printf_str] from printf_str::@2 - [110] if((byte) printf_str::ch#0==(byte) ' + [51] 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 - [111] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 - [112] call printf_char + [52] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + [53] call printf_char to:printf_str::@1 printf_str::@4: scope:[printf_str] from printf_str::@3 - [113] phi() - [114] call printf_ln + [54] phi() + [55] call printf_ln to:printf_str::@1 (void()) printf_ln() printf_ln: scope:[printf_ln] from printf_str::@4 - [115] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x - [116] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 - [117] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 - [118] (byte) printf_cursor_x ← (byte) 0 - [119] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y - [120] call printf_scroll + [56] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x + [57] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 + [58] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 + [59] (byte) printf_cursor_x ← (byte) 0 + [60] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y + [61] call printf_scroll to:printf_ln::@return printf_ln::@return: scope:[printf_ln] from printf_ln - [121] return + [62] return to:@return +(void()) printf_scroll() +printf_scroll: scope:[printf_scroll] from printf_char::@1 printf_ln + [63] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return + to:printf_scroll::@1 +printf_scroll::@1: scope:[printf_scroll] from printf_scroll + [64] phi() + [65] call memcpy + to:printf_scroll::@2 +printf_scroll::@2: scope:[printf_scroll] from printf_scroll::@1 + [66] phi() + [67] call memset + to:printf_scroll::@3 +printf_scroll::@3: scope:[printf_scroll] from printf_scroll::@2 + [68] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 + [69] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 + [70] (byte) printf_cursor_y ← -- (byte) printf_cursor_y + to:printf_scroll::@return +printf_scroll::@return: scope:[printf_scroll] from printf_scroll printf_scroll::@3 + [71] return + to:@return + +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +memset: scope:[memset] from printf_cls printf_scroll::@2 + [72] (byte) memset::c#4 ← phi( printf_cls/(byte) ' ' printf_scroll::@2/(byte) ' ' ) + [72] (void*) memset::str#3 ← phi( printf_cls/(void*) 1024 printf_scroll::@2/(void*)(number) $400+(number) $28*(number) $19-(number) $28 ) + [72] (word) memset::num#2 ← phi( printf_cls/(word)(number) $28*(number) $19 printf_scroll::@2/(byte) $28 ) + [73] if((word) memset::num#2<=(byte) 0) goto memset::@return + to:memset::@1 +memset::@1: scope:[memset] from memset + [74] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 + [75] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 + to:memset::@2 +memset::@2: scope:[memset] from memset::@1 memset::@3 + [76] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) + [77] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 + to:memset::@return +memset::@return: scope:[memset] from memset memset::@2 + [78] return + to:@return +memset::@3: scope:[memset] from memset::@2 + [79] *((byte*) memset::dst#2) ← (byte) memset::c#4 + [80] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 + to:memset::@2 + +(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) +memcpy: scope:[memcpy] from printf_scroll::@1 + [81] phi() + to:memcpy::@1 +memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 + [82] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*)(const void*) memcpy::destination#0 memcpy::@2/(byte*) memcpy::dst#1 ) + [82] (byte*) memcpy::src#2 ← phi( memcpy/(byte*)(const void*) memcpy::source#0 memcpy::@2/(byte*) memcpy::src#1 ) + [83] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 + to:memcpy::@return +memcpy::@return: scope:[memcpy] from memcpy::@1 + [84] return + to:@return +memcpy::@2: scope:[memcpy] from memcpy::@1 + [85] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) + [86] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 + [87] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 + to:memcpy::@1 + +(void()) printf_char((byte) printf_char::ch) +printf_char: scope:[printf_char] from printf_number_buffer::@9 printf_padding::@2 printf_str::@5 + [88] (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::@5/(byte) printf_char::ch#1 ) + [89] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 + [90] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr + [91] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x + [92] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return + to:printf_char::@1 +printf_char::@1: scope:[printf_char] from printf_char + [93] (byte) printf_cursor_x ← (byte) 0 + [94] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y + [95] call printf_scroll + to:printf_char::@return +printf_char::@return: scope:[printf_char] from printf_char printf_char::@1 + [96] return + to:@return + +(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) +printf_string: scope:[printf_string] from main::@10 + [97] phi() + to:printf_string::@1 +printf_string::@1: scope:[printf_string] from printf_string + [98] phi() + [99] call printf_str + to:printf_string::@return +printf_string::@return: scope:[printf_string] from printf_string::@1 + [100] return + to:@return + +(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) +printf_ulong: scope:[printf_ulong] from main::@8 print::@11 + [101] (dword) printf_ulong::uvalue#2 ← phi( main::@8/(dword) printf_ulong::uvalue#0 print::@11/(dword) printf_ulong::uvalue#1 ) + to:printf_ulong::@1 +printf_ulong::@1: scope:[printf_ulong] from printf_ulong + [102] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [103] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 + [104] call ultoa + to:printf_ulong::@2 +printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 + [105] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [106] call printf_number_buffer + to:printf_ulong::@return +printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 + [107] return + to:@return + +(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_upper_case , (byte) printf_number_buffer::format_radix) +printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@2 printf_uint::@2 printf_ulong::@2 + [108] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_upper_case#0 printf_ulong::@2/(byte) 0 ) + [108] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uchar::@2/(byte) printf_number_buffer::buffer_sign#2 printf_uint::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 ) + [108] (byte*) printf_number_buffer::buffer_digits#10 ← phi( printf_uchar::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_uint::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_ulong::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [108] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_zero_padding#0 printf_ulong::@2/(byte) 0 ) + [108] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_justify_left#0 printf_ulong::@2/(byte) 0 ) + [108] (byte) printf_number_buffer::format_min_length#3 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_min_length#0 printf_ulong::@2/(byte) 0 ) + [109] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 + to:printf_number_buffer::@6 +printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer + [110] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + [111] call strlen + [112] (word) strlen::return#2 ← (word) strlen::len#2 + to:printf_number_buffer::@14 +printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 + [113] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 + [114] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 + [115] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 + to:printf_number_buffer::@7 +printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 + [116] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 + to:printf_number_buffer::@13 +printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 + [117] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) + [118] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 + [119] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 + to:printf_number_buffer::@1 +printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 + [120] phi() + to:printf_number_buffer::@1 +printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 + [121] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) + [122] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 + to:printf_number_buffer::@17 +printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 + [123] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 + to:printf_number_buffer::@16 +printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 + [124] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 + to:printf_number_buffer::@2 +printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 + [125] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 + [126] call printf_padding + to:printf_number_buffer::@2 +printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 + [127] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 + to:printf_number_buffer::@9 +printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 + [128] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 + [129] call printf_char + to:printf_number_buffer::@3 +printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 + [130] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 + to:printf_number_buffer::@18 +printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 + [131] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 + to:printf_number_buffer::@4 +printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 + [132] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 + [133] call printf_padding + to:printf_number_buffer::@4 +printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 + [134] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 + to:printf_number_buffer::@11 +printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 + [135] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 + [136] call strupr + to:printf_number_buffer::@5 +printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 + [137] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + [138] call printf_str + to:printf_number_buffer::@15 +printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 + [139] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return + to:printf_number_buffer::@20 +printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 + [140] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return + to:printf_number_buffer::@19 +printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 + [141] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 + to:printf_number_buffer::@return +printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 + [142] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 + [143] call printf_padding + to:printf_number_buffer::@return +printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 + [144] return + to:@return + +(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) +printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 + [145] (byte) printf_padding::pad#7 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) + [145] (byte) printf_padding::length#6 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) + to:printf_padding::@1 +printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 + [146] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) + [147] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 + to:printf_padding::@return +printf_padding::@return: scope:[printf_padding] from printf_padding::@1 + [148] return + to:@return +printf_padding::@2: scope:[printf_padding] from printf_padding::@1 + [149] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 + [150] call printf_char + to:printf_padding::@3 +printf_padding::@3: scope:[printf_padding] from printf_padding::@2 + [151] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 + to:printf_padding::@1 + (byte*()) strupr((byte*) strupr::str) strupr: scope:[strupr] from printf_number_buffer::@11 - [122] phi() + [152] phi() to:strupr::@1 strupr::@1: scope:[strupr] from strupr strupr::@3 - [123] (byte*) strupr::src#2 ← phi( strupr/(byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) - [124] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 + [153] (byte*) strupr::src#2 ← phi( strupr/(byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) + [154] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 to:strupr::@return strupr::@return: scope:[strupr] from strupr::@1 - [125] return + [155] return to:@return strupr::@2: scope:[strupr] from strupr::@1 - [126] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) - [127] call toupper - [128] (byte) toupper::return#3 ← (byte) toupper::return#2 + [156] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) + [157] call toupper + [158] (byte) toupper::return#3 ← (byte) toupper::return#2 to:strupr::@3 strupr::@3: scope:[strupr] from strupr::@2 - [129] (byte~) strupr::$0 ← (byte) toupper::return#3 - [130] *((byte*) strupr::src#2) ← (byte~) strupr::$0 - [131] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 + [159] (byte~) strupr::$0 ← (byte) toupper::return#3 + [160] *((byte*) strupr::src#2) ← (byte~) strupr::$0 + [161] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 to:strupr::@1 (byte()) toupper((byte) toupper::ch) toupper: scope:[toupper] from strupr::@2 - [132] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return + [162] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return to:toupper::@2 toupper::@2: scope:[toupper] from toupper - [133] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 + [163] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 to:toupper::@return toupper::@1: scope:[toupper] from toupper::@2 - [134] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' + [164] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' to:toupper::@return toupper::@return: scope:[toupper] from toupper toupper::@1 toupper::@2 - [135] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) - [136] return + [165] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) + [166] return to:@return (word()) strlen((byte*) strlen::str) strlen: scope:[strlen] from printf_number_buffer::@6 - [137] phi() + [167] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [138] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) - [138] (byte*) strlen::str#2 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) - [139] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 + [168] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) + [168] (byte*) strlen::str#3 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) + [169] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [140] return + [170] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [141] (word) strlen::len#1 ← ++ (word) strlen::len#2 - [142] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 + [171] (word) strlen::len#1 ← ++ (word) strlen::len#2 + [172] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 to:strlen::@1 -(void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) -utoa: scope:[utoa] from printf_uint::@1 - [143] phi() - to:utoa::@1 -utoa::@1: scope:[utoa] from utoa utoa::@4 - [144] (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 ) - [144] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) - [144] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) - [144] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) - [145] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 - to:utoa::@3 -utoa::@3: scope:[utoa] from utoa::@1 - [146] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 - [147] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) - [148] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 - [149] *((byte*) utoa::buffer#3) ← (byte) 0 - to:utoa::@return -utoa::@return: scope:[utoa] from utoa::@3 - [150] return - to:@return -utoa::@2: scope:[utoa] from utoa::@1 - [151] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 - [152] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) - [153] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 - to:utoa::@7 -utoa::@7: scope:[utoa] from utoa::@2 - [154] 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 - [155] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) - [155] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) - [155] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) - [156] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 - to:utoa::@1 -utoa::@5: scope:[utoa] from utoa::@2 utoa::@7 - [157] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - [158] (word) utoa_append::value#0 ← (word) utoa::value#2 - [159] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - [160] call utoa_append - [161] (word) utoa_append::return#0 ← (word) utoa_append::value#2 - to:utoa::@6 -utoa::@6: scope:[utoa] from utoa::@5 - [162] (word) utoa::value#0 ← (word) utoa_append::return#0 - [163] (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 - [164] phi() - to:utoa_append::@1 -utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [165] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) - [165] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) - [166] 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 - [167] *((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 - [168] return - to:@return -utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [169] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 - [170] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 - to:utoa_append::@1 - -(void()) printf_cls() -printf_cls: scope:[printf_cls] from main - [171] phi() - [172] call memset - to:printf_cls::@1 -printf_cls::@1: scope:[printf_cls] from printf_cls - [173] (byte*) printf_cursor_ptr ← (byte*) 1024 - [174] (byte) printf_cursor_x ← (byte) 0 - [175] (byte) printf_cursor_y ← (byte) 0 - to:printf_cls::@return -printf_cls::@return: scope:[printf_cls] from printf_cls::@1 - [176] return - to:@return - -__stackcall (void()) queen((byte) queen::row) -queen: scope:[queen] from - [177] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) - [178] (byte) queen::r ← (byte) queen::row#0 - [179] (byte) queen::column ← (byte) 1 - to:queen::@1 -queen::@1: scope:[queen] from queen queen::@3 - [180] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 - to:queen::@return -queen::@return: scope:[queen] from queen::@1 - [181] return - to:@return -queen::@2: scope:[queen] from queen::@1 - [182] (byte) legal::row#0 ← (byte) queen::r - [183] (byte) legal::column#0 ← (byte) queen::column - [184] call legal - [185] (byte) legal::return#0 ← (byte) legal::return#4 - to:queen::@7 -queen::@7: scope:[queen] from queen::@2 - [186] (byte~) queen::$1 ← (byte) legal::return#0 - [187] if((byte) 0==(byte~) queen::$1) goto queen::@3 - to:queen::@5 -queen::@5: scope:[queen] from queen::@7 - [188] *((const byte*) board + (byte) queen::r) ← (byte) queen::column - [189] if((byte) queen::r==(byte) 8) goto queen::@4 - to:queen::@6 -queen::@6: scope:[queen] from queen::@5 - asm { ldacolumn pha ldar pha } - [191] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 - [192] stackpush(byte) ← (byte~) queen::$4 - [193] callexecute queen - sideeffect stackpullbytes((number) 1) - asm { pla star pla stacolumn } - to:queen::@3 -queen::@3: scope:[queen] from queen::@4 queen::@6 queen::@7 - [196] (byte) queen::column ← ++ (byte) queen::column - to:queen::@1 -queen::@4: scope:[queen] from queen::@5 - [197] phi() - [198] call print - to:queen::@3 - -(void()) print() -print: scope:[print] from queen::@4 - [199] (dword) count ← ++ (dword) count - [200] call printf_str - to:print::@11 -print::@11: scope:[print] from print - [201] (dword) printf_ulong::uvalue#0 ← (dword) count - [202] call printf_ulong - to:print::@12 -print::@12: scope:[print] from print::@11 - [203] phi() - [204] call printf_str - to:print::@1 -print::@1: scope:[print] from print::@12 print::@13 - [205] (byte) print::i#2 ← phi( print::@12/(byte) 1 print::@13/(byte) print::i#1 ) - [206] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 - to:print::@3 -print::@3: scope:[print] from print::@1 print::@7 - [207] (byte) print::i1#2 ← phi( print::@1/(byte) 1 print::@7/(byte) print::i1#1 ) - [208] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 - to:print::@return -print::@return: scope:[print] from print::@3 - [209] return - to:@return -print::@4: scope:[print] from print::@3 - [210] phi() - [211] call printf_str - to:print::@14 -print::@14: scope:[print] from print::@4 - [212] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 - [213] call printf_uchar - to:print::@5 -print::@5: scope:[print] from print::@14 print::@9 - [214] (byte) print::j#2 ← phi( print::@9/(byte) print::j#1 print::@14/(byte) 1 ) - [215] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 - to:print::@7 -print::@7: scope:[print] from print::@5 - [216] (byte) print::i1#1 ← ++ (byte) print::i1#2 - to:print::@3 -print::@6: scope:[print] from print::@5 - [217] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 - to:print::@10 -print::@10: scope:[print] from print::@6 - [218] phi() - [219] call printf_str - to:print::@9 -print::@9: scope:[print] from print::@10 print::@8 - [220] (byte) print::j#1 ← ++ (byte) print::j#2 - to:print::@5 -print::@8: scope:[print] from print::@6 - [221] phi() - [222] call printf_str - to:print::@9 -print::@2: scope:[print] from print::@1 - [223] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 - [224] call printf_uchar - to:print::@13 -print::@13: scope:[print] from print::@2 - [225] (byte) print::i#1 ← ++ (byte) print::i#2 - to:print::@1 - -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -printf_uchar: scope:[printf_uchar] from print::@14 print::@2 - [226] (byte) printf_uchar::uvalue#2 ← phi( print::@14/(byte) printf_uchar::uvalue#1 print::@2/(byte) printf_uchar::uvalue#0 ) - to:printf_uchar::@1 -printf_uchar::@1: scope:[printf_uchar] from printf_uchar - [227] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [228] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 - [229] call uctoa - to:printf_uchar::@2 -printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 - [230] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [231] call printf_number_buffer - to:printf_uchar::@return -printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 - [232] return - to:@return - -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -uctoa: scope:[uctoa] from printf_uchar::@1 - [233] phi() - to:uctoa::@1 -uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [234] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [234] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) - [234] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) - [234] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) - [235] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 - to:uctoa::@3 -uctoa::@3: scope:[uctoa] from uctoa::@1 - [236] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) - [237] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 - [238] *((byte*) uctoa::buffer#3) ← (byte) 0 - to:uctoa::@return -uctoa::@return: scope:[uctoa] from uctoa::@3 - [239] return - to:@return -uctoa::@2: scope:[uctoa] from uctoa::@1 - [240] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) - [241] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 - to:uctoa::@7 -uctoa::@7: scope:[uctoa] from uctoa::@2 - [242] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 - to:uctoa::@4 -uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 - [243] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) - [243] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) - [243] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) - [244] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 - to:uctoa::@1 -uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 - [245] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - [246] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - [247] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - [248] call uctoa_append - [249] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - to:uctoa::@6 -uctoa::@6: scope:[uctoa] from uctoa::@5 - [250] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - [251] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 - to:uctoa::@4 - -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -uctoa_append: scope:[uctoa_append] from uctoa::@5 - [252] phi() - to:uctoa_append::@1 -uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 - [253] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) - [253] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) - [254] 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 - [255] *((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 - [256] return - to:@return -uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 - [257] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 - [258] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 - to:uctoa_append::@1 - -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -printf_ulong: scope:[printf_ulong] from print::@11 - [259] phi() - to:printf_ulong::@1 -printf_ulong::@1: scope:[printf_ulong] from printf_ulong - [260] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [261] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - [262] call ultoa - to:printf_ulong::@2 -printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 - [263] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [264] call printf_number_buffer - to:printf_ulong::@return -printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 - [265] return - to:@return - (void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) ultoa: scope:[ultoa] from printf_ulong::@1 - [266] phi() + [173] phi() to:ultoa::@1 ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 - [267] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [267] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) - [267] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) - [267] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) - [268] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 + [174] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [174] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) + [174] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) + [174] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) + [175] if((byte) ultoa::digit#2<(byte) $a-(byte) 1) goto ultoa::@2 to:ultoa::@3 ultoa::@3: scope:[ultoa] from ultoa::@1 - [269] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 - [270] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) - [271] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 - [272] *((byte*) ultoa::buffer#3) ← (byte) 0 + [176] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 + [177] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) + [178] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 + [179] *((byte*) ultoa::buffer#3) ← (byte) 0 to:ultoa::@return ultoa::@return: scope:[ultoa] from ultoa::@3 - [273] return + [180] return to:@return ultoa::@2: scope:[ultoa] from ultoa::@1 - [274] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 - [275] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) - [276] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 + [181] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 + [182] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) + [183] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 to:ultoa::@7 ultoa::@7: scope:[ultoa] from ultoa::@2 - [277] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 + [184] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 to:ultoa::@4 ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7 - [278] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) - [278] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) - [278] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) - [279] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 + [185] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) + [185] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) + [185] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) + [186] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 to:ultoa::@1 ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7 - [280] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - [281] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - [282] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - [283] call ultoa_append - [284] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 + [187] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 + [188] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 + [189] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 + [190] call ultoa_append + [191] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 to:ultoa::@6 ultoa::@6: scope:[ultoa] from ultoa::@5 - [285] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - [286] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 + [192] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 + [193] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 to:ultoa::@4 (dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) ultoa_append: scope:[ultoa_append] from ultoa::@5 - [287] phi() + [194] phi() to:ultoa_append::@1 ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2 - [288] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) - [288] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) - [289] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 + [195] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) + [195] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) + [196] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 to:ultoa_append::@3 ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 - [290] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) + [197] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) to:ultoa_append::@return ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 - [291] return + [198] return to:@return ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 - [292] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 - [293] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 + [199] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 + [200] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 to:ultoa_append::@1 +(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) +tod_str: scope:[tod_str] from main::@6 + [201] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 + [202] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 + [203] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 + [204] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f + [205] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 + [206] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 + [207] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 + [208] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 + [209] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 + [210] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f + [211] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 + [212] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 + [213] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 + [214] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 + [215] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 + [216] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f + [217] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 + [218] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 + [219] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 + [220] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 + [221] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 + [222] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f + [223] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 + [224] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 + to:tod_str::@return +tod_str::@return: scope:[tod_str] from tod_str + [225] return + to:@return + +(struct TIME_OF_DAY()) tod_read() +tod_read: scope:[tod_read] from main::@5 + [226] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) + [227] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) + [228] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) + [229] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) + to:tod_read::@return +tod_read::@return: scope:[tod_read] from tod_read + [230] return + to:@return + +(void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) +tod_init: scope:[tod_init] from main::@4 + [231] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 + [232] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f + [233] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 + [234] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 + [235] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 + [236] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 + to:tod_init::@return +tod_init::@return: scope:[tod_init] from tod_init + [237] return + to:@return + +(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_upper_case , (byte) printf_uint::format_radix) +printf_uint: scope:[printf_uint] from main::@3 + [238] phi() + to:printf_uint::@1 +printf_uint::@1: scope:[printf_uint] from printf_uint + [239] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [240] call utoa + to:printf_uint::@2 +printf_uint::@2: scope:[printf_uint] from printf_uint::@1 + [241] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [242] call printf_number_buffer + to:printf_uint::@return +printf_uint::@return: scope:[printf_uint] from printf_uint::@2 + [243] return + to:@return + +(void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) +utoa: scope:[utoa] from printf_uint::@1 + [244] phi() + to:utoa::@1 +utoa::@1: scope:[utoa] from utoa utoa::@4 + [245] (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 ) + [245] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) + [245] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) + [245] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) + [246] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 + to:utoa::@3 +utoa::@3: scope:[utoa] from utoa::@1 + [247] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 + [248] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) + [249] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 + [250] *((byte*) utoa::buffer#3) ← (byte) 0 + to:utoa::@return +utoa::@return: scope:[utoa] from utoa::@3 + [251] return + to:@return +utoa::@2: scope:[utoa] from utoa::@1 + [252] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 + [253] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) + [254] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 + to:utoa::@7 +utoa::@7: scope:[utoa] from utoa::@2 + [255] 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 + [256] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) + [256] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) + [256] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) + [257] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 + to:utoa::@1 +utoa::@5: scope:[utoa] from utoa::@2 utoa::@7 + [258] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + [259] (word) utoa_append::value#0 ← (word) utoa::value#2 + [260] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + [261] call utoa_append + [262] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + to:utoa::@6 +utoa::@6: scope:[utoa] from utoa::@5 + [263] (word) utoa::value#0 ← (word) utoa_append::return#0 + [264] (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 + [265] phi() + to:utoa_append::@1 +utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 + [266] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) + [266] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) + [267] 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 + [268] *((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 + [269] return + to:@return +utoa_append::@2: scope:[utoa_append] from utoa_append::@1 + [270] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 + [271] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 + to:utoa_append::@1 + +(void()) printf_cls() +printf_cls: scope:[printf_cls] from main + [272] phi() + [273] call memset + to:printf_cls::@1 +printf_cls::@1: scope:[printf_cls] from printf_cls + [274] (byte*) printf_cursor_ptr ← (byte*) 1024 + [275] (byte) printf_cursor_x ← (byte) 0 + [276] (byte) printf_cursor_y ← (byte) 0 + to:printf_cls::@return +printf_cls::@return: scope:[printf_cls] from printf_cls::@1 + [277] return + to:@return + +__stackcall (void()) queen((byte) queen::row) +queen: scope:[queen] from + [278] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) + [279] (byte) queen::r ← (byte) queen::row#0 + [280] (byte) queen::column ← (byte) 1 + to:queen::@1 +queen::@1: scope:[queen] from queen queen::@3 + [281] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 + to:queen::@return +queen::@return: scope:[queen] from queen::@1 + [282] return + to:@return +queen::@2: scope:[queen] from queen::@1 + [283] (byte) legal::row#0 ← (byte) queen::r + [284] (byte) legal::column#0 ← (byte) queen::column + [285] call legal + [286] (byte) legal::return#0 ← (byte) legal::return#4 + to:queen::@7 +queen::@7: scope:[queen] from queen::@2 + [287] (byte~) queen::$1 ← (byte) legal::return#0 + [288] if((byte) 0==(byte~) queen::$1) goto queen::@3 + to:queen::@5 +queen::@5: scope:[queen] from queen::@7 + [289] *((const byte*) board + (byte) queen::r) ← (byte) queen::column + [290] if((byte) queen::r==(byte) 8) goto queen::@4 + to:queen::@6 +queen::@6: scope:[queen] from queen::@5 + asm { ldacolumn pha ldar pha } + [292] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 + [293] stackpush(byte) ← (byte~) queen::$4 + [294] callexecute queen + sideeffect stackpullbytes((number) 1) + asm { pla star pla stacolumn } + to:queen::@3 +queen::@3: scope:[queen] from queen::@4 queen::@6 queen::@7 + [297] (byte) queen::column ← ++ (byte) queen::column + to:queen::@1 +queen::@4: scope:[queen] from queen::@5 + [298] (dword) count ← ++ (dword) count + [299] call print + to:queen::@3 + +(void()) print() +print: scope:[print] from queen::@4 + [300] phi() + [301] call printf_str + to:print::@11 +print::@11: scope:[print] from print + [302] (dword) printf_ulong::uvalue#1 ← (dword) count + [303] call printf_ulong + to:print::@12 +print::@12: scope:[print] from print::@11 + [304] phi() + [305] call printf_str + to:print::@1 +print::@1: scope:[print] from print::@12 print::@13 + [306] (byte) print::i#2 ← phi( print::@12/(byte) 1 print::@13/(byte) print::i#1 ) + [307] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 + to:print::@3 +print::@3: scope:[print] from print::@1 print::@7 + [308] (byte) print::i1#2 ← phi( print::@1/(byte) 1 print::@7/(byte) print::i1#1 ) + [309] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 + to:print::@return +print::@return: scope:[print] from print::@3 + [310] return + to:@return +print::@4: scope:[print] from print::@3 + [311] phi() + [312] call printf_str + to:print::@14 +print::@14: scope:[print] from print::@4 + [313] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 + [314] call printf_uchar + to:print::@5 +print::@5: scope:[print] from print::@14 print::@9 + [315] (byte) print::j#2 ← phi( print::@9/(byte) print::j#1 print::@14/(byte) 1 ) + [316] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 + to:print::@7 +print::@7: scope:[print] from print::@5 + [317] (byte) print::i1#1 ← ++ (byte) print::i1#2 + to:print::@3 +print::@6: scope:[print] from print::@5 + [318] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 + to:print::@10 +print::@10: scope:[print] from print::@6 + [319] phi() + [320] call printf_str + to:print::@9 +print::@9: scope:[print] from print::@10 print::@8 + [321] (byte) print::j#1 ← ++ (byte) print::j#2 + to:print::@5 +print::@8: scope:[print] from print::@6 + [322] phi() + [323] call printf_str + to:print::@9 +print::@2: scope:[print] from print::@1 + [324] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 + [325] call printf_uchar + to:print::@13 +print::@13: scope:[print] from print::@2 + [326] (byte) print::i#1 ← ++ (byte) print::i#2 + to:print::@1 + +(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) +printf_uchar: scope:[printf_uchar] from print::@14 print::@2 + [327] (byte) printf_uchar::uvalue#2 ← phi( print::@14/(byte) printf_uchar::uvalue#1 print::@2/(byte) printf_uchar::uvalue#0 ) + to:printf_uchar::@1 +printf_uchar::@1: scope:[printf_uchar] from printf_uchar + [328] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [329] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 + [330] call uctoa + to:printf_uchar::@2 +printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 + [331] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [332] call printf_number_buffer + to:printf_uchar::@return +printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 + [333] return + to:@return + +(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) +uctoa: scope:[uctoa] from printf_uchar::@1 + [334] phi() + to:uctoa::@1 +uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 + [335] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [335] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) + [335] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) + [335] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) + [336] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 + to:uctoa::@3 +uctoa::@3: scope:[uctoa] from uctoa::@1 + [337] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) + [338] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 + [339] *((byte*) uctoa::buffer#3) ← (byte) 0 + to:uctoa::@return +uctoa::@return: scope:[uctoa] from uctoa::@3 + [340] return + to:@return +uctoa::@2: scope:[uctoa] from uctoa::@1 + [341] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) + [342] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 + to:uctoa::@7 +uctoa::@7: scope:[uctoa] from uctoa::@2 + [343] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 + to:uctoa::@4 +uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 + [344] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) + [344] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) + [344] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) + [345] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 + to:uctoa::@1 +uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 + [346] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + [347] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + [348] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + [349] call uctoa_append + [350] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + to:uctoa::@6 +uctoa::@6: scope:[uctoa] from uctoa::@5 + [351] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + [352] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 + to:uctoa::@4 + +(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) +uctoa_append: scope:[uctoa_append] from uctoa::@5 + [353] phi() + to:uctoa_append::@1 +uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 + [354] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) + [354] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) + [355] 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 + [356] *((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 + [357] return + to:@return +uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 + [358] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 + [359] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 + to:uctoa_append::@1 + (byte()) legal((byte) legal::row , (byte) legal::column) legal: scope:[legal] from queen::@2 - [294] phi() + [360] phi() to:legal::@1 legal::@1: scope:[legal] from legal legal::@3 - [295] (byte) legal::i#2 ← phi( legal/(byte) 1 legal::@3/(byte) legal::i#1 ) - [296] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 - [297] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 + [361] (byte) legal::i#2 ← phi( legal/(byte) 1 legal::@3/(byte) legal::i#1 ) + [362] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 + [363] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 to:legal::@return legal::@return: scope:[legal] from legal::@1 legal::@2 legal::@6 - [298] (byte) legal::return#4 ← phi( legal::@1/(byte) 1 legal::@2/(byte) 0 legal::@6/(byte) 0 ) - [299] return + [364] (byte) legal::return#4 ← phi( legal::@1/(byte) 1 legal::@2/(byte) 0 legal::@6/(byte) 0 ) + [365] return to:@return legal::@2: scope:[legal] from legal::@1 - [300] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return + [366] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return to:legal::@4 legal::@4: scope:[legal] from legal::@2 - [301] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) - [302] (byte) diff::b#0 ← (byte) legal::column#0 - [303] call diff - [304] (byte) diff::return#0 ← (byte) diff::return#4 + [367] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) + [368] (byte) diff::b#0 ← (byte) legal::column#0 + [369] call diff + [370] (byte) diff::return#0 ← (byte) diff::return#4 to:legal::@5 legal::@5: scope:[legal] from legal::@4 - [305] (byte~) legal::$3 ← (byte) diff::return#0 - [306] (byte) diff::a#1 ← (byte) legal::i#2 - [307] (byte) diff::b#1 ← (byte) legal::row#0 - [308] call diff - [309] (byte) diff::return#1 ← (byte) diff::return#4 + [371] (byte~) legal::$3 ← (byte) diff::return#0 + [372] (byte) diff::a#1 ← (byte) legal::i#2 + [373] (byte) diff::b#1 ← (byte) legal::row#0 + [374] call diff + [375] (byte) diff::return#1 ← (byte) diff::return#4 to:legal::@6 legal::@6: scope:[legal] from legal::@5 - [310] (byte~) legal::$4 ← (byte) diff::return#1 - [311] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 + [376] (byte~) legal::$4 ← (byte) diff::return#1 + [377] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 to:legal::@return legal::@3: scope:[legal] from legal::@6 - [312] (byte) legal::i#1 ← ++ (byte) legal::i#2 + [378] (byte) legal::i#1 ← ++ (byte) legal::i#2 to:legal::@1 (byte()) diff((byte) diff::a , (byte) diff::b) diff: scope:[diff] from legal::@4 legal::@5 - [313] (byte) diff::b#2 ← phi( legal::@4/(byte) diff::b#0 legal::@5/(byte) diff::b#1 ) - [313] (byte) diff::a#2 ← phi( legal::@4/(byte) diff::a#0 legal::@5/(byte) diff::a#1 ) - [314] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 + [379] (byte) diff::b#2 ← phi( legal::@4/(byte) diff::b#0 legal::@5/(byte) diff::b#1 ) + [379] (byte) diff::a#2 ← phi( legal::@4/(byte) diff::a#0 legal::@5/(byte) diff::a#1 ) + [380] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 to:diff::@2 diff::@2: scope:[diff] from diff - [315] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 + [381] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 to:diff::@return diff::@return: scope:[diff] from diff::@1 diff::@2 - [316] (byte) diff::return#4 ← phi( diff::@1/(byte) diff::return#2 diff::@2/(byte) diff::return#3 ) - [317] return + [382] (byte) diff::return#4 ← phi( diff::@1/(byte) diff::return#2 diff::@2/(byte) diff::return#3 ) + [383] return to:@return diff::@1: scope:[diff] from diff - [318] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 + [384] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 to:diff::@return diff --git a/src/test/ref/examples/eightqueens/eightqueens-recursive.log b/src/test/ref/examples/eightqueens/eightqueens-recursive.log index fd1a00906..7f87ad092 100644 --- a/src/test/ref/examples/eightqueens/eightqueens-recursive.log +++ b/src/test/ref/examples/eightqueens/eightqueens-recursive.log @@ -4,6 +4,8 @@ Fixing struct type SIZE_OF struct printf_buffer_number to 12 Fixing struct type SIZE_OF struct printf_buffer_number to 12 Added struct type cast to parameter value list call printf_uint (number) 8 (struct printf_format_number){ (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) DECIMAL } Added struct type cast to parameter value list call printf_ulong (dword) count (struct printf_format_number){ (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) DECIMAL } +Added struct type cast to parameter value list call printf_string (byte*~) main::$6 (struct printf_format_string){ (byte) 0, (byte) 0 } +Added struct type cast to parameter value list call printf_ulong (dword) count (struct printf_format_number){ (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) DECIMAL } Added struct type cast to parameter value list call printf_uchar (byte) print::i (struct printf_format_number){ (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) HEXADECIMAL } Added struct type cast to parameter value list call printf_uchar (byte) print::i1 (struct printf_format_number){ (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) HEXADECIMAL } Created struct value member variable (byte) printf_slong::format_min_length @@ -61,6 +63,31 @@ Converted struct value to member variables (struct printf_format_number) printf_ Created struct value member variable (byte) printf_string::format_min_length Created struct value member variable (byte) printf_string::format_justify_left Converted struct value to member variables (struct printf_format_string) printf_string::format +Created struct value member variable (byte) tod_init::tod_TENTHS +Created struct value member variable (byte) tod_init::tod_SEC +Created struct value member variable (byte) tod_init::tod_MIN +Created struct value member variable (byte) tod_init::tod_HOURS +Converted struct value to member variables (struct TIME_OF_DAY) tod_init::tod +Created struct value member variable (byte) tod_read::return_TENTHS +Created struct value member variable (byte) tod_read::return_SEC +Created struct value member variable (byte) tod_read::return_MIN +Created struct value member variable (byte) tod_read::return_HOURS +Converted struct value to member variables (struct TIME_OF_DAY) tod_read::return +Created struct value member variable (byte) tod_read::tod_TENTHS +Created struct value member variable (byte) tod_read::tod_SEC +Created struct value member variable (byte) tod_read::tod_MIN +Created struct value member variable (byte) tod_read::tod_HOURS +Converted struct value to member variables (struct TIME_OF_DAY) tod_read::tod +Created struct value member variable (byte) tod_str::tod_TENTHS +Created struct value member variable (byte) tod_str::tod_SEC +Created struct value member variable (byte) tod_str::tod_MIN +Created struct value member variable (byte) tod_str::tod_HOURS +Converted struct value to member variables (struct TIME_OF_DAY) tod_str::tod +Created struct value member variable (byte~) main::$5_TENTHS +Created struct value member variable (byte~) main::$5_SEC +Created struct value member variable (byte~) main::$5_MIN +Created struct value member variable (byte~) main::$5_HOURS +Converted struct value to member variables (struct TIME_OF_DAY~) main::$5 Converted procedure struct value parameter to member unwinding (void()) printf_slong((signed dword) printf_slong::value , (byte) printf_slong::format_min_length , (byte) printf_slong::format_justify_left , (byte) printf_slong::format_sign_always , (byte) printf_slong::format_zero_padding , (byte) printf_slong::format_upper_case , (byte) printf_slong::format_radix) Converted procedure struct value parameter to member unwinding (void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) Converted procedure struct value parameter to member unwinding (void()) printf_sint((signed word) printf_sint::value , (byte) printf_sint::format_min_length , (byte) printf_sint::format_justify_left , (byte) printf_sint::format_sign_always , (byte) printf_sint::format_zero_padding , (byte) printf_sint::format_upper_case , (byte) printf_sint::format_radix) @@ -69,13 +96,36 @@ Converted procedure struct value parameter to member unwinding (void()) printf_s Converted procedure struct value parameter to member unwinding (void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) Converted procedure struct value parameter to member unwinding (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_upper_case , (byte) printf_number_buffer::format_radix) Converted procedure struct value parameter to member unwinding (void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) +Converted procedure struct value parameter to member unwinding (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) +Converted procedure struct value parameter to member unwinding (byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) Converted call struct value parameter to member unwinding (void~) printf_slong::$2 ← call printf_number_buffer *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS (byte) printf_slong::format_min_length (byte) printf_slong::format_justify_left (byte) printf_slong::format_sign_always (byte) printf_slong::format_zero_padding (byte) printf_slong::format_upper_case (byte) printf_slong::format_radix Converted call struct value parameter to member unwinding (void~) printf_ulong::$4 ← call printf_number_buffer *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS (byte) printf_ulong::format_min_length (byte) printf_ulong::format_justify_left (byte) printf_ulong::format_sign_always (byte) printf_ulong::format_zero_padding (byte) printf_ulong::format_upper_case (byte) printf_ulong::format_radix Converted call struct value parameter to member unwinding (void~) printf_sint::$2 ← call printf_number_buffer *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS (byte) printf_sint::format_min_length (byte) printf_sint::format_justify_left (byte) printf_sint::format_sign_always (byte) printf_sint::format_zero_padding (byte) printf_sint::format_upper_case (byte) printf_sint::format_radix Converted call struct value parameter to member unwinding (void~) printf_uint::$4 ← call printf_number_buffer *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS (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_upper_case (byte) printf_uint::format_radix Converted call struct value parameter to member unwinding (void~) printf_schar::$2 ← call printf_number_buffer *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS (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_upper_case (byte) printf_schar::format_radix Converted call struct value parameter to member unwinding (void~) printf_uchar::$4 ← call printf_number_buffer *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS (byte) printf_uchar::format_min_length (byte) printf_uchar::format_justify_left (byte) printf_uchar::format_sign_always (byte) printf_uchar::format_zero_padding (byte) printf_uchar::format_upper_case (byte) printf_uchar::format_radix +Unwinding value copy (struct TIME_OF_DAY) tod_read::tod ← (struct TIME_OF_DAY){ (byte) tod_read::tenths, (byte) tod_read::secs, (byte) tod_read::mins, (byte) tod_read::hours } +Adding value simple copy (byte) tod_read::tod_TENTHS ← (byte) tod_read::tenths +Adding value simple copy (byte) tod_read::tod_SEC ← (byte) tod_read::secs +Adding value simple copy (byte) tod_read::tod_MIN ← (byte) tod_read::mins +Adding value simple copy (byte) tod_read::tod_HOURS ← (byte) tod_read::hours +Unwinding value copy (struct TIME_OF_DAY) tod_read::return ← (struct TIME_OF_DAY) tod_read::tod +Adding value simple copy (byte) tod_read::return_TENTHS ← (byte) tod_read::tod_TENTHS +Adding value simple copy (byte) tod_read::return_SEC ← (byte) tod_read::tod_SEC +Adding value simple copy (byte) tod_read::return_MIN ← (byte) tod_read::tod_MIN +Adding value simple copy (byte) tod_read::return_HOURS ← (byte) tod_read::tod_HOURS +Unwinding value copy (struct TIME_OF_DAY) tod_read::return ← (struct TIME_OF_DAY) tod_read::return +Adding value simple copy (byte) tod_read::return_TENTHS ← (byte) tod_read::return_TENTHS +Adding value simple copy (byte) tod_read::return_SEC ← (byte) tod_read::return_SEC +Adding value simple copy (byte) tod_read::return_MIN ← (byte) tod_read::return_MIN +Adding value simple copy (byte) tod_read::return_HOURS ← (byte) tod_read::return_HOURS +Converted procedure struct return value to member unwinding return { (byte) tod_read::return_TENTHS, (byte) tod_read::return_SEC, (byte) tod_read::return_MIN, (byte) tod_read::return_HOURS } Converted call struct value parameter to member unwinding call printf_uint (number) 8 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (const byte) DECIMAL +Converted call struct value parameter to member unwinding (void~) main::$3 ← call tod_init *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS) *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC) *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN) *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS) +Converted procedure call LValue to member unwinding { (byte~) main::$5_TENTHS, (byte~) main::$5_SEC, (byte~) main::$5_MIN, (byte~) main::$5_HOURS } ← call tod_read +Converted call struct value parameter to member unwinding (byte*~) main::$6 ← call tod_str (byte~) main::$5_TENTHS (byte~) main::$5_SEC (byte~) main::$5_MIN (byte~) main::$5_HOURS +Converted call struct value parameter to member unwinding call printf_ulong (dword) count (byte) 0 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (const byte) DECIMAL +Converted call struct value parameter to member unwinding call printf_string (byte*~) main::$6 (byte) 0 (byte) 0 Converted call struct value parameter to member unwinding call printf_ulong (dword) count (byte) 0 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (const byte) DECIMAL Converted call struct value parameter to member unwinding call printf_uchar (byte) print::i (byte) 0 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (const byte) HEXADECIMAL Converted call struct value parameter to member unwinding call printf_uchar (byte) print::i1 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (const byte) HEXADECIMAL @@ -127,8 +177,37 @@ Replacing struct member reference (struct printf_format_string) printf_string::f Replacing struct member reference (struct printf_format_string) printf_string::format.justify_left with member unwinding reference (byte) printf_string::format_justify_left Replacing struct member reference (struct printf_format_string) printf_string::format.min_length with member unwinding reference (byte) printf_string::format_min_length Replacing struct member reference (struct printf_format_string) printf_string::format.justify_left with member unwinding reference (byte) printf_string::format_justify_left +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA2).PORT_A_DDR with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA2).PORT_A with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_PORT_A) +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TIMER_A_CONTROL with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TIMER_A_CONTROL with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TIMER_B_CONTROL with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TIMER_B_CONTROL with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) +Replacing struct member reference (struct TIME_OF_DAY) tod_init::tod.HOURS with member unwinding reference (byte) tod_init::tod_HOURS +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TOD_HOURS with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) +Replacing struct member reference (struct TIME_OF_DAY) tod_init::tod.MIN with member unwinding reference (byte) tod_init::tod_MIN +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TOD_MIN with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) +Replacing struct member reference (struct TIME_OF_DAY) tod_init::tod.SEC with member unwinding reference (byte) tod_init::tod_SEC +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TOD_SEC with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) +Replacing struct member reference (struct TIME_OF_DAY) tod_init::tod.TENTHS with member unwinding reference (byte) tod_init::tod_TENTHS +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TOD_10THS with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TOD_HOURS with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TOD_MIN with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TOD_SEC with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) +Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TOD_10THS with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) +Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.HOURS with member unwinding reference (byte) tod_str::tod_HOURS +Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.HOURS with member unwinding reference (byte) tod_str::tod_HOURS +Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.MIN with member unwinding reference (byte) tod_str::tod_MIN +Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.MIN with member unwinding reference (byte) tod_str::tod_MIN +Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.SEC with member unwinding reference (byte) tod_str::tod_SEC +Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.SEC with member unwinding reference (byte) tod_str::tod_SEC +Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.TENTHS with member unwinding reference (byte) tod_str::tod_TENTHS +Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.TENTHS with member unwinding reference (byte) tod_str::tod_TENTHS +Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx Eliminating unused variable with no statement (void~) main::$1 Eliminating unused variable with no statement (void~) main::$2 +Eliminating unused variable with no statement (struct TIME_OF_DAY~) main::$5 +Eliminating unused variable with no statement (void~) main::$7 Eliminating unused variable with no statement (void~) print::$0 Eliminating unused variable with no statement (void~) print::$2 Eliminating unused variable with no statement (void~) print::$4 @@ -140,6 +219,8 @@ Calling convention STACK_CALL adding prepare/execute/finalize for call queen (nu Calling convention STACK_CALL replacing param((byte) queen::row) with stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) Calling convention STACK_CALL adding stack push stackpush(byte) ← 1 Calling convention STACK_CALL adding stack push stackpush(byte) ← queen::$4 +Unwinding list assignment { (byte~) main::$5_TENTHS, (byte~) main::$5_SEC, (byte~) main::$5_MIN, (byte~) main::$5_HOURS } ← { (byte) tod_read::return_TENTHS, (byte) tod_read::return_SEC, (byte) tod_read::return_MIN, (byte) tod_read::return_HOURS } +Unwinding list assignment { (byte) tod_read::return_TENTHS#2, (byte) tod_read::return_SEC#2, (byte) tod_read::return_MIN#2, (byte) tod_read::return_HOURS#2 } ← { (byte) tod_read::return_TENTHS#1, (byte) tod_read::return_SEC#1, (byte) tod_read::return_MIN#1, (byte) tod_read::return_HOURS#1 } CONTROL FLOW GRAPH SSA @begin: scope:[] from @@ -287,29 +368,29 @@ strupr::@return: scope:[strupr] from strupr::@3 to:@return (word()) strlen((byte*) strlen::str) -strlen: scope:[strlen] from printf_number_buffer::@6 - (byte*) strlen::str#4 ← phi( printf_number_buffer::@6/(byte*) strlen::str#1 ) +strlen: scope:[strlen] from printf_number_buffer::@6 printf_string::@3 + (byte*) strlen::str#5 ← phi( printf_number_buffer::@6/(byte*) strlen::str#1 printf_string::@3/(byte*) strlen::str#2 ) (word) strlen::len#0 ← (word) 0 to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 (word) strlen::len#4 ← phi( strlen/(word) strlen::len#0 strlen::@2/(word) strlen::len#1 ) - (byte*) strlen::str#2 ← phi( strlen/(byte*) strlen::str#4 strlen::@2/(byte*) strlen::str#0 ) - (bool~) strlen::$0 ← (number) 0 != *((byte*) strlen::str#2) + (byte*) strlen::str#3 ← phi( strlen/(byte*) strlen::str#5 strlen::@2/(byte*) strlen::str#0 ) + (bool~) strlen::$0 ← (number) 0 != *((byte*) strlen::str#3) if((bool~) strlen::$0) goto strlen::@2 to:strlen::@3 strlen::@2: scope:[strlen] from strlen::@1 - (byte*) strlen::str#3 ← phi( strlen::@1/(byte*) strlen::str#2 ) + (byte*) strlen::str#4 ← phi( strlen::@1/(byte*) strlen::str#3 ) (word) strlen::len#2 ← phi( strlen::@1/(word) strlen::len#4 ) (word) strlen::len#1 ← ++ (word) strlen::len#2 - (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 + (byte*) strlen::str#0 ← ++ (byte*) strlen::str#4 to:strlen::@1 strlen::@3: scope:[strlen] from strlen::@1 (word) strlen::len#3 ← phi( strlen::@1/(word) strlen::len#4 ) (word) strlen::return#0 ← (word) strlen::len#3 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@3 - (word) strlen::return#3 ← phi( strlen::@3/(word) strlen::return#0 ) - (word) strlen::return#1 ← (word) strlen::return#3 + (word) strlen::return#4 ← phi( strlen::@3/(word) strlen::return#0 ) + (word) strlen::return#1 ← (word) strlen::return#4 return to:@return @@ -937,28 +1018,28 @@ printf_scroll::@return: scope:[printf_scroll] from printf_scroll printf_scroll: to:@return (void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - (byte) printf_padding::pad#5 ← phi( printf_number_buffer::@10/(byte) printf_padding::pad#1 printf_number_buffer::@12/(byte) printf_padding::pad#2 printf_number_buffer::@8/(byte) printf_padding::pad#0 ) - (byte) printf_padding::length#4 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) +printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 printf_string::@5 printf_string::@6 + (byte) printf_padding::pad#7 ← phi( printf_number_buffer::@10/(byte) printf_padding::pad#1 printf_number_buffer::@12/(byte) printf_padding::pad#2 printf_number_buffer::@8/(byte) printf_padding::pad#0 printf_string::@5/(byte) printf_padding::pad#3 printf_string::@6/(byte) printf_padding::pad#4 ) + (byte) printf_padding::length#6 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 printf_string::@5/(byte) printf_padding::length#3 printf_string::@6/(byte) printf_padding::length#4 ) (byte) printf_padding::i#0 ← (byte) 0 to:printf_padding::@1 printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - (byte) printf_padding::pad#4 ← phi( printf_padding/(byte) printf_padding::pad#5 printf_padding::@3/(byte) printf_padding::pad#6 ) - (byte) printf_padding::length#3 ← phi( printf_padding/(byte) printf_padding::length#4 printf_padding::@3/(byte) printf_padding::length#5 ) + (byte) printf_padding::pad#6 ← phi( printf_padding/(byte) printf_padding::pad#7 printf_padding::@3/(byte) printf_padding::pad#8 ) + (byte) printf_padding::length#5 ← phi( printf_padding/(byte) printf_padding::length#6 printf_padding::@3/(byte) printf_padding::length#7 ) (byte) printf_padding::i#2 ← phi( printf_padding/(byte) printf_padding::i#0 printf_padding::@3/(byte) printf_padding::i#1 ) - (bool~) printf_padding::$0 ← (byte) printf_padding::i#2 < (byte) printf_padding::length#3 + (bool~) printf_padding::$0 ← (byte) printf_padding::i#2 < (byte) printf_padding::length#5 if((bool~) printf_padding::$0) goto printf_padding::@2 to:printf_padding::@return printf_padding::@2: scope:[printf_padding] from printf_padding::@1 - (byte) printf_padding::length#6 ← phi( printf_padding::@1/(byte) printf_padding::length#3 ) + (byte) printf_padding::length#8 ← phi( printf_padding::@1/(byte) printf_padding::length#5 ) (byte) printf_padding::i#4 ← phi( printf_padding::@1/(byte) printf_padding::i#2 ) - (byte) printf_padding::pad#3 ← phi( printf_padding::@1/(byte) printf_padding::pad#4 ) - (byte) printf_char::ch#0 ← (byte) printf_padding::pad#3 + (byte) printf_padding::pad#5 ← phi( printf_padding::@1/(byte) printf_padding::pad#6 ) + (byte) printf_char::ch#0 ← (byte) printf_padding::pad#5 call printf_char to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 - (byte) printf_padding::pad#6 ← phi( printf_padding::@2/(byte) printf_padding::pad#3 ) - (byte) printf_padding::length#5 ← phi( printf_padding::@2/(byte) printf_padding::length#6 ) + (byte) printf_padding::pad#8 ← phi( printf_padding::@2/(byte) printf_padding::pad#5 ) + (byte) printf_padding::length#7 ← phi( printf_padding::@2/(byte) printf_padding::length#8 ) (byte) printf_padding::i#3 ← phi( printf_padding::@2/(byte) printf_padding::i#4 ) (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#3 to:printf_padding::@1 @@ -967,110 +1048,110 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 to:@return (void()) printf_str((byte*) printf_str::str) -printf_str: scope:[printf_str] from main::@1 main::@2 print print::@11 print::@13 print::@5 print::@9 printf_number_buffer::@5 - (byte*) printf_str::str#11 ← phi( main::@1/(byte*) printf_str::str#2 main::@2/(byte*) printf_str::str#3 print/(byte*) printf_str::str#4 print::@11/(byte*) printf_str::str#8 print::@13/(byte*) printf_str::str#5 print::@5/(byte*) printf_str::str#6 print::@9/(byte*) printf_str::str#7 printf_number_buffer::@5/(byte*) printf_str::str#1 ) +printf_str: scope:[printf_str] from main::@1 main::@11 main::@2 main::@7 main::@9 print print::@11 print::@13 print::@5 print::@9 printf_number_buffer::@5 printf_string::@2 + (byte*) printf_str::str#15 ← phi( main::@1/(byte*) printf_str::str#3 main::@11/(byte*) printf_str::str#7 main::@2/(byte*) printf_str::str#4 main::@7/(byte*) printf_str::str#5 main::@9/(byte*) printf_str::str#6 print/(byte*) printf_str::str#8 print::@11/(byte*) printf_str::str#12 print::@13/(byte*) printf_str::str#9 print::@5/(byte*) printf_str::str#10 print::@9/(byte*) printf_str::str#11 printf_number_buffer::@5/(byte*) printf_str::str#1 printf_string::@2/(byte*) printf_str::str#2 ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@6 printf_str::@7 - (byte*) printf_str::str#10 ← phi( printf_str/(byte*) printf_str::str#11 printf_str::@6/(byte*) printf_str::str#12 printf_str::@7/(byte*) printf_str::str#13 ) + (byte*) printf_str::str#14 ← phi( printf_str/(byte*) printf_str::str#15 printf_str::@6/(byte*) printf_str::str#16 printf_str::@7/(byte*) printf_str::str#17 ) if(true) goto printf_str::@2 to:printf_str::@return printf_str::@2: scope:[printf_str] from printf_str::@1 - (byte*) printf_str::str#9 ← phi( printf_str::@1/(byte*) printf_str::str#10 ) - (byte) printf_str::ch#0 ← *((byte*) printf_str::str#9) - (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#9 + (byte*) printf_str::str#13 ← phi( printf_str::@1/(byte*) printf_str::str#14 ) + (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) + (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 (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::@3 to:printf_str::@return printf_str::@3: scope:[printf_str] from printf_str::@2 - (byte*) printf_str::str#16 ← phi( printf_str::@2/(byte*) printf_str::str#0 ) + (byte*) printf_str::str#20 ← 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::@4 to:printf_str::@5 printf_str::@4: scope:[printf_str] from printf_str::@3 - (byte*) printf_str::str#14 ← phi( printf_str::@3/(byte*) printf_str::str#16 ) + (byte*) printf_str::str#18 ← phi( printf_str::@3/(byte*) printf_str::str#20 ) call printf_ln to:printf_str::@6 printf_str::@6: scope:[printf_str] from printf_str::@4 - (byte*) printf_str::str#12 ← phi( printf_str::@4/(byte*) printf_str::str#14 ) + (byte*) printf_str::str#16 ← phi( printf_str::@4/(byte*) printf_str::str#18 ) to:printf_str::@1 printf_str::@5: scope:[printf_str] from printf_str::@3 - (byte*) printf_str::str#15 ← phi( printf_str::@3/(byte*) printf_str::str#16 ) + (byte*) printf_str::str#19 ← phi( printf_str::@3/(byte*) printf_str::str#20 ) (byte) printf_str::ch#2 ← phi( printf_str::@3/(byte) printf_str::ch#1 ) (byte) printf_char::ch#1 ← (byte) printf_str::ch#2 call printf_char to:printf_str::@7 printf_str::@7: scope:[printf_str] from printf_str::@5 - (byte*) printf_str::str#13 ← phi( printf_str::@5/(byte*) printf_str::str#15 ) + (byte*) printf_str::str#17 ← phi( printf_str::@5/(byte*) printf_str::str#19 ) to:printf_str::@1 printf_str::@return: scope:[printf_str] from printf_str::@1 printf_str::@2 return to:@return (void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -printf_ulong: scope:[printf_ulong] from print::@12 - (byte) printf_ulong::format_upper_case#5 ← phi( print::@12/(byte) printf_ulong::format_upper_case#0 ) - (byte) printf_ulong::format_zero_padding#5 ← phi( print::@12/(byte) printf_ulong::format_zero_padding#0 ) - (byte) printf_ulong::format_justify_left#5 ← phi( print::@12/(byte) printf_ulong::format_justify_left#0 ) - (byte) printf_ulong::format_min_length#5 ← phi( print::@12/(byte) printf_ulong::format_min_length#0 ) - (byte) printf_ulong::format_radix#5 ← phi( print::@12/(byte) printf_ulong::format_radix#0 ) - (dword) printf_ulong::uvalue#4 ← phi( print::@12/(dword) printf_ulong::uvalue#0 ) - (byte) printf_ulong::format_sign_always#1 ← phi( print::@12/(byte) printf_ulong::format_sign_always#0 ) - (bool~) printf_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#1 +printf_ulong: scope:[printf_ulong] from main::@8 print::@12 + (byte) printf_ulong::format_upper_case#6 ← phi( main::@8/(byte) printf_ulong::format_upper_case#0 print::@12/(byte) printf_ulong::format_upper_case#1 ) + (byte) printf_ulong::format_zero_padding#6 ← phi( main::@8/(byte) printf_ulong::format_zero_padding#0 print::@12/(byte) printf_ulong::format_zero_padding#1 ) + (byte) printf_ulong::format_justify_left#6 ← phi( main::@8/(byte) printf_ulong::format_justify_left#0 print::@12/(byte) printf_ulong::format_justify_left#1 ) + (byte) printf_ulong::format_min_length#6 ← phi( main::@8/(byte) printf_ulong::format_min_length#0 print::@12/(byte) printf_ulong::format_min_length#1 ) + (byte) printf_ulong::format_radix#6 ← phi( main::@8/(byte) printf_ulong::format_radix#0 print::@12/(byte) printf_ulong::format_radix#1 ) + (dword) printf_ulong::uvalue#5 ← phi( main::@8/(dword) printf_ulong::uvalue#0 print::@12/(dword) printf_ulong::uvalue#1 ) + (byte) printf_ulong::format_sign_always#2 ← phi( main::@8/(byte) printf_ulong::format_sign_always#0 print::@12/(byte) printf_ulong::format_sign_always#1 ) + (bool~) printf_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#2 if((bool~) printf_ulong::$5) goto printf_ulong::@1 to:printf_ulong::@2 printf_ulong::@1: scope:[printf_ulong] from printf_ulong - (byte) printf_ulong::format_upper_case#3 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#5 ) - (byte) printf_ulong::format_zero_padding#3 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#5 ) - (byte) printf_ulong::format_sign_always#4 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#1 ) - (byte) printf_ulong::format_justify_left#3 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#5 ) - (byte) printf_ulong::format_min_length#3 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#5 ) - (byte) printf_ulong::format_radix#3 ← phi( printf_ulong/(byte) printf_ulong::format_radix#5 ) - (dword) printf_ulong::uvalue#2 ← phi( printf_ulong/(dword) printf_ulong::uvalue#4 ) + (byte) printf_ulong::format_upper_case#4 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#6 ) + (byte) printf_ulong::format_zero_padding#4 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#6 ) + (byte) printf_ulong::format_sign_always#5 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#2 ) + (byte) printf_ulong::format_justify_left#4 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#6 ) + (byte) printf_ulong::format_min_length#4 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#6 ) + (byte) printf_ulong::format_radix#4 ← phi( printf_ulong/(byte) printf_ulong::format_radix#6 ) + (dword) printf_ulong::uvalue#3 ← phi( printf_ulong/(dword) printf_ulong::uvalue#5 ) (byte~) printf_ulong::$1 ← (byte) '+' to:printf_ulong::@3 printf_ulong::@2: scope:[printf_ulong] from printf_ulong - (byte) printf_ulong::format_upper_case#4 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#5 ) - (byte) printf_ulong::format_zero_padding#4 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#5 ) - (byte) printf_ulong::format_sign_always#5 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#1 ) - (byte) printf_ulong::format_justify_left#4 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#5 ) - (byte) printf_ulong::format_min_length#4 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#5 ) - (byte) printf_ulong::format_radix#4 ← phi( printf_ulong/(byte) printf_ulong::format_radix#5 ) - (dword) printf_ulong::uvalue#3 ← phi( printf_ulong/(dword) printf_ulong::uvalue#4 ) + (byte) printf_ulong::format_upper_case#5 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#6 ) + (byte) printf_ulong::format_zero_padding#5 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#6 ) + (byte) printf_ulong::format_sign_always#6 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#2 ) + (byte) printf_ulong::format_justify_left#5 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#6 ) + (byte) printf_ulong::format_min_length#5 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#6 ) + (byte) printf_ulong::format_radix#5 ← phi( printf_ulong/(byte) printf_ulong::format_radix#6 ) + (dword) printf_ulong::uvalue#4 ← phi( printf_ulong/(dword) printf_ulong::uvalue#5 ) (number~) printf_ulong::$0 ← (number) 0 to:printf_ulong::@3 printf_ulong::@3: scope:[printf_ulong] from printf_ulong::@1 printf_ulong::@2 - (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#3 printf_ulong::@2/(byte) printf_ulong::format_upper_case#4 ) - (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#3 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#4 ) - (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#4 printf_ulong::@2/(byte) printf_ulong::format_sign_always#5 ) - (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#3 printf_ulong::@2/(byte) printf_ulong::format_justify_left#4 ) - (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#3 printf_ulong::@2/(byte) printf_ulong::format_min_length#4 ) - (byte) printf_ulong::format_radix#1 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#3 printf_ulong::@2/(byte) printf_ulong::format_radix#4 ) - (dword) printf_ulong::uvalue#1 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#2 printf_ulong::@2/(dword) printf_ulong::uvalue#3 ) + (byte) printf_ulong::format_upper_case#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#4 printf_ulong::@2/(byte) printf_ulong::format_upper_case#5 ) + (byte) printf_ulong::format_zero_padding#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#4 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#5 ) + (byte) printf_ulong::format_sign_always#4 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#5 printf_ulong::@2/(byte) printf_ulong::format_sign_always#6 ) + (byte) printf_ulong::format_justify_left#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#4 printf_ulong::@2/(byte) printf_ulong::format_justify_left#5 ) + (byte) printf_ulong::format_min_length#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#4 printf_ulong::@2/(byte) printf_ulong::format_min_length#5 ) + (byte) printf_ulong::format_radix#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#4 printf_ulong::@2/(byte) printf_ulong::format_radix#5 ) + (dword) printf_ulong::uvalue#2 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#3 printf_ulong::@2/(dword) printf_ulong::uvalue#4 ) (number~) printf_ulong::$2 ← phi( printf_ulong::@1/(byte~) printf_ulong::$1 printf_ulong::@2/(number~) printf_ulong::$0 ) *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (number~) printf_ulong::$2 - (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#1 + (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 (byte*) ultoa::buffer#5 ← (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - (byte) ultoa::radix#0 ← (byte) printf_ulong::format_radix#1 + (byte) ultoa::radix#0 ← (byte) printf_ulong::format_radix#2 call ultoa to:printf_ulong::@4 printf_ulong::@4: scope:[printf_ulong] from printf_ulong::@3 - (byte) printf_ulong::format_radix#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_radix#1 ) - (byte) printf_ulong::format_upper_case#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_upper_case#2 ) - (byte) printf_ulong::format_zero_padding#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_zero_padding#2 ) - (byte) printf_ulong::format_sign_always#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_sign_always#3 ) - (byte) printf_ulong::format_justify_left#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_justify_left#2 ) - (byte) printf_ulong::format_min_length#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_min_length#2 ) + (byte) printf_ulong::format_radix#3 ← phi( printf_ulong::@3/(byte) printf_ulong::format_radix#2 ) + (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_upper_case#3 ) + (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_zero_padding#3 ) + (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@3/(byte) printf_ulong::format_sign_always#4 ) + (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_justify_left#3 ) + (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_min_length#3 ) (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) (byte*) printf_number_buffer::buffer_digits#0 ← (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - (byte) printf_number_buffer::format_min_length#0 ← (byte) printf_ulong::format_min_length#1 - (byte) printf_number_buffer::format_justify_left#0 ← (byte) printf_ulong::format_justify_left#1 - (byte) printf_number_buffer::format_sign_always#0 ← (byte) printf_ulong::format_sign_always#2 - (byte) printf_number_buffer::format_zero_padding#0 ← (byte) printf_ulong::format_zero_padding#1 - (byte) printf_number_buffer::format_upper_case#0 ← (byte) printf_ulong::format_upper_case#1 - (byte) printf_number_buffer::format_radix#0 ← (byte) printf_ulong::format_radix#2 + (byte) printf_number_buffer::format_min_length#0 ← (byte) printf_ulong::format_min_length#2 + (byte) printf_number_buffer::format_justify_left#0 ← (byte) printf_ulong::format_justify_left#2 + (byte) printf_number_buffer::format_sign_always#0 ← (byte) printf_ulong::format_sign_always#3 + (byte) printf_number_buffer::format_zero_padding#0 ← (byte) printf_ulong::format_zero_padding#2 + (byte) printf_number_buffer::format_upper_case#0 ← (byte) printf_ulong::format_upper_case#2 + (byte) printf_number_buffer::format_radix#0 ← (byte) printf_ulong::format_radix#3 call printf_number_buffer to:printf_ulong::@5 printf_ulong::@5: scope:[printf_ulong] from printf_ulong::@4 @@ -1266,8 +1347,8 @@ printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buff (byte) printf_number_buffer::format_justify_left#9 ← phi( printf_number_buffer::@6/(byte) printf_number_buffer::format_justify_left#13 ) (byte) printf_number_buffer::format_min_length#5 ← phi( printf_number_buffer::@6/(byte) printf_number_buffer::format_min_length#7 ) (byte) printf_number_buffer::buffer_sign#3 ← phi( printf_number_buffer::@6/(byte) printf_number_buffer::buffer_sign#6 ) - (word) strlen::return#4 ← phi( printf_number_buffer::@6/(word) strlen::return#2 ) - (word~) printf_number_buffer::$19 ← (word) strlen::return#4 + (word) strlen::return#5 ← phi( printf_number_buffer::@6/(word) strlen::return#2 ) + (word~) printf_number_buffer::$19 ← (word) strlen::return#5 (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 (bool~) printf_number_buffer::$29 ← (number) 0 != (byte) printf_number_buffer::buffer_sign#3 (bool~) printf_number_buffer::$20 ← ! (bool~) printf_number_buffer::$29 @@ -1435,6 +1516,176 @@ printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@19 printf_number_buffer::@21 return to:@return + +(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) +printf_string: scope:[printf_string] from main::@10 + (byte*) printf_string::str#3 ← phi( main::@10/(byte*) printf_string::str#0 ) + (byte) printf_string::format_justify_left#3 ← phi( main::@10/(byte) printf_string::format_justify_left#0 ) + (byte) printf_string::format_min_length#1 ← phi( main::@10/(byte) printf_string::format_min_length#0 ) + (signed byte) printf_string::padding#0 ← (signed byte) 0 + (bool~) printf_string::$14 ← (number) 0 != (byte) printf_string::format_min_length#1 + (bool~) printf_string::$0 ← ! (bool~) printf_string::$14 + if((bool~) printf_string::$0) goto printf_string::@1 + to:printf_string::@3 +printf_string::@1: scope:[printf_string] from printf_string printf_string::@4 printf_string::@7 + (byte*) printf_string::str#4 ← phi( printf_string/(byte*) printf_string::str#3 printf_string::@4/(byte*) printf_string::str#6 printf_string::@7/(byte*) printf_string::str#7 ) + (signed byte) printf_string::padding#3 ← phi( printf_string/(signed byte) printf_string::padding#0 printf_string::@4/(signed byte) printf_string::padding#2 printf_string::@7/(signed byte) printf_string::padding#1 ) + (byte) printf_string::format_justify_left#1 ← phi( printf_string/(byte) printf_string::format_justify_left#3 printf_string::@4/(byte) printf_string::format_justify_left#4 printf_string::@7/(byte) printf_string::format_justify_left#5 ) + (bool~) printf_string::$15 ← (number) 0 != (byte) printf_string::format_justify_left#1 + (bool~) printf_string::$1 ← ! (bool~) printf_string::$15 + (bool~) printf_string::$2 ← (bool~) printf_string::$1 && (signed byte) printf_string::padding#3 + (bool~) printf_string::$3 ← ! (bool~) printf_string::$2 + if((bool~) printf_string::$3) goto printf_string::@2 + to:printf_string::@5 +printf_string::@3: scope:[printf_string] from printf_string + (byte) printf_string::format_justify_left#7 ← phi( printf_string/(byte) printf_string::format_justify_left#3 ) + (byte) printf_string::format_min_length#3 ← phi( printf_string/(byte) printf_string::format_min_length#1 ) + (byte*) printf_string::str#1 ← phi( printf_string/(byte*) printf_string::str#3 ) + (byte*) strlen::str#2 ← (byte*) printf_string::str#1 + call strlen + (word) strlen::return#3 ← (word) strlen::return#1 + to:printf_string::@7 +printf_string::@7: scope:[printf_string] from printf_string::@3 + (byte*) printf_string::str#7 ← phi( printf_string::@3/(byte*) printf_string::str#1 ) + (byte) printf_string::format_justify_left#5 ← phi( printf_string::@3/(byte) printf_string::format_justify_left#7 ) + (byte) printf_string::format_min_length#2 ← phi( printf_string::@3/(byte) printf_string::format_min_length#3 ) + (word) strlen::return#6 ← phi( printf_string::@3/(word) strlen::return#3 ) + (word~) printf_string::$9 ← (word) strlen::return#6 + (signed byte) printf_string::len#0 ← (signed byte)(word~) printf_string::$9 + (signed byte~) printf_string::$13 ← (signed byte)(byte) printf_string::format_min_length#2 + (signed byte~) printf_string::$10 ← (signed byte~) printf_string::$13 - (signed byte) printf_string::len#0 + (signed byte) printf_string::padding#1 ← (signed byte~) printf_string::$10 + (bool~) printf_string::$11 ← (signed byte) printf_string::padding#1 < (number) 0 + (bool~) printf_string::$12 ← ! (bool~) printf_string::$11 + if((bool~) printf_string::$12) goto printf_string::@1 + to:printf_string::@4 +printf_string::@4: scope:[printf_string] from printf_string::@7 + (byte*) printf_string::str#6 ← phi( printf_string::@7/(byte*) printf_string::str#7 ) + (byte) printf_string::format_justify_left#4 ← phi( printf_string::@7/(byte) printf_string::format_justify_left#5 ) + (signed byte) printf_string::padding#2 ← (number) 0 + to:printf_string::@1 +printf_string::@2: scope:[printf_string] from printf_string::@1 printf_string::@9 + (signed byte) printf_string::padding#7 ← phi( printf_string::@1/(signed byte) printf_string::padding#3 printf_string::@9/(signed byte) printf_string::padding#8 ) + (byte) printf_string::format_justify_left#6 ← phi( printf_string::@1/(byte) printf_string::format_justify_left#1 printf_string::@9/(byte) printf_string::format_justify_left#8 ) + (byte*) printf_string::str#2 ← phi( printf_string::@1/(byte*) printf_string::str#4 printf_string::@9/(byte*) printf_string::str#5 ) + (byte*) printf_str::str#2 ← (byte*) printf_string::str#2 + call printf_str + to:printf_string::@8 +printf_string::@8: scope:[printf_string] from printf_string::@2 + (signed byte) printf_string::padding#4 ← phi( printf_string::@2/(signed byte) printf_string::padding#7 ) + (byte) printf_string::format_justify_left#2 ← phi( printf_string::@2/(byte) printf_string::format_justify_left#6 ) + (bool~) printf_string::$6 ← (byte) printf_string::format_justify_left#2 && (signed byte) printf_string::padding#4 + (bool~) printf_string::$7 ← ! (bool~) printf_string::$6 + if((bool~) printf_string::$7) goto printf_string::@return + to:printf_string::@6 +printf_string::@5: scope:[printf_string] from printf_string::@1 + (byte) printf_string::format_justify_left#9 ← phi( printf_string::@1/(byte) printf_string::format_justify_left#1 ) + (byte*) printf_string::str#8 ← phi( printf_string::@1/(byte*) printf_string::str#4 ) + (signed byte) printf_string::padding#5 ← phi( printf_string::@1/(signed byte) printf_string::padding#3 ) + (byte) printf_padding::pad#3 ← (byte) ' ' + (byte) printf_padding::length#3 ← (byte)(signed byte) printf_string::padding#5 + call printf_padding + to:printf_string::@9 +printf_string::@9: scope:[printf_string] from printf_string::@5 + (signed byte) printf_string::padding#8 ← phi( printf_string::@5/(signed byte) printf_string::padding#5 ) + (byte) printf_string::format_justify_left#8 ← phi( printf_string::@5/(byte) printf_string::format_justify_left#9 ) + (byte*) printf_string::str#5 ← phi( printf_string::@5/(byte*) printf_string::str#8 ) + to:printf_string::@2 +printf_string::@6: scope:[printf_string] from printf_string::@8 + (signed byte) printf_string::padding#6 ← phi( printf_string::@8/(signed byte) printf_string::padding#4 ) + (byte) printf_padding::pad#4 ← (byte) ' ' + (byte) printf_padding::length#4 ← (byte)(signed byte) printf_string::padding#6 + call printf_padding + to:printf_string::@10 +printf_string::@10: scope:[printf_string] from printf_string::@6 + to:printf_string::@return +printf_string::@return: scope:[printf_string] from printf_string::@10 printf_string::@8 + return + to:@return + +(void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) +tod_init: scope:[tod_init] from main::@4 + (byte) tod_init::tod_TENTHS#1 ← phi( main::@4/(byte) tod_init::tod_TENTHS#0 ) + (byte) tod_init::tod_SEC#1 ← phi( main::@4/(byte) tod_init::tod_SEC#0 ) + (byte) tod_init::tod_MIN#1 ← phi( main::@4/(byte) tod_init::tod_MIN#0 ) + (byte) tod_init::tod_HOURS#1 ← phi( main::@4/(byte) tod_init::tod_HOURS#0 ) + *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (number) $80 + *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (number) $7f + *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#1 + *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#1 + *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#1 + *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#1 + to:tod_init::@return +tod_init::@return: scope:[tod_init] from tod_init + return + to:@return + +(struct TIME_OF_DAY()) tod_read() +tod_read: scope:[tod_read] from main::@5 + (byte) tod_read::hours#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) + (byte) tod_read::mins#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) + (byte) tod_read::secs#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) + (byte) tod_read::tenths#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) + (byte) tod_read::tod_TENTHS#0 ← (byte) tod_read::tenths#0 + (byte) tod_read::tod_SEC#0 ← (byte) tod_read::secs#0 + (byte) tod_read::tod_MIN#0 ← (byte) tod_read::mins#0 + (byte) tod_read::tod_HOURS#0 ← (byte) tod_read::hours#0 + (byte) tod_read::return_TENTHS#0 ← (byte) tod_read::tod_TENTHS#0 + (byte) tod_read::return_SEC#0 ← (byte) tod_read::tod_SEC#0 + (byte) tod_read::return_MIN#0 ← (byte) tod_read::tod_MIN#0 + (byte) tod_read::return_HOURS#0 ← (byte) tod_read::tod_HOURS#0 + (struct TIME_OF_DAY) tod_read::return#0 ← struct-unwound {(byte) tod_read::return_TENTHS#0, (byte) tod_read::return_SEC#0, (byte) tod_read::return_MIN#0, (byte) tod_read::return_HOURS#0} + to:tod_read::@return +tod_read::@return: scope:[tod_read] from tod_read + (byte) tod_read::return_HOURS#3 ← phi( tod_read/(byte) tod_read::return_HOURS#0 ) + (byte) tod_read::return_MIN#3 ← phi( tod_read/(byte) tod_read::return_MIN#0 ) + (byte) tod_read::return_SEC#3 ← phi( tod_read/(byte) tod_read::return_SEC#0 ) + (byte) tod_read::return_TENTHS#3 ← phi( tod_read/(byte) tod_read::return_TENTHS#0 ) + (byte) tod_read::return_TENTHS#1 ← (byte) tod_read::return_TENTHS#3 + (byte) tod_read::return_SEC#1 ← (byte) tod_read::return_SEC#3 + (byte) tod_read::return_MIN#1 ← (byte) tod_read::return_MIN#3 + (byte) tod_read::return_HOURS#1 ← (byte) tod_read::return_HOURS#3 + (struct TIME_OF_DAY) tod_read::return#1 ← struct-unwound {(byte) tod_read::return_TENTHS#1, (byte) tod_read::return_SEC#1, (byte) tod_read::return_MIN#1, (byte) tod_read::return_HOURS#1} + return + to:@return + +(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) +tod_str: scope:[tod_str] from main::@6 + (byte) tod_str::tod_TENTHS#1 ← phi( main::@6/(byte) tod_str::tod_TENTHS#0 ) + (byte) tod_str::tod_SEC#1 ← phi( main::@6/(byte) tod_str::tod_SEC#0 ) + (byte) tod_str::tod_MIN#1 ← phi( main::@6/(byte) tod_str::tod_MIN#0 ) + (byte) tod_str::tod_HOURS#1 ← phi( main::@6/(byte) tod_str::tod_HOURS#0 ) + (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#1 >> (number) 4 + (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 + *((const byte*) tod_buffer + (number) 0) ← (byte~) tod_str::$1 + (number~) tod_str::$2 ← (byte) tod_str::tod_HOURS#1 & (number) $f + (number~) tod_str::$3 ← (byte) '0' + (number~) tod_str::$2 + *((const byte*) tod_buffer + (number) 1) ← (number~) tod_str::$3 + (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#1 >> (number) 4 + (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 + *((const byte*) tod_buffer + (number) 3) ← (byte~) tod_str::$5 + (number~) tod_str::$6 ← (byte) tod_str::tod_MIN#1 & (number) $f + (number~) tod_str::$7 ← (byte) '0' + (number~) tod_str::$6 + *((const byte*) tod_buffer + (number) 4) ← (number~) tod_str::$7 + (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#1 >> (number) 4 + (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 + *((const byte*) tod_buffer + (number) 6) ← (byte~) tod_str::$9 + (number~) tod_str::$10 ← (byte) tod_str::tod_SEC#1 & (number) $f + (number~) tod_str::$11 ← (byte) '0' + (number~) tod_str::$10 + *((const byte*) tod_buffer + (number) 7) ← (number~) tod_str::$11 + (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#1 >> (number) 4 + (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 + *((const byte*) tod_buffer + (number) 9) ← (byte~) tod_str::$13 + (number~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#1 & (number) $f + (number~) tod_str::$15 ← (byte) '0' + (number~) tod_str::$14 + *((const byte*) tod_buffer + (number) $a) ← (number~) tod_str::$15 + (byte*) tod_str::return#0 ← (const byte*) tod_buffer + to:tod_str::@return +tod_str::@return: scope:[tod_str] from tod_str + (byte*) tod_str::return#3 ← phi( tod_str/(byte*) tod_str::return#0 ) + (byte*) tod_str::return#1 ← (byte*) tod_str::return#3 + return + to:@return @2: scope:[] from @1 (dword) count ← (dword) 0 to:@3 @@ -1444,11 +1695,11 @@ main: scope:[main] from @3 call printf_cls to:main::@1 main::@1: scope:[main] from main - (byte*) printf_str::str#2 ← (const byte*) main::str + (byte*) printf_str::str#3 ← (const byte*) main::str call printf_str to:main::@2 main::@2: scope:[main] from main::@1 - (byte*) printf_str::str#3 ← (const byte*) main::str1 + (byte*) printf_str::str#4 ← (const byte*) main::str1 call printf_str to:main::@3 main::@3: scope:[main] from main::@2 @@ -1462,11 +1713,71 @@ main::@3: scope:[main] from main::@2 call printf_uint to:main::@4 main::@4: scope:[main] from main::@3 + (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS) + (byte) tod_init::tod_SEC#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC) + (byte) tod_init::tod_MIN#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN) + (byte) tod_init::tod_HOURS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS) + call tod_init + to:main::@5 +main::@5: scope:[main] from main::@4 stackpush(byte) ← (number) 1 callexecute queen sideeffect stackpullbytes((number) 1) + call tod_read + (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#1 + (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#1 + (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#1 + (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#1 + to:main::@6 +main::@6: scope:[main] from main::@5 + (byte) tod_read::return_HOURS#4 ← phi( main::@5/(byte) tod_read::return_HOURS#2 ) + (byte) tod_read::return_MIN#4 ← phi( main::@5/(byte) tod_read::return_MIN#2 ) + (byte) tod_read::return_SEC#4 ← phi( main::@5/(byte) tod_read::return_SEC#2 ) + (byte) tod_read::return_TENTHS#4 ← phi( main::@5/(byte) tod_read::return_TENTHS#2 ) + (byte~) main::$5_TENTHS ← (byte) tod_read::return_TENTHS#4 + (byte~) main::$5_SEC ← (byte) tod_read::return_SEC#4 + (byte~) main::$5_MIN ← (byte) tod_read::return_MIN#4 + (byte~) main::$5_HOURS ← (byte) tod_read::return_HOURS#4 + (byte) tod_str::tod_TENTHS#0 ← (byte~) main::$5_TENTHS + (byte) tod_str::tod_SEC#0 ← (byte~) main::$5_SEC + (byte) tod_str::tod_MIN#0 ← (byte~) main::$5_MIN + (byte) tod_str::tod_HOURS#0 ← (byte~) main::$5_HOURS + call tod_str + (byte*) tod_str::return#2 ← (byte*) tod_str::return#1 + to:main::@7 +main::@7: scope:[main] from main::@6 + (byte*) tod_str::return#4 ← phi( main::@6/(byte*) tod_str::return#2 ) + (byte*~) main::$6 ← (byte*) tod_str::return#4 + (byte*) printf_str::str#5 ← (const byte*) main::str2 + call printf_str + to:main::@8 +main::@8: scope:[main] from main::@7 + (dword) printf_ulong::uvalue#0 ← (dword) count + (byte) printf_ulong::format_min_length#0 ← (byte) 0 + (byte) printf_ulong::format_justify_left#0 ← (byte) 0 + (byte) printf_ulong::format_sign_always#0 ← (byte) 0 + (byte) printf_ulong::format_zero_padding#0 ← (byte) 0 + (byte) printf_ulong::format_upper_case#0 ← (byte) 0 + (byte) printf_ulong::format_radix#0 ← (const byte) DECIMAL + call printf_ulong + to:main::@9 +main::@9: scope:[main] from main::@8 + (byte*) printf_str::str#6 ← (const byte*) main::str3 + call printf_str + to:main::@10 +main::@10: scope:[main] from main::@9 + (byte*) printf_string::str#0 ← (byte*~) main::$6 + (byte) printf_string::format_min_length#0 ← (byte) 0 + (byte) printf_string::format_justify_left#0 ← (byte) 0 + call printf_string + to:main::@11 +main::@11: scope:[main] from main::@10 + (byte*) printf_str::str#7 ← (const byte*) main::str4 + call printf_str + to:main::@12 +main::@12: scope:[main] from main::@11 to:main::@return -main::@return: scope:[main] from main::@4 +main::@return: scope:[main] from main::@12 return to:@return @@ -1502,6 +1813,7 @@ queen::@5: scope:[queen] from queen::@7 if((bool~) queen::$3) goto queen::@4 to:queen::@6 queen::@4: scope:[queen] from queen::@5 + (dword) count ← ++ (dword) count call print to:queen::@8 queen::@8: scope:[queen] from queen::@4 @@ -1617,22 +1929,21 @@ diff::@return: scope:[diff] from diff::@1 diff::@2 (void()) print() print: scope:[print] from queen::@4 - (dword) count ← ++ (dword) count - (byte*) printf_str::str#4 ← (const byte*) print::str + (byte*) printf_str::str#8 ← (const byte*) print::str call printf_str to:print::@12 print::@12: scope:[print] from print - (dword) printf_ulong::uvalue#0 ← (dword) count - (byte) printf_ulong::format_min_length#0 ← (byte) 0 - (byte) printf_ulong::format_justify_left#0 ← (byte) 0 - (byte) printf_ulong::format_sign_always#0 ← (byte) 0 - (byte) printf_ulong::format_zero_padding#0 ← (byte) 0 - (byte) printf_ulong::format_upper_case#0 ← (byte) 0 - (byte) printf_ulong::format_radix#0 ← (const byte) DECIMAL + (dword) printf_ulong::uvalue#1 ← (dword) count + (byte) printf_ulong::format_min_length#1 ← (byte) 0 + (byte) printf_ulong::format_justify_left#1 ← (byte) 0 + (byte) printf_ulong::format_sign_always#1 ← (byte) 0 + (byte) printf_ulong::format_zero_padding#1 ← (byte) 0 + (byte) printf_ulong::format_upper_case#1 ← (byte) 0 + (byte) printf_ulong::format_radix#1 ← (const byte) DECIMAL call printf_ulong to:print::@13 print::@13: scope:[print] from print::@12 - (byte*) printf_str::str#5 ← (const byte*) print::str1 + (byte*) printf_str::str#9 ← (const byte*) print::str1 call printf_str to:print::@14 print::@14: scope:[print] from print::@13 @@ -1668,7 +1979,7 @@ print::@4: scope:[print] from print::@3 print::@8 to:print::@return print::@5: scope:[print] from print::@4 (byte) print::i1#6 ← phi( print::@4/(byte) print::i1#2 ) - (byte*) printf_str::str#6 ← (const byte*) print::str2 + (byte*) printf_str::str#10 ← (const byte*) print::str2 call printf_str to:print::@16 print::@16: scope:[print] from print::@5 @@ -1705,7 +2016,7 @@ print::@8: scope:[print] from print::@6 print::@9: scope:[print] from print::@7 (byte) print::i1#12 ← phi( print::@7/(byte) print::i1#4 ) (byte) print::j#7 ← phi( print::@7/(byte) print::j#3 ) - (byte*) printf_str::str#7 ← (const byte*) print::str3 + (byte*) printf_str::str#11 ← (const byte*) print::str3 call printf_str to:print::@18 print::@18: scope:[print] from print::@9 @@ -1715,7 +2026,7 @@ print::@18: scope:[print] from print::@9 print::@11: scope:[print] from print::@7 (byte) print::i1#13 ← phi( print::@7/(byte) print::i1#4 ) (byte) print::j#8 ← phi( print::@7/(byte) print::j#3 ) - (byte*) printf_str::str#8 ← (const byte*) print::str4 + (byte*) printf_str::str#12 ← (const byte*) print::str4 call printf_str to:print::@19 print::@19: scope:[print] from print::@11 @@ -1745,12 +2056,37 @@ SYMBOL TABLE SSA (label) @begin (label) @end (const byte) BINARY = (number) 2 +(const nomodify struct MOS6526_CIA*) CIA1 = (struct MOS6526_CIA*)(number) $dc00 (const byte) DECIMAL = (number) $a (const byte*) DIGITS[] = (byte*) "0123456789abcdef"z (const byte) HEXADECIMAL = (number) $10 +(byte) MOS6526_CIA::INTERRUPT +(byte) MOS6526_CIA::PORT_A +(byte) MOS6526_CIA::PORT_A_DDR +(byte) MOS6526_CIA::PORT_B +(byte) MOS6526_CIA::PORT_B_DDR +(byte) MOS6526_CIA::SERIAL_DATA +(word) MOS6526_CIA::TIMER_A +(byte) MOS6526_CIA::TIMER_A_CONTROL +(word) MOS6526_CIA::TIMER_B +(byte) MOS6526_CIA::TIMER_B_CONTROL +(byte) MOS6526_CIA::TOD_10THS +(byte) MOS6526_CIA::TOD_HOURS +(byte) MOS6526_CIA::TOD_MIN +(byte) MOS6526_CIA::TOD_SEC (const byte) OCTAL = (number) 8 +(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = (byte) $e +(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = (byte) $f +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = (byte) 8 +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = (byte) $b +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = (byte) $a +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = (byte) 9 (const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = (byte) 1 (const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = (byte) 0 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS = (byte) 3 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN = (byte) 2 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC = (byte) 1 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS = (byte) 0 (const byte) RADIX::BINARY = (number) 2 (const byte) RADIX::DECIMAL = (number) $a (const byte) RADIX::HEXADECIMAL = (number) $10 @@ -1770,6 +2106,11 @@ SYMBOL TABLE SSA (const byte) SIZEOF_DWORD = (byte) 4 (const byte) SIZEOF_WORD = (byte) 2 (const word) STACK_BASE = (word) $103 +(byte) TIME_OF_DAY::HOURS +(byte) TIME_OF_DAY::MIN +(byte) TIME_OF_DAY::SEC +(byte) TIME_OF_DAY::TENTHS +(struct TIME_OF_DAY) TOD_ZERO loadstore = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } (const byte*) board[(number) $14] = { fill( $14, 0) } (dword) count loadstore (byte()) diff((byte) diff::a , (byte) diff::b) @@ -1854,14 +2195,32 @@ SYMBOL TABLE SSA (byte) legal::row#6 (byte) legal::row#7 (void()) main() +(byte~) main::$5_HOURS +(byte~) main::$5_MIN +(byte~) main::$5_SEC +(byte~) main::$5_TENTHS +(byte*~) main::$6 (label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 (label) main::@2 (label) main::@3 (label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 (label) main::@return (const byte*) main::str[(byte) $29] = (byte*) " - n queens problem using backtracking -" (const byte*) main::str1[(byte) $13] = (byte*) " -Number of queens:" +number of queens:" +(const byte*) main::str2[(byte) $d] = (byte*) " +solutions: " +(const byte*) main::str3[(byte) 8] = (byte*) " time: " +(const byte*) main::str4[(byte) 3] = (byte*) ". +" (void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) (byte*~) memcpy::$0 (bool~) memcpy::$1 @@ -2263,6 +2622,8 @@ Number of queens:" (byte) printf_padding::length#4 (byte) printf_padding::length#5 (byte) printf_padding::length#6 +(byte) printf_padding::length#7 +(byte) printf_padding::length#8 (byte) printf_padding::pad (byte) printf_padding::pad#0 (byte) printf_padding::pad#1 @@ -2271,6 +2632,8 @@ Number of queens:" (byte) printf_padding::pad#4 (byte) printf_padding::pad#5 (byte) printf_padding::pad#6 +(byte) printf_padding::pad#7 +(byte) printf_padding::pad#8 (void()) printf_scroll() (bool~) printf_scroll::$0 (bool~) printf_scroll::$1 @@ -2305,7 +2668,11 @@ Number of queens:" (byte*) printf_str::str#14 (byte*) printf_str::str#15 (byte*) printf_str::str#16 +(byte*) printf_str::str#17 +(byte*) printf_str::str#18 +(byte*) printf_str::str#19 (byte*) printf_str::str#2 +(byte*) printf_str::str#20 (byte*) printf_str::str#3 (byte*) printf_str::str#4 (byte*) printf_str::str#5 @@ -2313,6 +2680,70 @@ Number of queens:" (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 +(signed byte~) printf_string::$10 +(bool~) printf_string::$11 +(bool~) printf_string::$12 +(signed byte~) printf_string::$13 +(bool~) printf_string::$14 +(bool~) printf_string::$15 +(bool~) printf_string::$2 +(bool~) printf_string::$3 +(bool~) printf_string::$6 +(bool~) printf_string::$7 +(word~) printf_string::$9 +(label) printf_string::@1 +(label) printf_string::@10 +(label) printf_string::@2 +(label) printf_string::@3 +(label) printf_string::@4 +(label) printf_string::@5 +(label) printf_string::@6 +(label) printf_string::@7 +(label) printf_string::@8 +(label) printf_string::@9 +(label) printf_string::@return +(struct printf_format_string) printf_string::format +(byte) printf_string::format_justify_left +(byte) printf_string::format_justify_left#0 +(byte) printf_string::format_justify_left#1 +(byte) printf_string::format_justify_left#2 +(byte) printf_string::format_justify_left#3 +(byte) printf_string::format_justify_left#4 +(byte) printf_string::format_justify_left#5 +(byte) printf_string::format_justify_left#6 +(byte) printf_string::format_justify_left#7 +(byte) printf_string::format_justify_left#8 +(byte) printf_string::format_justify_left#9 +(byte) printf_string::format_min_length +(byte) printf_string::format_min_length#0 +(byte) printf_string::format_min_length#1 +(byte) printf_string::format_min_length#2 +(byte) printf_string::format_min_length#3 +(signed byte) printf_string::len +(signed byte) printf_string::len#0 +(signed byte) printf_string::padding +(signed byte) printf_string::padding#0 +(signed byte) printf_string::padding#1 +(signed byte) printf_string::padding#2 +(signed byte) printf_string::padding#3 +(signed byte) printf_string::padding#4 +(signed byte) printf_string::padding#5 +(signed byte) printf_string::padding#6 +(signed byte) printf_string::padding#7 +(signed byte) printf_string::padding#8 +(byte*) printf_string::str +(byte*) printf_string::str#0 +(byte*) printf_string::str#1 +(byte*) printf_string::str#2 +(byte*) printf_string::str#3 +(byte*) printf_string::str#4 +(byte*) printf_string::str#5 +(byte*) printf_string::str#6 +(byte*) printf_string::str#7 +(byte*) printf_string::str#8 (void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) (number~) printf_uchar::$0 (byte~) printf_uchar::$1 @@ -2459,6 +2890,7 @@ Number of queens:" (byte) printf_ulong::format_justify_left#3 (byte) printf_ulong::format_justify_left#4 (byte) printf_ulong::format_justify_left#5 +(byte) printf_ulong::format_justify_left#6 (byte) printf_ulong::format_min_length (byte) printf_ulong::format_min_length#0 (byte) printf_ulong::format_min_length#1 @@ -2466,6 +2898,7 @@ Number of queens:" (byte) printf_ulong::format_min_length#3 (byte) printf_ulong::format_min_length#4 (byte) printf_ulong::format_min_length#5 +(byte) printf_ulong::format_min_length#6 (byte) printf_ulong::format_radix (byte) printf_ulong::format_radix#0 (byte) printf_ulong::format_radix#1 @@ -2473,6 +2906,7 @@ Number of queens:" (byte) printf_ulong::format_radix#3 (byte) printf_ulong::format_radix#4 (byte) printf_ulong::format_radix#5 +(byte) printf_ulong::format_radix#6 (byte) printf_ulong::format_sign_always (byte) printf_ulong::format_sign_always#0 (byte) printf_ulong::format_sign_always#1 @@ -2480,6 +2914,7 @@ Number of queens:" (byte) printf_ulong::format_sign_always#3 (byte) printf_ulong::format_sign_always#4 (byte) printf_ulong::format_sign_always#5 +(byte) printf_ulong::format_sign_always#6 (byte) printf_ulong::format_upper_case (byte) printf_ulong::format_upper_case#0 (byte) printf_ulong::format_upper_case#1 @@ -2487,6 +2922,7 @@ Number of queens:" (byte) printf_ulong::format_upper_case#3 (byte) printf_ulong::format_upper_case#4 (byte) printf_ulong::format_upper_case#5 +(byte) printf_ulong::format_upper_case#6 (byte) printf_ulong::format_zero_padding (byte) printf_ulong::format_zero_padding#0 (byte) printf_ulong::format_zero_padding#1 @@ -2494,12 +2930,14 @@ Number of queens:" (byte) printf_ulong::format_zero_padding#3 (byte) printf_ulong::format_zero_padding#4 (byte) printf_ulong::format_zero_padding#5 +(byte) printf_ulong::format_zero_padding#6 (dword) printf_ulong::uvalue (dword) printf_ulong::uvalue#0 (dword) printf_ulong::uvalue#1 (dword) printf_ulong::uvalue#2 (dword) printf_ulong::uvalue#3 (dword) printf_ulong::uvalue#4 +(dword) printf_ulong::uvalue#5 __stackcall (void()) queen((byte) queen::row) (bool~) queen::$0 (byte~) queen::$1 @@ -2539,12 +2977,15 @@ __stackcall (void()) queen((byte) queen::row) (word) strlen::return#2 (word) strlen::return#3 (word) strlen::return#4 +(word) strlen::return#5 +(word) strlen::return#6 (byte*) strlen::str (byte*) strlen::str#0 (byte*) strlen::str#1 (byte*) strlen::str#2 (byte*) strlen::str#3 (byte*) strlen::str#4 +(byte*) strlen::str#5 (byte*()) strupr((byte*) strupr::str) (byte~) strupr::$0 (bool~) strupr::$1 @@ -2571,6 +3012,104 @@ __stackcall (void()) queen((byte) queen::row) (byte*) strupr::str#3 (byte*) strupr::str#4 (byte*) strupr::str#5 +(const byte*) tod_buffer[] = (byte*) "00:00:00:00" +(void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) +(label) tod_init::@return +(struct TIME_OF_DAY) tod_init::tod +(byte) tod_init::tod_HOURS +(byte) tod_init::tod_HOURS#0 +(byte) tod_init::tod_HOURS#1 +(byte) tod_init::tod_MIN +(byte) tod_init::tod_MIN#0 +(byte) tod_init::tod_MIN#1 +(byte) tod_init::tod_SEC +(byte) tod_init::tod_SEC#0 +(byte) tod_init::tod_SEC#1 +(byte) tod_init::tod_TENTHS +(byte) tod_init::tod_TENTHS#0 +(byte) tod_init::tod_TENTHS#1 +(struct TIME_OF_DAY()) tod_read() +(label) tod_read::@return +(byte) tod_read::hours +(byte) tod_read::hours#0 +(byte) tod_read::mins +(byte) tod_read::mins#0 +(struct TIME_OF_DAY) tod_read::return +(struct TIME_OF_DAY) tod_read::return#0 +(struct TIME_OF_DAY) tod_read::return#1 +(byte) tod_read::return_HOURS +(byte) tod_read::return_HOURS#0 +(byte) tod_read::return_HOURS#1 +(byte) tod_read::return_HOURS#2 +(byte) tod_read::return_HOURS#3 +(byte) tod_read::return_HOURS#4 +(byte) tod_read::return_MIN +(byte) tod_read::return_MIN#0 +(byte) tod_read::return_MIN#1 +(byte) tod_read::return_MIN#2 +(byte) tod_read::return_MIN#3 +(byte) tod_read::return_MIN#4 +(byte) tod_read::return_SEC +(byte) tod_read::return_SEC#0 +(byte) tod_read::return_SEC#1 +(byte) tod_read::return_SEC#2 +(byte) tod_read::return_SEC#3 +(byte) tod_read::return_SEC#4 +(byte) tod_read::return_TENTHS +(byte) tod_read::return_TENTHS#0 +(byte) tod_read::return_TENTHS#1 +(byte) tod_read::return_TENTHS#2 +(byte) tod_read::return_TENTHS#3 +(byte) tod_read::return_TENTHS#4 +(byte) tod_read::secs +(byte) tod_read::secs#0 +(byte) tod_read::tenths +(byte) tod_read::tenths#0 +(byte) tod_read::tod_HOURS +(byte) tod_read::tod_HOURS#0 +(byte) tod_read::tod_MIN +(byte) tod_read::tod_MIN#0 +(byte) tod_read::tod_SEC +(byte) tod_read::tod_SEC#0 +(byte) tod_read::tod_TENTHS +(byte) tod_read::tod_TENTHS#0 +(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) +(byte~) tod_str::$0 +(byte~) tod_str::$1 +(number~) tod_str::$10 +(number~) tod_str::$11 +(byte~) tod_str::$12 +(byte~) tod_str::$13 +(number~) tod_str::$14 +(number~) tod_str::$15 +(number~) tod_str::$2 +(number~) tod_str::$3 +(byte~) tod_str::$4 +(byte~) tod_str::$5 +(number~) tod_str::$6 +(number~) tod_str::$7 +(byte~) tod_str::$8 +(byte~) tod_str::$9 +(label) tod_str::@return +(byte*) tod_str::return +(byte*) tod_str::return#0 +(byte*) tod_str::return#1 +(byte*) tod_str::return#2 +(byte*) tod_str::return#3 +(byte*) tod_str::return#4 +(struct TIME_OF_DAY) tod_str::tod +(byte) tod_str::tod_HOURS +(byte) tod_str::tod_HOURS#0 +(byte) tod_str::tod_HOURS#1 +(byte) tod_str::tod_MIN +(byte) tod_str::tod_MIN#0 +(byte) tod_str::tod_MIN#1 +(byte) tod_str::tod_SEC +(byte) tod_str::tod_SEC#0 +(byte) tod_str::tod_SEC#1 +(byte) tod_str::tod_TENTHS +(byte) tod_str::tod_TENTHS#0 +(byte) tod_str::tod_TENTHS#1 (byte()) toupper((byte) toupper::ch) (bool~) toupper::$0 (bool~) toupper::$1 @@ -3049,7 +3588,7 @@ __stackcall (void()) queen((byte) queen::row) Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#2 > (number) 0 Adding number conversion cast (unumber) 0 in (bool~) strupr::$1 ← (number) 0 != *((byte*) strupr::src#2) -Adding number conversion cast (unumber) 0 in (bool~) strlen::$0 ← (number) 0 != *((byte*) strlen::str#2) +Adding number conversion cast (unumber) 0 in (bool~) strlen::$0 ← (number) 0 != *((byte*) strlen::str#3) Adding number conversion cast (unumber) 3 in (byte) uctoa::max_digits#1 ← (number) 3 Adding number conversion cast (unumber) 2 in (byte) uctoa::max_digits#2 ← (number) 2 Adding number conversion cast (unumber) 3 in (byte) uctoa::max_digits#3 ← (number) 3 @@ -3089,22 +3628,22 @@ Adding number conversion cast (unumber) $28*$19-$28 in (word) memcpy::num#0 ← Adding number conversion cast (unumber) $28 in (word) memset::num#1 ← (number) $28 Adding number conversion cast (unumber) $28 in (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (number) $28 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_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#1 -Adding number conversion cast (unumber) printf_ulong::$2 in (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#3 printf_ulong::@2/(byte) printf_ulong::format_upper_case#4 ) - (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#3 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#4 ) - (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#4 printf_ulong::@2/(byte) printf_ulong::format_sign_always#5 ) - (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#3 printf_ulong::@2/(byte) printf_ulong::format_justify_left#4 ) - (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#3 printf_ulong::@2/(byte) printf_ulong::format_min_length#4 ) - (byte) printf_ulong::format_radix#1 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#3 printf_ulong::@2/(byte) printf_ulong::format_radix#4 ) - (dword) printf_ulong::uvalue#1 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#2 printf_ulong::@2/(dword) printf_ulong::uvalue#3 ) +Adding number conversion cast (unumber) 0 in (bool~) printf_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#2 +Adding number conversion cast (unumber) printf_ulong::$2 in (byte) printf_ulong::format_upper_case#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#4 printf_ulong::@2/(byte) printf_ulong::format_upper_case#5 ) + (byte) printf_ulong::format_zero_padding#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#4 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#5 ) + (byte) printf_ulong::format_sign_always#4 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#5 printf_ulong::@2/(byte) printf_ulong::format_sign_always#6 ) + (byte) printf_ulong::format_justify_left#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#4 printf_ulong::@2/(byte) printf_ulong::format_justify_left#5 ) + (byte) printf_ulong::format_min_length#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#4 printf_ulong::@2/(byte) printf_ulong::format_min_length#5 ) + (byte) printf_ulong::format_radix#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#4 printf_ulong::@2/(byte) printf_ulong::format_radix#5 ) + (dword) printf_ulong::uvalue#2 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#3 printf_ulong::@2/(dword) printf_ulong::uvalue#4 ) (number~) printf_ulong::$2 ← phi( printf_ulong::@1/(byte~) printf_ulong::$1 printf_ulong::@2/(number~) printf_ulong::$0 ) -Adding number conversion cast (unumber) printf_ulong::$0 in (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#3 printf_ulong::@2/(byte) printf_ulong::format_upper_case#4 ) - (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#3 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#4 ) - (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#4 printf_ulong::@2/(byte) printf_ulong::format_sign_always#5 ) - (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#3 printf_ulong::@2/(byte) printf_ulong::format_justify_left#4 ) - (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#3 printf_ulong::@2/(byte) printf_ulong::format_min_length#4 ) - (byte) printf_ulong::format_radix#1 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#3 printf_ulong::@2/(byte) printf_ulong::format_radix#4 ) - (dword) printf_ulong::uvalue#1 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#2 printf_ulong::@2/(dword) printf_ulong::uvalue#3 ) +Adding number conversion cast (unumber) printf_ulong::$0 in (byte) printf_ulong::format_upper_case#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#4 printf_ulong::@2/(byte) printf_ulong::format_upper_case#5 ) + (byte) printf_ulong::format_zero_padding#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#4 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#5 ) + (byte) printf_ulong::format_sign_always#4 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#5 printf_ulong::@2/(byte) printf_ulong::format_sign_always#6 ) + (byte) printf_ulong::format_justify_left#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#4 printf_ulong::@2/(byte) printf_ulong::format_justify_left#5 ) + (byte) printf_ulong::format_min_length#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#4 printf_ulong::@2/(byte) printf_ulong::format_min_length#5 ) + (byte) printf_ulong::format_radix#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#4 printf_ulong::@2/(byte) printf_ulong::format_radix#5 ) + (dword) printf_ulong::uvalue#2 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#3 printf_ulong::@2/(dword) printf_ulong::uvalue#4 ) (unumber~) printf_ulong::$2 ← phi( printf_ulong::@1/(byte~) printf_ulong::$1 printf_ulong::@2/(number~) printf_ulong::$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_upper_case#2 ← phi( printf_uint::@1/(byte) printf_uint::format_upper_case#3 printf_uint::@2/(byte) printf_uint::format_upper_case#4 ) @@ -3149,6 +3688,36 @@ Adding number conversion cast (snumber) 0 in (signed byte) printf_number_buffer: Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$30 ← (number) 0 != (byte) printf_number_buffer::buffer_sign#4 Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$31 ← (number) 0 != (byte) printf_number_buffer::format_upper_case#3 Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$32 ← (number) 0 != (byte) printf_number_buffer::format_zero_padding#5 +Adding number conversion cast (unumber) 0 in (bool~) printf_string::$14 ← (number) 0 != (byte) printf_string::format_min_length#1 +Adding number conversion cast (unumber) 0 in (bool~) printf_string::$15 ← (number) 0 != (byte) printf_string::format_justify_left#1 +Adding number conversion cast (snumber) 0 in (bool~) printf_string::$11 ← (signed byte) printf_string::padding#1 < (number) 0 +Adding number conversion cast (snumber) 0 in (signed byte) printf_string::padding#2 ← (number) 0 +Adding number conversion cast (unumber) $80 in *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (number) $80 +Adding number conversion cast (unumber) $7f in *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (number) $7f +Adding number conversion cast (unumber) 4 in (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#1 >> (number) 4 +Adding number conversion cast (unumber) 0 in *((const byte*) tod_buffer + (number) 0) ← (byte~) tod_str::$1 +Adding number conversion cast (unumber) $f in (number~) tod_str::$2 ← (byte) tod_str::tod_HOURS#1 & (number) $f +Adding number conversion cast (unumber) tod_str::$2 in (number~) tod_str::$2 ← (byte) tod_str::tod_HOURS#1 & (unumber)(number) $f +Adding number conversion cast (unumber) tod_str::$3 in (number~) tod_str::$3 ← (byte) '0' + (unumber~) tod_str::$2 +Adding number conversion cast (unumber) 1 in *((const byte*) tod_buffer + (number) 1) ← (unumber~) tod_str::$3 +Adding number conversion cast (unumber) 4 in (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#1 >> (number) 4 +Adding number conversion cast (unumber) 3 in *((const byte*) tod_buffer + (number) 3) ← (byte~) tod_str::$5 +Adding number conversion cast (unumber) $f in (number~) tod_str::$6 ← (byte) tod_str::tod_MIN#1 & (number) $f +Adding number conversion cast (unumber) tod_str::$6 in (number~) tod_str::$6 ← (byte) tod_str::tod_MIN#1 & (unumber)(number) $f +Adding number conversion cast (unumber) tod_str::$7 in (number~) tod_str::$7 ← (byte) '0' + (unumber~) tod_str::$6 +Adding number conversion cast (unumber) 4 in *((const byte*) tod_buffer + (number) 4) ← (unumber~) tod_str::$7 +Adding number conversion cast (unumber) 4 in (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#1 >> (number) 4 +Adding number conversion cast (unumber) 6 in *((const byte*) tod_buffer + (number) 6) ← (byte~) tod_str::$9 +Adding number conversion cast (unumber) $f in (number~) tod_str::$10 ← (byte) tod_str::tod_SEC#1 & (number) $f +Adding number conversion cast (unumber) tod_str::$10 in (number~) tod_str::$10 ← (byte) tod_str::tod_SEC#1 & (unumber)(number) $f +Adding number conversion cast (unumber) tod_str::$11 in (number~) tod_str::$11 ← (byte) '0' + (unumber~) tod_str::$10 +Adding number conversion cast (unumber) 7 in *((const byte*) tod_buffer + (number) 7) ← (unumber~) tod_str::$11 +Adding number conversion cast (unumber) 4 in (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#1 >> (number) 4 +Adding number conversion cast (unumber) 9 in *((const byte*) tod_buffer + (number) 9) ← (byte~) tod_str::$13 +Adding number conversion cast (unumber) $f in (number~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#1 & (number) $f +Adding number conversion cast (unumber) tod_str::$14 in (number~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#1 & (unumber)(number) $f +Adding number conversion cast (unumber) tod_str::$15 in (number~) tod_str::$15 ← (byte) '0' + (unumber~) tod_str::$14 +Adding number conversion cast (unumber) $a in *((const byte*) tod_buffer + (number) $a) ← (unumber~) tod_str::$15 Adding number conversion cast (unumber) 8 in (word) printf_uint::uvalue#0 ← (number) 8 Adding number conversion cast (unumber) 1 in stackpush(byte) ← (number) 1 Adding number conversion cast (unumber) 8 in (bool~) queen::$0 ← (byte) queen::column <= (number) 8 @@ -3205,12 +3774,14 @@ Inlining cast (unumber~) printf_ulong::$0 ← (unumber)(number) 0 Inlining cast (unumber~) printf_uint::$0 ← (unumber)(number) 0 Inlining cast (unumber~) printf_uchar::$0 ← (unumber)(number) 0 Inlining cast (signed byte) printf_number_buffer::padding#2 ← (snumber)(number) 0 +Inlining cast (signed byte) printf_string::padding#2 ← (snumber)(number) 0 Inlining cast (word) printf_uint::uvalue#0 ← (unumber)(number) 8 Inlining cast stackpush(byte) ← (unumber)(number) 1 Inlining cast (byte) legal::return#1 ← (unumber)(number) 1 Inlining cast (byte) legal::return#2 ← (unumber)(number) 0 Inlining cast (byte) legal::return#3 ← (unumber)(number) 0 Successful SSA optimization Pass2InlineCast +Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -3268,6 +3839,28 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 +Simplifying constant integer cast 0 +Simplifying constant integer cast 0 +Simplifying constant integer cast 0 +Simplifying constant integer cast 0 +Simplifying constant integer cast $80 +Simplifying constant integer cast $7f +Simplifying constant integer cast 4 +Simplifying constant integer cast 0 +Simplifying constant integer cast $f +Simplifying constant integer cast 1 +Simplifying constant integer cast 4 +Simplifying constant integer cast 3 +Simplifying constant integer cast $f +Simplifying constant integer cast 4 +Simplifying constant integer cast 4 +Simplifying constant integer cast 6 +Simplifying constant integer cast $f +Simplifying constant integer cast 7 +Simplifying constant integer cast 4 +Simplifying constant integer cast 9 +Simplifying constant integer cast $f +Simplifying constant integer cast $a Simplifying constant integer cast 8 Simplifying constant integer cast 1 Simplifying constant integer cast 8 @@ -3334,6 +3927,28 @@ Finalized signed number type (signed byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 +Finalized signed number type (signed byte) 0 +Finalized signed number type (signed byte) 0 +Finalized unsigned number type (byte) $80 +Finalized unsigned number type (byte) $7f +Finalized unsigned number type (byte) 4 +Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) $f +Finalized unsigned number type (byte) 1 +Finalized unsigned number type (byte) 4 +Finalized unsigned number type (byte) 3 +Finalized unsigned number type (byte) $f +Finalized unsigned number type (byte) 4 +Finalized unsigned number type (byte) 4 +Finalized unsigned number type (byte) 6 +Finalized unsigned number type (byte) $f +Finalized unsigned number type (byte) 7 +Finalized unsigned number type (byte) 4 +Finalized unsigned number type (byte) 9 +Finalized unsigned number type (byte) $f +Finalized unsigned number type (byte) $a Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 8 @@ -3357,6 +3972,14 @@ Inferred type updated to byte in (unumber~) printf_uint::$0 ← (byte) 0 Inferred type updated to byte for (unumber~) printf_uint::$2 Inferred type updated to byte in (unumber~) printf_uchar::$0 ← (byte) 0 Inferred type updated to byte for (unumber~) printf_uchar::$2 +Inferred type updated to byte in (unumber~) tod_str::$2 ← (byte) tod_str::tod_HOURS#1 & (byte) $f +Inferred type updated to byte in (unumber~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 +Inferred type updated to byte in (unumber~) tod_str::$6 ← (byte) tod_str::tod_MIN#1 & (byte) $f +Inferred type updated to byte in (unumber~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 +Inferred type updated to byte in (unumber~) tod_str::$10 ← (byte) tod_str::tod_SEC#1 & (byte) $f +Inferred type updated to byte in (unumber~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 +Inferred type updated to byte in (unumber~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#1 & (byte) $f +Inferred type updated to byte in (unumber~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 Inferred type updated to byte in (unumber~) queen::$4 ← (byte) queen::r + (byte) 1 Inferred type updated to byte in (unumber~) legal::$0 ← (byte) legal::row#1 - (byte) 1 Inversing boolean not [33] (bool~) memset::$1 ← (word) memset::num#2 <= (byte) 0 from [32] (bool~) memset::$0 ← (word) memset::num#2 > (byte) 0 @@ -3371,8 +3994,11 @@ Inversing boolean not [503] (bool~) printf_number_buffer::$23 ← (signed byte) Inversing boolean not [511] (bool~) printf_number_buffer::$7 ← (byte) 0 == (byte) printf_number_buffer::buffer_sign#4 from [510] (bool~) printf_number_buffer::$30 ← (byte) 0 != (byte) printf_number_buffer::buffer_sign#4 Inversing boolean not [528] (bool~) printf_number_buffer::$12 ← (byte) 0 == (byte) printf_number_buffer::format_upper_case#3 from [527] (bool~) printf_number_buffer::$31 ← (byte) 0 != (byte) printf_number_buffer::format_upper_case#3 Inversing boolean not [540] (bool~) printf_number_buffer::$14 ← (byte) 0 == (byte) printf_number_buffer::format_zero_padding#5 from [539] (bool~) printf_number_buffer::$32 ← (byte) 0 != (byte) printf_number_buffer::format_zero_padding#5 -Inversing boolean not [585] (bool~) queen::$2 ← (byte) 0 == (byte~) queen::$1 from [584] (bool~) queen::$7 ← (byte) 0 != (byte~) queen::$1 -Inversing boolean not [624] (bool~) legal::$6 ← (byte~) legal::$3 != (byte~) legal::$4 from [623] (bool~) legal::$5 ← (byte~) legal::$3 == (byte~) legal::$4 +Inversing boolean not [558] (bool~) printf_string::$0 ← (byte) 0 == (byte) printf_string::format_min_length#1 from [557] (bool~) printf_string::$14 ← (byte) 0 != (byte) printf_string::format_min_length#1 +Inversing boolean not [562] (bool~) printf_string::$1 ← (byte) 0 == (byte) printf_string::format_justify_left#1 from [561] (bool~) printf_string::$15 ← (byte) 0 != (byte) printf_string::format_justify_left#1 +Inversing boolean not [577] (bool~) printf_string::$12 ← (signed byte) printf_string::padding#1 >= (signed byte) 0 from [576] (bool~) printf_string::$11 ← (signed byte) printf_string::padding#1 < (signed byte) 0 +Inversing boolean not [726] (bool~) queen::$2 ← (byte) 0 == (byte~) queen::$1 from [725] (bool~) queen::$7 ← (byte) 0 != (byte~) queen::$1 +Inversing boolean not [766] (bool~) legal::$6 ← (byte~) legal::$3 != (byte~) legal::$4 from [765] (bool~) legal::$5 ← (byte~) legal::$3 == (byte~) legal::$4 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias candidate removed (volatile)queen::row#0 = queen::r @@ -3397,8 +4023,8 @@ Alias strupr::src#0 = strupr::str#1 Alias strupr::src#2 = strupr::src#3 strupr::src#4 Alias strupr::str#2 = strupr::str#5 strupr::str#3 strupr::str#4 strupr::return#0 strupr::return#3 strupr::return#1 Alias toupper::return#3 = toupper::return#5 -Alias strlen::len#2 = strlen::len#4 strlen::len#3 strlen::return#0 strlen::return#3 strlen::return#1 -Alias strlen::str#2 = strlen::str#3 +Alias strlen::len#2 = strlen::len#4 strlen::len#3 strlen::return#0 strlen::return#4 strlen::return#1 +Alias strlen::str#3 = strlen::str#4 Alias uctoa::value#10 = uctoa::value#8 uctoa::value#12 uctoa::value#13 uctoa::value#9 uctoa::value#14 uctoa::value#15 uctoa::value#11 Alias uctoa::buffer#10 = uctoa::buffer#17 uctoa::buffer#21 uctoa::buffer#16 uctoa::buffer#18 uctoa::buffer#13 uctoa::buffer#19 uctoa::buffer#20 uctoa::buffer#6 Alias uctoa::radix#1 = uctoa::radix#2 uctoa::radix#3 uctoa::radix#4 @@ -3447,25 +4073,25 @@ Alias ultoa_append::digit#2 = ultoa_append::digit#4 ultoa_append::digit#3 Alias ultoa_append::value#2 = ultoa_append::value#3 ultoa_append::value#4 ultoa_append::return#1 ultoa_append::return#4 ultoa_append::return#2 Alias ultoa_append::sub#1 = ultoa_append::sub#2 Alias ultoa_append::buffer#1 = ultoa_append::buffer#4 ultoa_append::buffer#2 -Alias printf_padding::pad#3 = printf_padding::pad#4 printf_padding::pad#6 +Alias printf_padding::pad#5 = printf_padding::pad#6 printf_padding::pad#8 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#10 = printf_str::str#9 +Alias printf_padding::length#5 = printf_padding::length#8 printf_padding::length#7 +Alias printf_str::str#13 = printf_str::str#14 Alias printf_str::ch#0 = printf_str::ch#1 printf_str::ch#2 -Alias printf_str::str#0 = printf_str::str#16 printf_str::str#14 printf_str::str#12 printf_str::str#15 printf_str::str#13 -Alias printf_ulong::uvalue#2 = printf_ulong::uvalue#4 printf_ulong::uvalue#3 -Alias printf_ulong::format_radix#3 = printf_ulong::format_radix#5 printf_ulong::format_radix#4 -Alias printf_ulong::format_min_length#3 = printf_ulong::format_min_length#5 printf_ulong::format_min_length#4 -Alias printf_ulong::format_justify_left#3 = printf_ulong::format_justify_left#5 printf_ulong::format_justify_left#4 -Alias printf_ulong::format_sign_always#1 = printf_ulong::format_sign_always#4 printf_ulong::format_sign_always#5 -Alias printf_ulong::format_zero_padding#3 = printf_ulong::format_zero_padding#5 printf_ulong::format_zero_padding#4 -Alias printf_ulong::format_upper_case#3 = printf_ulong::format_upper_case#5 printf_ulong::format_upper_case#4 -Alias printf_ulong::format_min_length#1 = printf_ulong::format_min_length#2 -Alias printf_ulong::format_justify_left#1 = printf_ulong::format_justify_left#2 -Alias printf_ulong::format_sign_always#2 = printf_ulong::format_sign_always#3 -Alias printf_ulong::format_zero_padding#1 = printf_ulong::format_zero_padding#2 -Alias printf_ulong::format_upper_case#1 = printf_ulong::format_upper_case#2 -Alias printf_ulong::format_radix#1 = printf_ulong::format_radix#2 +Alias printf_str::str#0 = printf_str::str#20 printf_str::str#18 printf_str::str#16 printf_str::str#19 printf_str::str#17 +Alias printf_ulong::uvalue#3 = printf_ulong::uvalue#5 printf_ulong::uvalue#4 +Alias printf_ulong::format_radix#4 = printf_ulong::format_radix#6 printf_ulong::format_radix#5 +Alias printf_ulong::format_min_length#4 = printf_ulong::format_min_length#6 printf_ulong::format_min_length#5 +Alias printf_ulong::format_justify_left#4 = printf_ulong::format_justify_left#6 printf_ulong::format_justify_left#5 +Alias printf_ulong::format_sign_always#2 = printf_ulong::format_sign_always#5 printf_ulong::format_sign_always#6 +Alias printf_ulong::format_zero_padding#4 = printf_ulong::format_zero_padding#6 printf_ulong::format_zero_padding#5 +Alias printf_ulong::format_upper_case#4 = printf_ulong::format_upper_case#6 printf_ulong::format_upper_case#5 +Alias printf_ulong::format_min_length#2 = printf_ulong::format_min_length#3 +Alias printf_ulong::format_justify_left#2 = printf_ulong::format_justify_left#3 +Alias printf_ulong::format_sign_always#3 = printf_ulong::format_sign_always#4 +Alias printf_ulong::format_zero_padding#2 = printf_ulong::format_zero_padding#3 +Alias printf_ulong::format_upper_case#2 = printf_ulong::format_upper_case#3 +Alias printf_ulong::format_radix#2 = printf_ulong::format_radix#3 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 @@ -3498,7 +4124,7 @@ Alias printf_number_buffer::format_min_length#3 = printf_number_buffer::format_m Alias printf_number_buffer::format_justify_left#10 = printf_number_buffer::format_justify_left#13 printf_number_buffer::format_justify_left#5 printf_number_buffer::format_justify_left#9 Alias printf_number_buffer::format_zero_padding#12 = printf_number_buffer::format_zero_padding#18 printf_number_buffer::format_zero_padding#6 printf_number_buffer::format_zero_padding#13 Alias printf_number_buffer::format_upper_case#12 = printf_number_buffer::format_upper_case#18 printf_number_buffer::format_upper_case#16 printf_number_buffer::format_upper_case#17 -Alias strlen::return#2 = strlen::return#4 +Alias strlen::return#2 = strlen::return#5 Alias printf_number_buffer::padding#1 = printf_number_buffer::$21 Alias printf_number_buffer::len#0 = printf_number_buffer::len#3 Alias printf_number_buffer::format_justify_left#6 = printf_number_buffer::format_justify_left#7 @@ -3530,6 +4156,31 @@ Alias printf_number_buffer::buffer_digits#5 = printf_number_buffer::buffer_digit Alias printf_number_buffer::format_zero_padding#16 = printf_number_buffer::format_zero_padding#21 printf_number_buffer::format_zero_padding#17 Alias printf_number_buffer::format_justify_left#11 = printf_number_buffer::format_justify_left#16 printf_number_buffer::format_justify_left#12 Alias printf_number_buffer::padding#14 = printf_number_buffer::padding#17 printf_number_buffer::padding#15 +Alias printf_string::str#1 = printf_string::str#3 printf_string::str#7 printf_string::str#6 +Alias printf_string::format_min_length#1 = printf_string::format_min_length#3 printf_string::format_min_length#2 +Alias printf_string::format_justify_left#3 = printf_string::format_justify_left#7 printf_string::format_justify_left#5 printf_string::format_justify_left#4 +Alias strlen::return#3 = strlen::return#6 +Alias printf_string::padding#1 = printf_string::$10 +Alias printf_string::format_justify_left#2 = printf_string::format_justify_left#6 +Alias printf_string::padding#4 = printf_string::padding#7 printf_string::padding#6 +Alias printf_string::padding#3 = printf_string::padding#5 printf_string::padding#8 +Alias printf_string::str#4 = printf_string::str#8 printf_string::str#5 +Alias printf_string::format_justify_left#1 = printf_string::format_justify_left#9 printf_string::format_justify_left#8 +Alias tod_read::return_TENTHS#0 = tod_read::tod_TENTHS#0 tod_read::tenths#0 tod_read::return_TENTHS#3 tod_read::return_TENTHS#1 +Alias tod_read::return_SEC#0 = tod_read::tod_SEC#0 tod_read::secs#0 tod_read::return_SEC#3 tod_read::return_SEC#1 +Alias tod_read::return_MIN#0 = tod_read::tod_MIN#0 tod_read::mins#0 tod_read::return_MIN#3 tod_read::return_MIN#1 +Alias tod_read::return_HOURS#0 = tod_read::tod_HOURS#0 tod_read::hours#0 tod_read::return_HOURS#3 tod_read::return_HOURS#1 +Alias tod_str::return#0 = tod_str::return#3 tod_str::return#1 +Alias tod_read::return_TENTHS#2 = tod_read::return_TENTHS#4 +Alias tod_read::return_SEC#2 = tod_read::return_SEC#4 +Alias tod_read::return_MIN#2 = tod_read::return_MIN#4 +Alias tod_read::return_HOURS#2 = tod_read::return_HOURS#4 +Alias tod_str::tod_TENTHS#0 = main::$5_TENTHS +Alias tod_str::tod_SEC#0 = main::$5_SEC +Alias tod_str::tod_MIN#0 = main::$5_MIN +Alias tod_str::tod_HOURS#0 = main::$5_HOURS +Alias tod_str::return#2 = tod_str::return#4 +Alias printf_string::str#0 = main::$6 Alias legal::return#0 = legal::return#5 Alias legal::i#2 = legal::i#3 legal::i#4 legal::i#5 legal::i#7 legal::i#6 Alias legal::column#1 = legal::column#3 legal::column#2 legal::column#7 legal::column#6 legal::column#5 @@ -3564,13 +4215,13 @@ Alias ultoa::buffer#10 = ultoa::buffer#15 Alias ultoa::digit#2 = ultoa::digit#4 Alias ultoa::max_digits#10 = ultoa::max_digits#6 Alias ultoa::digit_values#10 = ultoa::digit_values#7 -Alias printf_ulong::uvalue#1 = printf_ulong::uvalue#2 -Alias printf_ulong::format_radix#1 = printf_ulong::format_radix#3 -Alias printf_ulong::format_min_length#1 = printf_ulong::format_min_length#3 -Alias printf_ulong::format_justify_left#1 = printf_ulong::format_justify_left#3 -Alias printf_ulong::format_sign_always#1 = printf_ulong::format_sign_always#2 -Alias printf_ulong::format_zero_padding#1 = printf_ulong::format_zero_padding#3 -Alias printf_ulong::format_upper_case#1 = printf_ulong::format_upper_case#3 +Alias printf_ulong::uvalue#2 = printf_ulong::uvalue#3 +Alias printf_ulong::format_radix#2 = printf_ulong::format_radix#4 +Alias printf_ulong::format_min_length#2 = printf_ulong::format_min_length#4 +Alias printf_ulong::format_justify_left#2 = printf_ulong::format_justify_left#4 +Alias printf_ulong::format_sign_always#2 = printf_ulong::format_sign_always#3 +Alias printf_ulong::format_zero_padding#2 = printf_ulong::format_zero_padding#4 +Alias printf_ulong::format_upper_case#2 = printf_ulong::format_upper_case#4 Alias printf_uint::uvalue#1 = printf_uint::uvalue#2 Alias printf_uint::format_radix#1 = printf_uint::format_radix#3 Alias printf_uint::format_min_length#1 = printf_uint::format_min_length#3 @@ -3597,6 +4248,9 @@ Alias printf_number_buffer::padding#10 = printf_number_buffer::padding#12 printf Alias printf_number_buffer::format_upper_case#10 = printf_number_buffer::format_upper_case#11 printf_number_buffer::format_upper_case#4 printf_number_buffer::format_upper_case#3 Alias printf_number_buffer::buffer_digits#10 = printf_number_buffer::buffer_digits#11 printf_number_buffer::buffer_digits#14 printf_number_buffer::buffer_digits#5 printf_number_buffer::buffer_digits#4 Alias printf_number_buffer::format_justify_left#11 = printf_number_buffer::format_justify_left#17 printf_number_buffer::format_justify_left#20 printf_number_buffer::format_justify_left#14 printf_number_buffer::format_justify_left#4 +Alias printf_string::format_justify_left#1 = printf_string::format_justify_left#3 printf_string::format_justify_left#2 +Alias printf_string::str#1 = printf_string::str#4 printf_string::str#2 +Alias printf_string::padding#3 = printf_string::padding#4 Alias print::j#2 = print::j#4 Alias print::i1#10 = print::i1#8 Successful SSA optimization Pass2AliasElimination @@ -3621,7 +4275,6 @@ Identical Phi Values (void*) memset::str#5 (void*) memset::str#3 Identical Phi Values (byte) memset::c#2 (byte) memset::c#4 Identical Phi Values (byte*) strupr::src#0 (byte*) strupr::str#0 Identical Phi Values (byte*) strupr::str#2 (byte*) strupr::src#0 -Identical Phi Values (byte*) strlen::str#4 (byte*) strlen::str#1 Identical Phi Values (byte) uctoa::radix#1 (byte) uctoa::radix#0 Identical Phi Values (byte) uctoa::value#10 (byte) uctoa::value#1 Identical Phi Values (byte*) uctoa::buffer#10 (byte*) uctoa::buffer#5 @@ -3652,15 +4305,8 @@ Identical Phi Values (dword) ultoa_append::sub#3 (dword) ultoa_append::sub#0 Identical Phi Values (byte*) ultoa_append::buffer#3 (byte*) ultoa_append::buffer#0 Identical Phi Values (dword) ultoa_append::sub#1 (dword) ultoa_append::sub#3 Identical Phi Values (byte*) ultoa_append::buffer#1 (byte*) ultoa_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_ulong::format_sign_always#1 (byte) printf_ulong::format_sign_always#0 -Identical Phi Values (dword) printf_ulong::uvalue#1 (dword) printf_ulong::uvalue#0 -Identical Phi Values (byte) printf_ulong::format_radix#1 (byte) printf_ulong::format_radix#0 -Identical Phi Values (byte) printf_ulong::format_min_length#1 (byte) printf_ulong::format_min_length#0 -Identical Phi Values (byte) printf_ulong::format_justify_left#1 (byte) printf_ulong::format_justify_left#0 -Identical Phi Values (byte) printf_ulong::format_zero_padding#1 (byte) printf_ulong::format_zero_padding#0 -Identical Phi Values (byte) printf_ulong::format_upper_case#1 (byte) printf_ulong::format_upper_case#0 +Identical Phi Values (byte) printf_padding::length#5 (byte) printf_padding::length#6 +Identical Phi Values (byte) printf_padding::pad#5 (byte) printf_padding::pad#7 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 @@ -3668,6 +4314,17 @@ Identical Phi Values (byte) printf_uint::format_min_length#1 (byte) printf_uint: Identical Phi Values (byte) printf_uint::format_justify_left#1 (byte) printf_uint::format_justify_left#0 Identical Phi Values (byte) printf_uint::format_zero_padding#1 (byte) printf_uint::format_zero_padding#0 Identical Phi Values (byte) printf_uint::format_upper_case#1 (byte) printf_uint::format_upper_case#0 +Identical Phi Values (byte) printf_string::format_min_length#1 (byte) printf_string::format_min_length#0 +Identical Phi Values (byte) printf_string::format_justify_left#1 (byte) printf_string::format_justify_left#0 +Identical Phi Values (byte*) printf_string::str#1 (byte*) printf_string::str#0 +Identical Phi Values (byte) tod_init::tod_HOURS#1 (byte) tod_init::tod_HOURS#0 +Identical Phi Values (byte) tod_init::tod_MIN#1 (byte) tod_init::tod_MIN#0 +Identical Phi Values (byte) tod_init::tod_SEC#1 (byte) tod_init::tod_SEC#0 +Identical Phi Values (byte) tod_init::tod_TENTHS#1 (byte) tod_init::tod_TENTHS#0 +Identical Phi Values (byte) tod_str::tod_HOURS#1 (byte) tod_str::tod_HOURS#0 +Identical Phi Values (byte) tod_str::tod_MIN#1 (byte) tod_str::tod_MIN#0 +Identical Phi Values (byte) tod_str::tod_SEC#1 (byte) tod_str::tod_SEC#0 +Identical Phi Values (byte) tod_str::tod_TENTHS#1 (byte) tod_str::tod_TENTHS#0 Identical Phi Values (byte) legal::row#3 (byte) legal::row#0 Identical Phi Values (byte) legal::column#4 (byte) legal::column#0 Identical Phi Values (byte) legal::row#1 (byte) legal::row#3 @@ -3680,7 +4337,7 @@ Simple Condition (bool~) memcpy::$1 [15] if((byte*) memcpy::src#2!=(byte*) memcp Simple Condition (bool~) memset::$1 [22] if((word) memset::num#2<=(byte) 0) goto memset::@1 Simple Condition (bool~) memset::$3 [29] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@4 Simple Condition (bool~) strupr::$1 [36] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -Simple Condition (bool~) strlen::$0 [48] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 +Simple Condition (bool~) strlen::$0 [48] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 Simple Condition (bool~) uctoa::$0 [56] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 Simple Condition (bool~) uctoa::$1 [60] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@2 Simple Condition (bool~) uctoa::$2 [64] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@3 @@ -3701,11 +4358,11 @@ Simple Condition (bool~) ultoa::$5 [209] if((byte) ultoa::digit#2<(byte~) ultoa: Simple Condition (bool~) ultoa_append::$0 [234] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 Simple Condition (bool~) printf_char::$1 [256] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return Simple Condition (bool~) printf_scroll::$1 [269] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -Simple Condition (bool~) printf_padding::$0 [288] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 +Simple Condition (bool~) printf_padding::$0 [288] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 Simple Condition (bool~) printf_str::$1 [299] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 Simple Condition (bool~) printf_str::$2 [301] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -Simple Condition (bool~) printf_ulong::$5 [308] if((byte) 0!=(byte) printf_ulong::format_sign_always#0) goto printf_ulong::@1 +Simple Condition (bool~) printf_ulong::$5 [308] if((byte) 0!=(byte) printf_ulong::format_sign_always#2) goto printf_ulong::@1 Simple Condition (bool~) printf_uint::$5 [329] if((byte) 0!=(byte) printf_uint::format_sign_always#0) goto printf_uint::@1 Simple Condition (bool~) printf_uchar::$5 [350] if((byte) 0!=(byte) printf_uchar::format_sign_always#2) goto printf_uchar::@1 Simple Condition (bool~) printf_number_buffer::$0 [372] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 @@ -3713,17 +4370,19 @@ Simple Condition (bool~) printf_number_buffer::$20 [386] if((byte) 0==(byte) pri Simple Condition (bool~) printf_number_buffer::$23 [391] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@1 Simple Condition (bool~) printf_number_buffer::$7 [395] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 Simple Condition (bool~) printf_number_buffer::$12 [405] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -Simple Condition (bool~) queen::$0 [445] if((byte) queen::column<=(byte) 8) goto queen::@2 -Simple Condition (bool~) queen::$2 [452] if((byte) 0==(byte~) queen::$1) goto queen::@3 -Simple Condition (bool~) queen::$3 [456] if((byte) queen::r==(byte) 8) goto queen::@4 -Simple Condition (bool~) legal::$1 [470] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 -Simple Condition (bool~) legal::$2 [472] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@4 -Simple Condition (bool~) legal::$6 [486] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@5 -Simple Condition (bool~) diff::$0 [493] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 -Simple Condition (bool~) print::$1 [514] if((byte) print::i#2<=(byte) 8) goto print::@2 -Simple Condition (bool~) print::$3 [527] if((byte) print::i1#2<=(byte) 8) goto print::@5 -Simple Condition (bool~) print::$5 [541] if((byte) print::j#2<=(byte) 8) goto print::@7 -Simple Condition (bool~) print::$6 [543] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@9 +Simple Condition (bool~) printf_string::$0 [426] if((byte) 0==(byte) printf_string::format_min_length#0) goto printf_string::@1 +Simple Condition (bool~) printf_string::$12 [440] if((signed byte) printf_string::padding#1>=(signed byte) 0) goto printf_string::@1 +Simple Condition (bool~) queen::$0 [552] if((byte) queen::column<=(byte) 8) goto queen::@2 +Simple Condition (bool~) queen::$2 [559] if((byte) 0==(byte~) queen::$1) goto queen::@3 +Simple Condition (bool~) queen::$3 [563] if((byte) queen::r==(byte) 8) goto queen::@4 +Simple Condition (bool~) legal::$1 [578] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 +Simple Condition (bool~) legal::$2 [580] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@4 +Simple Condition (bool~) legal::$6 [594] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@5 +Simple Condition (bool~) diff::$0 [601] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 +Simple Condition (bool~) print::$1 [621] if((byte) print::i#2<=(byte) 8) goto print::@2 +Simple Condition (bool~) print::$3 [634] if((byte) print::i1#2<=(byte) 8) goto print::@5 +Simple Condition (bool~) print::$5 [648] if((byte) print::j#2<=(byte) 8) goto print::@7 +Simple Condition (bool~) print::$6 [650] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@9 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting && if()-condition to two if()s [3] (bool~) toupper::$2 ← (bool~) toupper::$0 && (bool~) toupper::$1 Rewriting ! if()-condition to reversed if() [89] (bool~) uctoa::$8 ← ! (bool~) uctoa::$7 @@ -3740,15 +4399,22 @@ Rewriting && if()-condition to two if()s [399] (bool~) printf_number_buffer::$9 Rewriting ! if()-condition to reversed if() [414] (bool~) printf_number_buffer::$17 ← ! (bool~) printf_number_buffer::$16 Rewriting && if()-condition to two if()s [413] (bool~) printf_number_buffer::$16 ← (bool~) printf_number_buffer::$15 && (signed byte) printf_number_buffer::padding#10 Rewriting && if()-condition to two if()s [412] (bool~) printf_number_buffer::$15 ← (byte) printf_number_buffer::format_justify_left#10 && (bool~) printf_number_buffer::$14 +Rewriting ! if()-condition to reversed if() [430] (bool~) printf_string::$3 ← ! (bool~) printf_string::$2 +Rewriting && if()-condition to two if()s [429] (bool~) printf_string::$2 ← (bool~) printf_string::$1 && (signed byte) printf_string::padding#3 +Rewriting ! if()-condition to reversed if() [445] (bool~) printf_string::$7 ← ! (bool~) printf_string::$6 +Rewriting && if()-condition to two if()s [444] (bool~) printf_string::$6 ← (byte) printf_string::format_justify_left#0 && (signed byte) printf_string::padding#3 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 Warning! Adding boolean cast to non-boolean condition (byte) ultoa::started#2 Warning! Adding boolean cast to non-boolean condition (byte) printf_number_buffer::format_zero_padding#10 Warning! Adding boolean cast to non-boolean condition (byte) printf_number_buffer::format_justify_left#10 +Warning! Adding boolean cast to non-boolean condition (byte) printf_string::format_justify_left#0 Warning! Adding boolean cast to non-boolean condition (signed byte) printf_number_buffer::padding#10 Warning! Adding boolean cast to non-boolean condition (signed byte) printf_number_buffer::padding#10 Warning! Adding boolean cast to non-boolean condition (signed byte) printf_number_buffer::padding#10 +Warning! Adding boolean cast to non-boolean condition (signed byte) printf_string::padding#3 +Warning! Adding boolean cast to non-boolean condition (signed byte) printf_string::padding#3 Constant right-side identified [244] (word) memset::num#0 ← (unumber)(number) $28*(number) $19 Constant right-side identified [272] (word) memcpy::num#0 ← (unumber)(number) $28*(number) $19-(number) $28 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -3822,8 +4488,13 @@ Constant (const signed byte) printf_number_buffer::padding#2 = 0 Constant (const byte) printf_padding::pad#0 = ' ' Constant (const byte) printf_padding::pad#1 = '0' Constant (const byte) printf_padding::pad#2 = ' ' -Constant (const byte*) printf_str::str#2 = main::str -Constant (const byte*) printf_str::str#3 = main::str1 +Constant (const signed byte) printf_string::padding#0 = 0 +Constant (const signed byte) printf_string::padding#2 = 0 +Constant (const byte) printf_padding::pad#3 = ' ' +Constant (const byte) printf_padding::pad#4 = ' ' +Constant (const byte*) tod_str::return#0 = tod_buffer +Constant (const byte*) printf_str::str#3 = main::str +Constant (const byte*) printf_str::str#4 = main::str1 Constant (const word) printf_uint::uvalue#0 = 8 Constant (const byte) printf_uint::format_min_length#0 = 0 Constant (const byte) printf_uint::format_justify_left#0 = 0 @@ -3831,18 +4502,29 @@ Constant (const byte) printf_uint::format_sign_always#0 = 0 Constant (const byte) printf_uint::format_zero_padding#0 = 0 Constant (const byte) printf_uint::format_upper_case#0 = 0 Constant (const byte) printf_uint::format_radix#0 = DECIMAL -Constant (const byte) legal::i#0 = 1 -Constant (const byte) legal::return#1 = 1 -Constant (const byte) legal::return#2 = 0 -Constant (const byte) legal::return#3 = 0 -Constant (const byte*) printf_str::str#4 = print::str +Constant (const byte*) printf_str::str#5 = main::str2 Constant (const byte) printf_ulong::format_min_length#0 = 0 Constant (const byte) printf_ulong::format_justify_left#0 = 0 Constant (const byte) printf_ulong::format_sign_always#0 = 0 Constant (const byte) printf_ulong::format_zero_padding#0 = 0 Constant (const byte) printf_ulong::format_upper_case#0 = 0 Constant (const byte) printf_ulong::format_radix#0 = DECIMAL -Constant (const byte*) printf_str::str#5 = print::str1 +Constant (const byte*) printf_str::str#6 = main::str3 +Constant (const byte) printf_string::format_min_length#0 = 0 +Constant (const byte) printf_string::format_justify_left#0 = 0 +Constant (const byte*) printf_str::str#7 = main::str4 +Constant (const byte) legal::i#0 = 1 +Constant (const byte) legal::return#1 = 1 +Constant (const byte) legal::return#2 = 0 +Constant (const byte) legal::return#3 = 0 +Constant (const byte*) printf_str::str#8 = print::str +Constant (const byte) printf_ulong::format_min_length#1 = 0 +Constant (const byte) printf_ulong::format_justify_left#1 = 0 +Constant (const byte) printf_ulong::format_sign_always#1 = 0 +Constant (const byte) printf_ulong::format_zero_padding#1 = 0 +Constant (const byte) printf_ulong::format_upper_case#1 = 0 +Constant (const byte) printf_ulong::format_radix#1 = DECIMAL +Constant (const byte*) printf_str::str#9 = print::str1 Constant (const byte) print::i#0 = 1 Constant (const byte) printf_uchar::format_min_length#0 = 0 Constant (const byte) printf_uchar::format_justify_left#0 = 0 @@ -3851,7 +4533,7 @@ Constant (const byte) printf_uchar::format_zero_padding#0 = 0 Constant (const byte) printf_uchar::format_upper_case#0 = 0 Constant (const byte) printf_uchar::format_radix#0 = HEXADECIMAL Constant (const byte) print::i1#0 = 1 -Constant (const byte*) printf_str::str#6 = print::str2 +Constant (const byte*) printf_str::str#10 = print::str2 Constant (const byte) printf_uchar::format_min_length#1 = 0 Constant (const byte) printf_uchar::format_justify_left#1 = 0 Constant (const byte) printf_uchar::format_sign_always#1 = 0 @@ -3859,20 +4541,13 @@ Constant (const byte) printf_uchar::format_zero_padding#1 = 0 Constant (const byte) printf_uchar::format_upper_case#1 = 0 Constant (const byte) printf_uchar::format_radix#1 = HEXADECIMAL Constant (const byte) print::j#0 = 1 -Constant (const byte*) printf_str::str#7 = print::str3 -Constant (const byte*) printf_str::str#8 = print::str4 +Constant (const byte*) printf_str::str#11 = print::str3 +Constant (const byte*) printf_str::str#12 = print::str4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) memcpy::src#0 = (byte*)memcpy::source#0 Constant (const byte*) memcpy::dst#0 = (byte*)memcpy::destination#0 Constant (const byte*) memcpy::$2 = (byte*)memcpy::source#0 Constant (const void*) memcpy::return#2 = memcpy::destination#0 -Constant (const byte) ultoa::radix#0 = printf_ulong::format_radix#0 -Constant (const byte) printf_number_buffer::format_min_length#0 = printf_ulong::format_min_length#0 -Constant (const byte) printf_number_buffer::format_justify_left#0 = printf_ulong::format_justify_left#0 -Constant (const byte) printf_number_buffer::format_sign_always#0 = printf_ulong::format_sign_always#0 -Constant (const byte) printf_number_buffer::format_zero_padding#0 = printf_ulong::format_zero_padding#0 -Constant (const byte) printf_number_buffer::format_upper_case#0 = printf_ulong::format_upper_case#0 -Constant (const byte) printf_number_buffer::format_radix#0 = printf_ulong::format_radix#0 Constant (const word) utoa::value#1 = printf_uint::uvalue#0 Constant (const byte) utoa::radix#0 = printf_uint::format_radix#0 Constant (const byte) printf_number_buffer::format_min_length#1 = printf_uint::format_min_length#0 @@ -3881,35 +4556,47 @@ Constant (const byte) printf_number_buffer::format_sign_always#1 = printf_uint:: Constant (const byte) printf_number_buffer::format_zero_padding#1 = printf_uint::format_zero_padding#0 Constant (const byte) printf_number_buffer::format_upper_case#1 = printf_uint::format_upper_case#0 Constant (const byte) printf_number_buffer::format_radix#1 = printf_uint::format_radix#0 +Constant (const signed byte) printf_string::$13 = (signed byte)printf_string::format_min_length#0 +Constant (const byte*) tod_str::return#2 = tod_str::return#0 +Successful SSA optimization Pass2ConstantIdentification +Constant (const byte*) printf_string::str#0 = tod_str::return#2 +Successful SSA optimization Pass2ConstantIdentification +Constant (const byte*) strlen::str#2 = printf_string::str#0 +Constant (const byte*) printf_str::str#2 = printf_string::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [117] if((const byte) utoa::radix#0==(const byte) DECIMAL) goto utoa::@1 if() condition always false - eliminating [121] if((const byte) utoa::radix#0==(const byte) HEXADECIMAL) goto utoa::@2 if() condition always false - eliminating [125] if((const byte) utoa::radix#0==(const byte) OCTAL) goto utoa::@3 if() condition always false - eliminating [129] if((const byte) utoa::radix#0==(const byte) BINARY) goto utoa::@4 -if() condition always true - replacing block destination [180] if((const byte) ultoa::radix#0==(const byte) DECIMAL) goto ultoa::@1 -if() condition always false - eliminating [184] if((const byte) ultoa::radix#0==(const byte) HEXADECIMAL) goto ultoa::@2 -if() condition always false - eliminating [188] if((const byte) ultoa::radix#0==(const byte) OCTAL) goto ultoa::@3 -if() condition always false - eliminating [192] if((const byte) ultoa::radix#0==(const byte) BINARY) goto ultoa::@4 if() condition always true - replacing block destination [295] if(true) goto printf_str::@2 -if() condition always false - eliminating [308] if((byte) 0!=(const byte) printf_ulong::format_sign_always#0) goto printf_ulong::@1 if() condition always false - eliminating [329] if((byte) 0!=(const byte) printf_uint::format_sign_always#0) goto printf_uint::@1 +if() condition always true - replacing block destination [426] if((byte) 0==(const byte) printf_string::format_min_length#0) goto printf_string::@1 Successful SSA optimization Pass2ConstantIfs -Rewriting conditional comparison [445] if((byte) queen::column<=(byte) 8) goto queen::@2 -Rewriting conditional comparison [514] if((byte) print::i#2<=(byte) 8) goto print::@2 -Rewriting conditional comparison [527] if((byte) print::i1#2<=(byte) 8) goto print::@5 -Rewriting conditional comparison [541] if((byte) print::j#2<=(byte) 8) goto print::@7 +Rewriting conditional comparison [552] if((byte) queen::column<=(byte) 8) goto queen::@2 +Rewriting conditional comparison [621] if((byte) print::i#2<=(byte) 8) goto print::@2 +Rewriting conditional comparison [634] if((byte) print::i1#2<=(byte) 8) goto print::@5 +Rewriting conditional comparison [648] if((byte) print::j#2<=(byte) 8) goto print::@7 +Simplifying constant evaluating to zero (signed byte)(const byte) printf_string::format_min_length#0 in +Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero (byte*)&printf_buffer in [312] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte~) printf_ulong::$2 Simplifying expression containing zero (byte*)&printf_buffer in [317] (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 [333] *((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 [338] (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 [354] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte~) printf_uchar::$2 Simplifying expression containing zero (byte*)&printf_buffer in [359] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) +Simplifying expression containing zero printf_string::len#0 in [438] (signed byte) printf_string::padding#1 ← (const signed byte) printf_string::$13 - (signed byte) printf_string::len#0 +Simplifying expression containing zero tod_buffer in [472] *((const byte*) tod_buffer + (byte) 0) ← (byte~) tod_str::$1 +Simplifying expression containing zero (byte*)&TOD_ZERO in [510] (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS) Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused variable (void*) memset::return#2 and assignment [151] (void*) memset::return#2 ← (void*) memset::str#3 -Eliminating unused variable (void*) memset::return#3 and assignment [175] (void*) memset::return#3 ← (void*) memset::str#3 -Eliminating unused variable (byte) printf_number_buffer::format_sign_always#2 and assignment [220] (byte) printf_number_buffer::format_sign_always#2 ← (byte) printf_uchar::format_sign_always#2 -Eliminating unused variable (byte) printf_number_buffer::format_radix#2 and assignment [223] (byte) printf_number_buffer::format_radix#2 ← (byte) printf_uchar::format_radix#2 -Eliminating unused variable (byte*) strupr::return#2 and assignment [260] (byte*) strupr::return#2 ← (byte*) strupr::str#0 +Eliminating unused variable (void*) memset::return#2 and assignment [156] (void*) memset::return#2 ← (void*) memset::str#3 +Eliminating unused variable (void*) memset::return#3 and assignment [180] (void*) memset::return#3 ← (void*) memset::str#3 +Eliminating unused variable (byte) printf_number_buffer::format_sign_always#0 and assignment [212] (byte) printf_number_buffer::format_sign_always#0 ← (byte) printf_ulong::format_sign_always#2 +Eliminating unused variable (byte) printf_number_buffer::format_radix#0 and assignment [215] (byte) printf_number_buffer::format_radix#0 ← (byte) printf_ulong::format_radix#2 +Eliminating unused variable (byte) printf_number_buffer::format_sign_always#2 and assignment [234] (byte) printf_number_buffer::format_sign_always#2 ← (byte) printf_uchar::format_sign_always#2 +Eliminating unused variable (byte) printf_number_buffer::format_radix#2 and assignment [237] (byte) printf_number_buffer::format_radix#2 ← (byte) printf_uchar::format_radix#2 +Eliminating unused variable (byte*) strupr::return#2 and assignment [274] (byte*) strupr::return#2 ← (byte*) strupr::str#0 +Eliminating unused variable (struct TIME_OF_DAY) tod_read::return#0 and assignment [306] (struct TIME_OF_DAY) tod_read::return#0 ← struct-unwound {(byte) tod_read::return_TENTHS#0, (byte) tod_read::return_SEC#0, (byte) tod_read::return_MIN#0, (byte) tod_read::return_HOURS#0} +Eliminating unused variable (struct TIME_OF_DAY) tod_read::return#1 and assignment [307] (struct TIME_OF_DAY) tod_read::return#1 ← struct-unwound {(byte) tod_read::return_TENTHS#0, (byte) tod_read::return_SEC#0, (byte) tod_read::return_MIN#0, (byte) tod_read::return_HOURS#0} 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 @@ -3918,24 +4605,23 @@ Eliminating unused constant (const word*) utoa::digit_values#0 Eliminating unused constant (const byte) utoa::radix#0 Eliminating unused constant (const byte) ultoa::max_digits#0 Eliminating unused constant (const dword*) ultoa::digit_values#0 -Eliminating unused constant (const byte) ultoa::radix#0 -Eliminating unused constant (const byte) printf_number_buffer::format_sign_always#0 -Eliminating unused constant (const byte) printf_number_buffer::format_radix#0 Eliminating unused constant (const byte) printf_number_buffer::format_sign_always#1 Eliminating unused constant (const byte) printf_number_buffer::format_radix#1 +Eliminating unused constant (const byte) printf_string::format_min_length#0 +Eliminating unused constant (const signed byte) printf_string::$13 Eliminating unused constant (const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN +Eliminating unused constant (const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS Successful SSA optimization PassNEliminateUnusedVars -Eliminating unused constant (const byte) printf_ulong::format_sign_always#0 -Eliminating unused constant (const byte) printf_ulong::format_radix#0 Eliminating unused constant (const byte) printf_uint::format_sign_always#0 Eliminating unused constant (const byte) printf_uint::format_radix#0 Successful SSA optimization PassNEliminateUnusedVars Eliminating variable (byte*) utoa::buffer#0 from unused block utoa::@9 Eliminating variable (byte*) utoa::buffer#1 from unused block utoa::@9 Eliminating variable (byte*) utoa::buffer#2 from unused block utoa::@9 -Eliminating variable (byte*) ultoa::buffer#0 from unused block ultoa::@9 -Eliminating variable (byte*) ultoa::buffer#1 from unused block ultoa::@9 -Eliminating variable (byte*) ultoa::buffer#2 from unused block ultoa::@9 +Eliminating variable (word) strlen::return#3 from unused block printf_string::@3 +Eliminating variable (word~) printf_string::$9 from unused block printf_string::@7 +Eliminating variable (signed byte) printf_string::len#0 from unused block printf_string::@7 +Eliminating variable (signed byte) printf_string::padding#1 from unused block printf_string::@7 Removing unused block utoa::@6 Removing PHI-reference to removed block (utoa::@2) in block utoa::@5 Removing PHI-reference to removed block (utoa::@2) in block utoa::@5 @@ -3949,29 +4635,21 @@ Removing PHI-reference to removed block (utoa::@4) in block utoa::@5 Removing PHI-reference to removed block (utoa::@4) in block utoa::@5 Removing unused block utoa::@4 Removing unused block utoa::@9 -Removing unused block ultoa::@6 -Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 -Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 -Removing unused block ultoa::@2 -Removing unused block ultoa::@7 -Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 -Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 -Removing unused block ultoa::@3 -Removing unused block ultoa::@8 -Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 -Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 -Removing unused block ultoa::@4 -Removing unused block ultoa::@9 -Removing PHI-reference to removed block (printf_ulong::@1) in block printf_ulong::@3 -Removing unused block printf_ulong::@1 Removing PHI-reference to removed block (printf_uint::@1) in block printf_uint::@3 Removing unused block printf_uint::@1 +Removing PHI-reference to removed block (printf_string::@3) in block strlen +Removing unused block printf_string::@3 +Removing PHI-reference to removed block (printf_string::@7) in block printf_string::@1 +Removing unused block printf_string::@7 +Removing PHI-reference to removed block (printf_string::@4) in block printf_string::@1 +Removing unused block printf_string::@4 Successful SSA optimization Pass2EliminateUnusedBlocks Adding number conversion cast (unumber) 0 in (bool~) uctoa::$11 ← (number) 0 != (byte) uctoa::started#2 Adding number conversion cast (unumber) 0 in (bool~) utoa::$12 ← (number) 0 != (byte) utoa::started#2 Adding number conversion cast (unumber) 0 in (bool~) ultoa::$12 ← (number) 0 != (byte) ultoa::started#2 Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$33 ← (number) 0 != (byte) printf_number_buffer::format_zero_padding#10 Adding number conversion cast (unumber) 0 in (bool~) printf_number_buffer::$34 ← (number) 0 != (byte) printf_number_buffer::format_justify_left#10 +Adding number conversion cast (unumber) 0 in (bool~) printf_string::$16 ← (number) 0 != (const byte) printf_string::format_justify_left#0 Adding number conversion cast (unumber) 8+1 in if((byte) queen::column<(byte) 8+(number) 1) goto queen::@2 Adding number conversion cast (unumber) 1 in if((byte) queen::column<(unumber)(byte) 8+(number) 1) goto queen::@2 Adding number conversion cast (unumber) 8+1 in if((byte) print::i#2<(byte) 8+(number) 1) goto print::@2 @@ -3983,12 +4661,15 @@ Adding number conversion cast (unumber) 1 in if((byte) print::j#2<(unumber)(byte Adding number conversion cast (snumber) 0 in (bool~) printf_number_buffer::$35 ← (number) 0 != (signed byte) printf_number_buffer::padding#10 Adding number conversion cast (snumber) 0 in (bool~) printf_number_buffer::$36 ← (number) 0 != (signed byte) printf_number_buffer::padding#10 Adding number conversion cast (snumber) 0 in (bool~) printf_number_buffer::$37 ← (number) 0 != (signed byte) printf_number_buffer::padding#10 +Adding number conversion cast (snumber) 0 in (bool~) printf_string::$17 ← (number) 0 != (signed byte) printf_string::padding#3 +Adding number conversion cast (snumber) 0 in (bool~) printf_string::$18 ← (number) 0 != (signed byte) printf_string::padding#3 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 +Simplifying constant integer cast 0 Simplifying constant integer cast (byte) 8+(unumber)(number) 1 Simplifying constant integer cast 1 Simplifying constant integer cast (byte) 8+(unumber)(number) 1 @@ -4000,12 +4681,15 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 +Simplifying constant integer cast 0 +Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 +Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 1 @@ -4013,92 +4697,124 @@ Finalized unsigned number type (byte) 1 Finalized signed number type (signed byte) 0 Finalized signed number type (signed byte) 0 Finalized signed number type (signed byte) 0 +Finalized signed number type (signed byte) 0 +Finalized signed number type (signed byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias candidate removed (volatile)queen::row#0 = queen::r +Identical Phi Values (byte*) strlen::str#5 (byte*) strlen::str#1 Identical Phi Values (byte) utoa::max_digits#7 (const byte) utoa::max_digits#1 Identical Phi Values (word*) utoa::digit_values#8 (const word*) utoa::digit_values#1 -Identical Phi Values (byte) ultoa::max_digits#7 (const byte) ultoa::max_digits#1 -Identical Phi Values (dword*) ultoa::digit_values#8 (const dword*) ultoa::digit_values#1 -Identical Phi Values (byte~) printf_ulong::$2 (const byte) printf_ulong::$0 Identical Phi Values (byte~) printf_uint::$2 (const byte) printf_uint::$0 +Identical Phi Values (signed byte) printf_string::padding#3 (const signed byte) printf_string::padding#0 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition (bool~) toupper::$0 [2] if((byte) toupper::ch#0>=(byte) 'a') goto toupper::@3 -Simple Condition (bool~) uctoa::$11 [56] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@14 -Simple Condition (bool~) utoa::$12 [84] if((byte) 0!=(byte) utoa::started#2) goto utoa::@14 -Simple Condition (bool~) ultoa::$12 [113] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@14 -Simple Condition (bool~) printf_number_buffer::$1 [213] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@23 -Simple Condition (bool~) printf_number_buffer::$33 [229] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 -Simple Condition (bool~) printf_number_buffer::$34 [239] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@26 -Simple Condition (bool~) toupper::$1 [323] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -Simple Condition (bool~) uctoa::$6 [324] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@14 -Simple Condition (bool~) utoa::$6 [325] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@14 -Simple Condition (bool~) ultoa::$6 [326] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@14 -Simple Condition (bool~) printf_number_buffer::$35 [328] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -Simple Condition (bool~) printf_number_buffer::$2 [329] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@22 -Simple Condition (bool~) printf_number_buffer::$36 [331] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -Simple Condition (bool~) printf_number_buffer::$37 [333] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -Simple Condition (bool~) printf_number_buffer::$14 [334] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@25 +Simple Condition (bool~) uctoa::$11 [57] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@14 +Simple Condition (bool~) utoa::$12 [85] if((byte) 0!=(byte) utoa::started#2) goto utoa::@14 +Simple Condition (bool~) ultoa::$12 [125] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@14 +Simple Condition (bool~) printf_number_buffer::$1 [232] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@23 +Simple Condition (bool~) printf_number_buffer::$33 [248] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 +Simple Condition (bool~) printf_number_buffer::$34 [258] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@26 +Simple Condition (bool~) printf_string::$1 [266] if((byte) 0==(const byte) printf_string::format_justify_left#0) goto printf_string::@11 +Simple Condition (bool~) printf_string::$16 [269] if((byte) 0!=(const byte) printf_string::format_justify_left#0) goto printf_string::@12 +Simple Condition (bool~) toupper::$1 [411] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 +Simple Condition (bool~) uctoa::$6 [412] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@14 +Simple Condition (bool~) utoa::$6 [413] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@14 +Simple Condition (bool~) ultoa::$6 [414] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@14 +Simple Condition (bool~) printf_number_buffer::$35 [416] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 +Simple Condition (bool~) printf_number_buffer::$2 [417] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@22 +Simple Condition (bool~) printf_number_buffer::$36 [419] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 +Simple Condition (bool~) printf_number_buffer::$37 [421] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 +Simple Condition (bool~) printf_number_buffer::$14 [422] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@25 +Simple Condition (bool~) printf_string::$17 [424] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@5 +Simple Condition (bool~) printf_string::$18 [426] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@6 Successful SSA optimization Pass2ConditionalJumpSimplification Negating conditional jump and destination [2] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@2 -Negating conditional jump and destination [213] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [229] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -Negating conditional jump and destination [239] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -Negating conditional jump and destination [329] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [334] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return +Negating conditional jump and destination [232] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 +Negating conditional jump and destination [248] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 +Negating conditional jump and destination [258] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return +Negating conditional jump and destination [266] if((byte) 0!=(const byte) printf_string::format_justify_left#0) goto printf_string::@2 +Negating conditional jump and destination [269] if((byte) 0==(const byte) printf_string::format_justify_left#0) goto printf_string::@return +Negating conditional jump and destination [417] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 +Negating conditional jump and destination [422] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [6] (byte*) memcpy::src_end#0 ← (const byte*) memcpy::$2 + (const word) memcpy::num#0 -Constant right-side identified [42] (byte*) uctoa::buffer#0 ← ++ (const byte*) uctoa::buffer#5 -Constant right-side identified [78] (byte~) utoa::$4 ← (const byte) utoa::max_digits#1 - (byte) 1 -Constant right-side identified [107] (byte~) ultoa::$4 ← (const byte) ultoa::max_digits#1 - (byte) 1 +Constant right-side identified [43] (byte*) uctoa::buffer#0 ← ++ (const byte*) uctoa::buffer#5 +Constant right-side identified [79] (byte~) utoa::$4 ← (const byte) utoa::max_digits#1 - (byte) 1 +Constant right-side identified [110] (byte*) ultoa::buffer#0 ← ++ (const byte*) ultoa::buffer#5 +Constant right-side identified [270] (byte) printf_padding::length#3 ← (byte)(const signed byte) printf_string::padding#0 +Constant right-side identified [272] (byte) printf_padding::length#4 ← (byte)(const signed byte) printf_string::padding#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte*) memcpy::src_end#0 = memcpy::$2+memcpy::num#0 Constant (const byte*) uctoa::buffer#0 = ++uctoa::buffer#5 Constant (const byte) utoa::$4 = utoa::max_digits#1-1 -Constant (const byte) ultoa::$4 = ultoa::max_digits#1-1 +Constant (const byte*) ultoa::buffer#0 = ++ultoa::buffer#5 +Constant (const byte) printf_padding::length#3 = (byte)printf_string::padding#0 +Constant (const byte) printf_padding::length#4 = (byte)printf_string::padding#0 Successful SSA optimization Pass2ConstantIdentification +if() condition always false - eliminating [266] if((byte) 0!=(const byte) printf_string::format_justify_left#0) goto printf_string::@2 +if() condition always true - replacing block destination [269] if((byte) 0==(const byte) printf_string::format_justify_left#0) goto printf_string::@return +if() condition always false - eliminating [424] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@5 +if() condition always false - eliminating [426] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@6 +Successful SSA optimization Pass2ConstantIfs +Simplifying constant evaluating to zero (byte)(const signed byte) printf_string::padding#0 in +Simplifying constant evaluating to zero (byte)(const signed byte) printf_string::padding#0 in +Successful SSA optimization PassNSimplifyConstantZero +Eliminating unused constant (const byte*) strlen::str#2 Eliminating unused constant (const byte) utoa::max_digits#2 Eliminating unused constant (const word*) utoa::digit_values#2 Eliminating unused constant (const byte) utoa::max_digits#3 Eliminating unused constant (const word*) utoa::digit_values#3 Eliminating unused constant (const byte) utoa::max_digits#4 Eliminating unused constant (const word*) utoa::digit_values#4 -Eliminating unused constant (const byte) ultoa::max_digits#2 -Eliminating unused constant (const dword*) ultoa::digit_values#2 -Eliminating unused constant (const byte) ultoa::max_digits#3 -Eliminating unused constant (const dword*) ultoa::digit_values#3 -Eliminating unused constant (const byte) ultoa::max_digits#4 -Eliminating unused constant (const dword*) ultoa::digit_values#4 -Eliminating unused constant (const byte) printf_ulong::$1 Eliminating unused constant (const byte) printf_uint::$1 +Eliminating unused constant (const signed byte) printf_string::padding#0 +Eliminating unused constant (const signed byte) printf_string::padding#2 +Eliminating unused constant (const byte) printf_string::format_justify_left#0 Successful SSA optimization PassNEliminateUnusedVars Eliminating unused constant (const word*) RADIX_BINARY_VALUES Eliminating unused constant (const word*) RADIX_OCTAL_VALUES Eliminating unused constant (const word*) RADIX_HEXADECIMAL_VALUES -Eliminating unused constant (const dword*) RADIX_BINARY_VALUES_LONG -Eliminating unused constant (const dword*) RADIX_OCTAL_VALUES_LONG -Eliminating unused constant (const dword*) RADIX_HEXADECIMAL_VALUES_LONG Successful SSA optimization PassNEliminateUnusedVars +Removing PHI-reference to removed block (printf_string::@5) in block printf_padding +Removing PHI-reference to removed block (printf_string::@5) in block printf_padding +Removing unused block printf_string::@5 +Removing unused block printf_string::@9 +Removing PHI-reference to removed block (printf_string::@6) in block printf_padding +Removing PHI-reference to removed block (printf_string::@6) in block printf_padding +Removing unused block printf_string::@6 +Removing unused block printf_string::@10 +Removing unused block printf_string::@12 +Successful SSA optimization Pass2EliminateUnusedBlocks Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias candidate removed (volatile)queen::row#0 = queen::r Constant right-side identified [40] (byte*) uctoa::buffer#1 ← ++ (const byte*) uctoa::buffer#0 +Constant right-side identified [100] (byte*) ultoa::buffer#1 ← ++ (const byte*) ultoa::buffer#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte*) uctoa::buffer#1 = ++uctoa::buffer#0 +Constant (const byte*) ultoa::buffer#1 = ++ultoa::buffer#0 Successful SSA optimization Pass2ConstantIdentification +Eliminating unused constant (const byte) printf_padding::pad#3 +Eliminating unused constant (const byte) printf_padding::pad#4 +Eliminating unused constant (const byte) printf_padding::length#3 +Eliminating unused constant (const byte) printf_padding::length#4 +Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias candidate removed (volatile)queen::row#0 = queen::r Constant right-side identified [41] (byte*) uctoa::buffer#2 ← ++ (const byte*) uctoa::buffer#1 +Constant right-side identified [100] (byte*) ultoa::buffer#2 ← ++ (const byte*) ultoa::buffer#1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte*) uctoa::buffer#2 = ++uctoa::buffer#1 +Constant (const byte*) ultoa::buffer#2 = ++ultoa::buffer#1 Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias candidate removed (volatile)queen::row#0 = queen::r Inlining Noop Cast [12] (byte*~) memset::$4 ← (byte*)(void*) memset::str#3 keeping memset::str#3 Inlining Noop Cast [14] (byte*) memset::dst#0 ← (byte*)(void*) memset::str#3 keeping memset::str#3 -Inlining Noop Cast [201] (signed byte~) printf_number_buffer::$25 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 keeping printf_number_buffer::format_min_length#3 +Inlining Noop Cast [219] (signed byte~) printf_number_buffer::$25 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 keeping printf_number_buffer::format_min_length#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift [70] (byte~) utoa::$10 ← (byte) utoa::digit#2 * (const byte) SIZEOF_WORD -Rewriting multiplication to use shift [95] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 * (const byte) SIZEOF_DWORD +Rewriting multiplication to use shift [105] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 * (const byte) SIZEOF_DWORD Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings (const byte*) memcpy::src#0 Inlining constant with var siblings (const byte*) memcpy::dst#0 @@ -4131,22 +4847,49 @@ Inlining constant with var siblings (const byte) utoa::started#1 Inlining constant with var siblings (const byte*) utoa::buffer#5 Inlining constant with var siblings (const word) utoa::value#1 Inlining constant with var siblings (const byte) utoa_append::digit#0 +Inlining constant with var siblings (const byte) ultoa::max_digits#1 +Inlining constant with var siblings (const dword*) ultoa::digit_values#1 +Inlining constant with var siblings (const byte) ultoa::max_digits#2 +Inlining constant with var siblings (const dword*) ultoa::digit_values#2 +Inlining constant with var siblings (const byte) ultoa::max_digits#3 +Inlining constant with var siblings (const dword*) ultoa::digit_values#3 +Inlining constant with var siblings (const byte) ultoa::max_digits#4 +Inlining constant with var siblings (const dword*) ultoa::digit_values#4 Inlining constant with var siblings (const byte) ultoa::started#0 Inlining constant with var siblings (const byte) ultoa::digit#0 Inlining constant with var siblings (const byte) ultoa::started#1 Inlining constant with var siblings (const byte*) ultoa::buffer#5 +Inlining constant with var siblings (const byte*) ultoa::buffer#0 +Inlining constant with var siblings (const byte*) ultoa::buffer#1 +Inlining constant with var siblings (const byte*) ultoa::buffer#2 Inlining constant with var siblings (const byte) ultoa_append::digit#0 Inlining constant with var siblings (const byte) printf_padding::i#0 Inlining constant with var siblings (const byte) printf_padding::pad#0 Inlining constant with var siblings (const byte) printf_padding::pad#1 Inlining constant with var siblings (const byte) printf_padding::pad#2 -Inlining constant with var siblings (const byte*) printf_str::str#2 Inlining constant with var siblings (const byte*) printf_str::str#3 Inlining constant with var siblings (const byte*) printf_str::str#4 Inlining constant with var siblings (const byte*) printf_str::str#5 Inlining constant with var siblings (const byte*) printf_str::str#6 Inlining constant with var siblings (const byte*) printf_str::str#7 Inlining constant with var siblings (const byte*) printf_str::str#8 +Inlining constant with var siblings (const byte*) printf_str::str#9 +Inlining constant with var siblings (const byte*) printf_str::str#10 +Inlining constant with var siblings (const byte*) printf_str::str#11 +Inlining constant with var siblings (const byte*) printf_str::str#12 +Inlining constant with var siblings (const byte*) printf_str::str#2 +Inlining constant with var siblings (const byte) printf_ulong::format_min_length#0 +Inlining constant with var siblings (const byte) printf_ulong::format_justify_left#0 +Inlining constant with var siblings (const byte) printf_ulong::format_sign_always#0 +Inlining constant with var siblings (const byte) printf_ulong::format_zero_padding#0 +Inlining constant with var siblings (const byte) printf_ulong::format_upper_case#0 +Inlining constant with var siblings (const byte) printf_ulong::format_radix#0 +Inlining constant with var siblings (const byte) printf_ulong::format_min_length#1 +Inlining constant with var siblings (const byte) printf_ulong::format_justify_left#1 +Inlining constant with var siblings (const byte) printf_ulong::format_sign_always#1 +Inlining constant with var siblings (const byte) printf_ulong::format_zero_padding#1 +Inlining constant with var siblings (const byte) printf_ulong::format_upper_case#1 +Inlining constant with var siblings (const byte) printf_ulong::format_radix#1 Inlining constant with var siblings (const byte) printf_uchar::format_min_length#0 Inlining constant with var siblings (const byte) printf_uchar::format_justify_left#0 Inlining constant with var siblings (const byte) printf_uchar::format_sign_always#0 @@ -4164,10 +4907,6 @@ Inlining constant with var siblings (const byte*) printf_number_buffer::buffer_d Inlining constant with var siblings (const byte*) printf_number_buffer::buffer_digits#2 Inlining constant with var siblings (const signed byte) printf_number_buffer::padding#0 Inlining constant with var siblings (const signed byte) printf_number_buffer::padding#2 -Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_upper_case#0 Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#1 Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#1 Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#1 @@ -4179,27 +4918,26 @@ Inlining constant with var siblings (const byte) legal::return#3 Inlining constant with var siblings (const byte) print::i#0 Inlining constant with var siblings (const byte) print::i1#0 Inlining constant with var siblings (const byte) print::j#0 -Constant inlined uctoa_append::digit#0 = (byte) 0 Constant inlined utoa::digit_values#1 = (const word*) RADIX_DECIMAL_VALUES -Constant inlined printf_number_buffer::format_justify_left#0 = (const byte) printf_ulong::format_justify_left#0 Constant inlined printf_number_buffer::buffer_digits#0 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_number_buffer::buffer_digits#1 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_number_buffer::buffer_digits#2 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_number_buffer::format_justify_left#1 = (const byte) printf_uint::format_justify_left#0 -Constant inlined printf_uchar::format_justify_left#0 = (byte) 0 -Constant inlined printf_uchar::format_justify_left#1 = (byte) 0 -Constant inlined memset::num#1 = (byte) $28 -Constant inlined memset::num#0 = (word)(number) $28*(number) $19 Constant inlined strlen::len#0 = (word) 0 +Constant inlined printf_ulong::format_upper_case#0 = (byte) 0 Constant inlined memcpy::$2 = (byte*)(const void*) memcpy::source#0 Constant inlined utoa::$4 = (const byte) utoa::max_digits#1-(byte) 1 -Constant inlined printf_number_buffer::padding#2 = (signed byte) 0 +Constant inlined tod_str::return#2 = (const byte*) tod_buffer +Constant inlined printf_ulong::format_min_length#1 = (byte) 0 +Constant inlined printf_ulong::format_upper_case#1 = (byte) 0 +Constant inlined tod_str::return#0 = (const byte*) tod_buffer +Constant inlined printf_ulong::format_min_length#0 = (byte) 0 Constant inlined uctoa::digit#0 = (byte) 0 -Constant inlined print::j#0 = (byte) 1 -Constant inlined ultoa::started#1 = (byte) 1 +Constant inlined ultoa::buffer#2 = ++++++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined ultoa::buffer#0 = ++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined ultoa::buffer#1 = ++++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_uchar::format_sign_always#1 = (byte) 0 Constant inlined legal::return#2 = (byte) 0 -Constant inlined utoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined ultoa::digit#0 = (byte) 0 Constant inlined legal::return#3 = (byte) 0 Constant inlined printf_uchar::format_sign_always#0 = (byte) 0 @@ -4209,86 +4947,140 @@ Constant inlined legal::return#1 = (byte) 1 Constant inlined memset::c#1 = (byte) ' ' Constant inlined printf_uchar::format_min_length#0 = (byte) 0 Constant inlined printf_uchar::format_upper_case#1 = (byte) 0 -Constant inlined printf_number_buffer::padding#0 = (signed byte) 0 Constant inlined printf_uchar::format_upper_case#0 = (byte) 0 Constant inlined utoa_append::digit#0 = (byte) 0 -Constant inlined print::i1#0 = (byte) 1 Constant inlined uctoa::digit_values#2 = (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR -Constant inlined uctoa::started#0 = (byte) 0 Constant inlined uctoa::digit_values#1 = (const byte*) RADIX_DECIMAL_VALUES_CHAR -Constant inlined uctoa::started#1 = (byte) 1 Constant inlined uctoa::digit_values#4 = (const byte*) RADIX_BINARY_VALUES_CHAR -Constant inlined memcpy::dst#0 = (byte*)(const void*) memcpy::destination#0 +Constant inlined printf_ulong::format_radix#0 = (const byte) DECIMAL Constant inlined uctoa::digit_values#3 = (const byte*) RADIX_OCTAL_VALUES_CHAR +Constant inlined printf_ulong::format_radix#1 = (const byte) DECIMAL Constant inlined printf_uchar::$0 = (byte) 0 Constant inlined printf_uchar::$1 = (byte) '+' -Constant inlined memcpy::src#0 = (byte*)(const void*) memcpy::source#0 Constant inlined uctoa::max_digits#1 = (byte) 3 -Constant inlined ultoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined printf_number_buffer::format_upper_case#1 = (const byte) printf_uint::format_upper_case#0 -Constant inlined ultoa::started#0 = (byte) 0 Constant inlined legal::i#0 = (byte) 1 -Constant inlined printf_number_buffer::format_upper_case#0 = (const byte) printf_ulong::format_upper_case#0 Constant inlined utoa::digit#0 = (byte) 0 -Constant inlined printf_number_buffer::format_min_length#0 = (const byte) printf_ulong::format_min_length#0 +Constant inlined ultoa::max_digits#3 = (byte) $b +Constant inlined ultoa::max_digits#4 = (byte) $20 Constant inlined uctoa::max_digits#3 = (byte) 3 -Constant inlined printf_number_buffer::format_zero_padding#0 = (const byte) printf_ulong::format_zero_padding#0 Constant inlined printf_number_buffer::format_min_length#1 = (const byte) printf_uint::format_min_length#0 Constant inlined uctoa::max_digits#2 = (byte) 2 Constant inlined uctoa::max_digits#4 = (byte) 8 Constant inlined uctoa::buffer#1 = ++++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined memset::str#1 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 Constant inlined uctoa::buffer#2 = ++++++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_padding::pad#0 = (byte) ' ' -Constant inlined printf_number_buffer::format_zero_padding#1 = (const byte) printf_uint::format_zero_padding#0 -Constant inlined memset::str#0 = (void*) 1024 Constant inlined printf_padding::i#0 = (byte) 0 Constant inlined printf_padding::pad#1 = (byte) '0' Constant inlined printf_uchar::format_zero_padding#1 = (byte) 0 Constant inlined uctoa::buffer#0 = ++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_padding::pad#2 = (byte) ' ' Constant inlined printf_uchar::format_zero_padding#0 = (byte) 0 -Constant inlined printf_uint::$0 = (byte) 0 +Constant inlined printf_ulong::$1 = (byte) '+' Constant inlined printf_ulong::$0 = (byte) 0 +Constant inlined ultoa::max_digits#1 = (byte) $a Constant inlined utoa::started#1 = (byte) 1 +Constant inlined ultoa::max_digits#2 = (byte) 8 Constant inlined utoa::started#0 = (byte) 0 -Constant inlined print::i#0 = (byte) 1 -Constant inlined ultoa::$4 = (const byte) ultoa::max_digits#1-(byte) 1 Constant inlined uctoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined printf_str::str#6 = (const byte*) print::str2 -Constant inlined printf_str::str#5 = (const byte*) print::str1 -Constant inlined printf_str::str#8 = (const byte*) print::str4 -Constant inlined printf_str::str#7 = (const byte*) print::str3 -Constant inlined printf_uchar::format_radix#1 = (const byte) HEXADECIMAL -Constant inlined printf_uchar::format_radix#0 = (const byte) HEXADECIMAL +Constant inlined ultoa::digit_values#2 = (const dword*) RADIX_HEXADECIMAL_VALUES_LONG +Constant inlined ultoa::digit_values#3 = (const dword*) RADIX_OCTAL_VALUES_LONG Constant inlined ultoa_append::digit#0 = (byte) 0 Constant inlined ultoa::digit_values#1 = (const dword*) RADIX_DECIMAL_VALUES_LONG -Constant inlined printf_str::str#2 = (const byte*) main::str -Constant inlined printf_str::str#4 = (const byte*) print::str +Constant inlined ultoa::digit_values#4 = (const dword*) RADIX_BINARY_VALUES_LONG Constant inlined utoa::value#1 = (const word) printf_uint::uvalue#0 -Constant inlined printf_str::str#3 = (const byte*) main::str1 +Constant inlined uctoa_append::digit#0 = (byte) 0 +Constant inlined printf_uchar::format_justify_left#0 = (byte) 0 +Constant inlined printf_uchar::format_justify_left#1 = (byte) 0 +Constant inlined memset::num#1 = (byte) $28 +Constant inlined memset::num#0 = (word)(number) $28*(number) $19 +Constant inlined printf_str::str#12 = (const byte*) print::str4 +Constant inlined printf_ulong::format_justify_left#1 = (byte) 0 +Constant inlined printf_ulong::format_justify_left#0 = (byte) 0 +Constant inlined printf_str::str#10 = (const byte*) print::str2 +Constant inlined printf_str::str#11 = (const byte*) print::str3 +Constant inlined printf_number_buffer::padding#2 = (signed byte) 0 +Constant inlined print::j#0 = (byte) 1 +Constant inlined ultoa::started#1 = (byte) 1 +Constant inlined printf_ulong::format_zero_padding#0 = (byte) 0 +Constant inlined printf_ulong::format_zero_padding#1 = (byte) 0 +Constant inlined utoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined printf_number_buffer::padding#0 = (signed byte) 0 +Constant inlined print::i1#0 = (byte) 1 +Constant inlined uctoa::started#0 = (byte) 0 +Constant inlined uctoa::started#1 = (byte) 1 +Constant inlined memcpy::dst#0 = (byte*)(const void*) memcpy::destination#0 +Constant inlined memcpy::src#0 = (byte*)(const void*) memcpy::source#0 +Constant inlined ultoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined printf_number_buffer::format_upper_case#1 = (const byte) printf_uint::format_upper_case#0 +Constant inlined printf_string::str#0 = (const byte*) tod_buffer +Constant inlined ultoa::started#0 = (byte) 0 +Constant inlined printf_ulong::format_sign_always#1 = (byte) 0 +Constant inlined printf_ulong::format_sign_always#0 = (byte) 0 +Constant inlined memset::str#1 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 +Constant inlined printf_number_buffer::format_zero_padding#1 = (const byte) printf_uint::format_zero_padding#0 +Constant inlined memset::str#0 = (void*) 1024 +Constant inlined printf_uint::$0 = (byte) 0 +Constant inlined print::i#0 = (byte) 1 +Constant inlined printf_str::str#6 = (const byte*) main::str3 +Constant inlined printf_str::str#5 = (const byte*) main::str2 +Constant inlined printf_str::str#8 = (const byte*) print::str +Constant inlined printf_str::str#7 = (const byte*) main::str4 +Constant inlined printf_uchar::format_radix#1 = (const byte) HEXADECIMAL +Constant inlined printf_str::str#9 = (const byte*) print::str1 +Constant inlined printf_uchar::format_radix#0 = (const byte) HEXADECIMAL +Constant inlined printf_str::str#2 = (const byte*) tod_buffer +Constant inlined printf_str::str#4 = (const byte*) main::str1 +Constant inlined printf_str::str#3 = (const byte*) main::str Successful SSA optimization Pass2ConstantInlining +Consolidated array index constant in *(tod_buffer+1) +Consolidated array index constant in *(tod_buffer+3) +Consolidated array index constant in *(tod_buffer+4) +Consolidated array index constant in *(tod_buffer+6) +Consolidated array index constant in *(tod_buffer+7) +Consolidated array index constant in *(tod_buffer+9) +Consolidated array index constant in *(tod_buffer+$a) +Successful SSA optimization Pass2ConstantAdditionElimination +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 Successful SSA optimization Pass2ConstantSimplification Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 Successful SSA optimization Pass2ConstantSimplification Adding number conversion cast (unumber) 1 in [39] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 1) ← (byte) 'r' Adding number conversion cast (unumber) 2 in [40] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 2) ← (byte) 'r' Adding number conversion cast (unumber) 3 in [41] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 3) ← (byte) 0 +Adding number conversion cast (unumber) 1 in [97] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 1) ← (byte) 'r' +Adding number conversion cast (unumber) 2 in [98] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 2) ← (byte) 'r' +Adding number conversion cast (unumber) 3 in [99] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 3) ← (byte) 0 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 +Simplifying constant integer cast 1 +Simplifying constant integer cast 2 +Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 2 Finalized unsigned number type (byte) 3 +Finalized unsigned number type (byte) 1 +Finalized unsigned number type (byte) 2 +Finalized unsigned number type (byte) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias candidate removed (volatile)queen::row#0 = queen::r +Identical Phi Values (byte) printf_ulong::format_sign_always#2 (byte) 0 +Identical Phi Values (byte) printf_ulong::format_radix#2 (const byte) DECIMAL +Identical Phi Values (byte) printf_ulong::format_min_length#2 (byte) 0 +Identical Phi Values (byte) printf_ulong::format_justify_left#2 (byte) 0 +Identical Phi Values (byte) printf_ulong::format_zero_padding#2 (byte) 0 +Identical Phi Values (byte) printf_ulong::format_upper_case#2 (byte) 0 Identical Phi Values (byte) printf_uchar::format_sign_always#2 (byte) 0 Identical Phi Values (byte) printf_uchar::format_radix#2 (const byte) HEXADECIMAL Identical Phi Values (byte) printf_uchar::format_min_length#2 (byte) 0 @@ -4296,6 +5088,11 @@ Identical Phi Values (byte) printf_uchar::format_justify_left#2 (byte) 0 Identical Phi Values (byte) printf_uchar::format_zero_padding#2 (byte) 0 Identical Phi Values (byte) printf_uchar::format_upper_case#2 (byte) 0 Successful SSA optimization Pass2IdenticalPhiElimination +Constant (const byte) ultoa::radix#0 = DECIMAL +Constant (const byte) printf_number_buffer::format_min_length#0 = 0 +Constant (const byte) printf_number_buffer::format_justify_left#0 = 0 +Constant (const byte) printf_number_buffer::format_zero_padding#0 = 0 +Constant (const byte) printf_number_buffer::format_upper_case#0 = 0 Constant (const byte) uctoa::radix#0 = HEXADECIMAL Constant (const byte) printf_number_buffer::format_min_length#2 = 0 Constant (const byte) printf_number_buffer::format_justify_left#2 = 0 @@ -4306,15 +5103,21 @@ if() condition always false - eliminating [32] if((const byte) uctoa::radix#0==( if() condition always true - replacing block destination [33] if((const byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@2 if() condition always false - eliminating [34] if((const byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@3 if() condition always false - eliminating [35] if((const byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@4 -if() condition always false - eliminating [175] if((byte) 0!=(byte) 0) goto printf_uchar::@1 +if() condition always true - replacing block destination [90] if((const byte) ultoa::radix#0==(const byte) DECIMAL) goto ultoa::@1 +if() condition always false - eliminating [91] if((const byte) ultoa::radix#0==(const byte) HEXADECIMAL) goto ultoa::@2 +if() condition always false - eliminating [92] if((const byte) ultoa::radix#0==(const byte) OCTAL) goto ultoa::@3 +if() condition always false - eliminating [93] if((const byte) ultoa::radix#0==(const byte) BINARY) goto ultoa::@4 +if() condition always false - eliminating [174] if((byte) 0!=(byte) 0) goto printf_ulong::@1 +if() condition always false - eliminating [193] if((byte) 0!=(byte) 0) goto printf_uchar::@1 Successful SSA optimization Pass2ConstantIfs Eliminating unused constant (const byte) BINARY Eliminating unused constant (const byte) OCTAL -Eliminating unused constant (const byte) DECIMAL Eliminating unused constant (const byte) uctoa::radix#0 +Eliminating unused constant (const byte) ultoa::radix#0 Eliminating unused constant (const byte) SIZEOF_WORD Eliminating unused constant (const byte) SIZEOF_DWORD Successful SSA optimization PassNEliminateUnusedVars +Eliminating unused constant (const byte) DECIMAL Eliminating unused constant (const byte) HEXADECIMAL Successful SSA optimization PassNEliminateUnusedVars Removing PHI-reference to removed block (uctoa::@1) in block uctoa::@5 @@ -4329,33 +5132,65 @@ Removing PHI-reference to removed block (uctoa::@4) in block uctoa::@5 Removing PHI-reference to removed block (uctoa::@4) in block uctoa::@5 Removing unused block uctoa::@4 Removing unused block uctoa::@9 +Removing unused block ultoa::@6 +Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 +Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 +Removing unused block ultoa::@2 +Removing unused block ultoa::@7 +Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 +Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 +Removing unused block ultoa::@3 +Removing unused block ultoa::@8 +Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 +Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 +Removing unused block ultoa::@4 +Removing unused block ultoa::@9 +Removing PHI-reference to removed block (printf_ulong::@1) in block printf_ulong::@3 +Removing unused block printf_ulong::@1 Removing PHI-reference to removed block (printf_uchar::@1) in block printf_uchar::@3 Removing unused block printf_uchar::@1 Successful SSA optimization Pass2EliminateUnusedBlocks +Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#0 +Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#0 +Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#0 +Inlining constant with var siblings (const byte) printf_number_buffer::format_upper_case#0 Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#2 Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#2 Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#2 Inlining constant with var siblings (const byte) printf_number_buffer::format_upper_case#2 +Constant inlined printf_number_buffer::format_justify_left#0 = (byte) 0 Constant inlined printf_number_buffer::format_zero_padding#2 = (byte) 0 Constant inlined printf_number_buffer::format_upper_case#2 = (byte) 0 Constant inlined printf_number_buffer::format_justify_left#2 = (byte) 0 +Constant inlined printf_number_buffer::format_upper_case#0 = (byte) 0 +Constant inlined printf_number_buffer::format_min_length#0 = (byte) 0 +Constant inlined printf_number_buffer::format_zero_padding#0 = (byte) 0 Constant inlined printf_number_buffer::format_min_length#2 = (byte) 0 Successful SSA optimization Pass2ConstantInlining Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias candidate removed (volatile)queen::row#0 = queen::r Identical Phi Values (byte) uctoa::max_digits#7 (byte) 2 Identical Phi Values (byte*) uctoa::digit_values#8 (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR +Identical Phi Values (byte) ultoa::max_digits#7 (byte) $a +Identical Phi Values (dword*) ultoa::digit_values#8 (const dword*) RADIX_DECIMAL_VALUES_LONG +Identical Phi Values (byte~) printf_ulong::$2 (byte) 0 Identical Phi Values (byte~) printf_uchar::$2 (byte) 0 Successful SSA optimization Pass2IdenticalPhiElimination Constant right-side identified [35] (byte~) uctoa::$4 ← (byte) 2 - (byte) 1 +Constant right-side identified [85] (byte~) ultoa::$4 ← (byte) $a - (byte) 1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte) uctoa::$4 = 2-1 +Constant (const byte) ultoa::$4 = $a-1 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant (const byte*) RADIX_BINARY_VALUES_CHAR Eliminating unused constant (const byte*) RADIX_OCTAL_VALUES_CHAR Eliminating unused constant (const byte*) RADIX_DECIMAL_VALUES_CHAR +Eliminating unused constant (const dword*) RADIX_BINARY_VALUES_LONG +Eliminating unused constant (const dword*) RADIX_OCTAL_VALUES_LONG +Eliminating unused constant (const dword*) RADIX_HEXADECIMAL_VALUES_LONG Successful SSA optimization PassNEliminateUnusedVars Constant inlined uctoa::$4 = (byte) 2-(byte) 1 +Constant inlined ultoa::$4 = (byte) $a-(byte) 1 Successful SSA optimization Pass2ConstantInlining Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias candidate removed (volatile)queen::row#0 = queen::r @@ -4374,31 +5209,45 @@ Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 Adding NOP phi() at start of main::@3 -Adding NOP phi() at start of printf_uint -Adding NOP phi() at start of printf_uint::@2 -Adding NOP phi() at start of printf_uint::@5 +Adding NOP phi() at start of main::@7 +Adding NOP phi() at start of main::@9 +Adding NOP phi() at start of main::@10 +Adding NOP phi() at start of main::@11 +Adding NOP phi() at start of main::@12 +Adding NOP phi() at start of printf_str::@4 +Adding NOP phi() at start of printf_ln::@1 +Adding NOP phi() at start of printf_scroll::@1 +Adding NOP phi() at start of printf_scroll::@2 +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_char::@2 +Adding NOP phi() at start of printf_string +Adding NOP phi() at start of printf_string::@1 +Adding NOP phi() at start of printf_string::@11 +Adding NOP phi() at start of printf_string::@2 +Adding NOP phi() at start of printf_string::@8 +Adding NOP phi() at start of printf_ulong::@2 +Adding NOP phi() at start of printf_ulong::@5 Adding NOP phi() at start of printf_number_buffer::@14 Adding NOP phi() at start of printf_number_buffer::@17 Adding NOP phi() at start of printf_number_buffer::@20 Adding NOP phi() at start of printf_number_buffer::@21 Adding NOP phi() at start of printf_number_buffer::@18 Adding NOP phi() at start of printf_number_buffer::@16 -Adding NOP phi() at start of printf_char::@2 -Adding NOP phi() at start of printf_scroll::@1 -Adding NOP phi() at start of printf_scroll::@2 -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::@4 -Adding NOP phi() at start of printf_ln::@1 Adding NOP phi() at start of strupr::@3 Adding NOP phi() at start of strlen::@3 +Adding NOP phi() at start of ultoa +Adding NOP phi() at start of ultoa::@1 +Adding NOP phi() at start of printf_uint +Adding NOP phi() at start of printf_uint::@2 +Adding NOP phi() at start of printf_uint::@5 Adding NOP phi() at start of utoa Adding NOP phi() at start of utoa::@1 Adding NOP phi() at start of utoa::@5 Adding NOP phi() at start of printf_cls -Adding NOP phi() at start of queen::@4 Adding NOP phi() at start of queen::@8 +Adding NOP phi() at start of print Adding NOP phi() at start of print::@13 Adding NOP phi() at start of print::@14 Adding NOP phi() at start of print::@3 @@ -4413,118 +5262,126 @@ Adding NOP phi() at start of printf_uchar::@5 Adding NOP phi() at start of uctoa Adding NOP phi() at start of uctoa::@6 Adding NOP phi() at start of uctoa::@2 -Adding NOP phi() at start of printf_ulong -Adding NOP phi() at start of printf_ulong::@2 -Adding NOP phi() at start of printf_ulong::@5 -Adding NOP phi() at start of ultoa -Adding NOP phi() at start of ultoa::@1 Adding NOP phi() at start of legal Adding NOP phi() at start of legal::@3 Adding NOP phi() at start of legal::@7 Adding NOP phi() at start of legal::@4 CALL GRAPH Calls in [] to main:6 -Calls in [main] to printf_cls:10 printf_str:12 printf_str:14 printf_uint:16 queen:18 -Calls in [printf_uint] to utoa:24 printf_number_buffer:27 -Calls in [printf_number_buffer] to strlen:33 printf_char:51 strupr:57 printf_str:61 printf_padding:68 printf_padding:72 printf_padding:76 -Calls in [printf_padding] to printf_char:86 -Calls in [printf_char] to printf_scroll:96 -Calls in [printf_scroll] to memcpy:101 memset:103 -Calls in [printf_str] to printf_char:139 printf_ln:142 -Calls in [printf_ln] to printf_scroll:149 -Calls in [strupr] to toupper:158 -Calls in [utoa] to utoa_append:206 -Calls in [printf_cls] to memset:222 -Calls in [queen] to legal:234 queen:243 print:248 -Calls in [print] to printf_str:251 printf_ulong:253 printf_str:255 printf_str:264 printf_uchar:267 printf_str:275 printf_str:280 printf_uchar:284 -Calls in [printf_uchar] to uctoa:291 printf_number_buffer:294 -Calls in [uctoa] to uctoa_append:322 -Calls in [printf_ulong] to ultoa:341 printf_number_buffer:344 -Calls in [ultoa] to ultoa_append:373 -Calls in [legal] to diff:400 diff:407 +Calls in [main] to printf_cls:10 printf_str:12 printf_str:14 printf_uint:16 tod_init:21 queen:23 tod_read:25 tod_str:34 printf_str:36 printf_ulong:39 printf_str:41 printf_string:43 printf_str:45 +Calls in [printf_str] to printf_char:58 printf_ln:61 +Calls in [printf_ln] to printf_scroll:68 +Calls in [printf_scroll] to memcpy:73 memset:75 +Calls in [printf_char] to printf_scroll:108 +Calls in [printf_string] to printf_str:115 +Calls in [printf_ulong] to ultoa:122 printf_number_buffer:125 +Calls in [printf_number_buffer] to strlen:131 printf_char:149 strupr:155 printf_str:159 printf_padding:166 printf_padding:170 printf_padding:174 +Calls in [printf_padding] to printf_char:184 +Calls in [strupr] to toupper:193 +Calls in [ultoa] to ultoa_append:241 +Calls in [printf_uint] to utoa:296 printf_number_buffer:299 +Calls in [utoa] to utoa_append:328 +Calls in [printf_cls] to memset:344 +Calls in [queen] to legal:356 queen:365 print:370 +Calls in [print] to printf_str:373 printf_ulong:376 printf_str:378 printf_str:387 printf_uchar:390 printf_str:398 printf_str:403 printf_uchar:407 +Calls in [printf_uchar] to uctoa:414 printf_number_buffer:417 +Calls in [uctoa] to uctoa_append:445 +Calls in [legal] to diff:472 diff:479 -Created 60 initial phi equivalence classes -Coalesced [26] printf_number_buffer::buffer_sign#15 ← printf_number_buffer::buffer_sign#1 -Coalesced [39] printf_number_buffer::len#5 ← printf_number_buffer::len#1 -Coalesced [50] printf_char::ch#4 ← printf_char::ch#2 -Coalesced [60] printf_str::str#17 ← printf_str::str#1 -Coalesced [67] printf_padding::length#8 ← printf_padding::length#2 -Coalesced [71] printf_padding::length#7 ← printf_padding::length#1 -Coalesced [75] printf_padding::length#9 ← printf_padding::length#0 -Coalesced [78] printf_number_buffer::padding#18 ← printf_number_buffer::padding#1 -Coalesced [79] printf_number_buffer::len#4 ← printf_number_buffer::len#0 -Coalesced [85] printf_char::ch#5 ← printf_char::ch#0 -Coalesced [88] printf_padding::i#5 ← printf_padding::i#1 -Coalesced [118] memset::dst#5 ← memset::dst#1 -Coalesced [127] memcpy::src#4 ← memcpy::src#1 -Coalesced [128] memcpy::dst#4 ← memcpy::dst#1 -Coalesced [130] printf_str::str#18 ← printf_str::str#11 -Coalesced [138] printf_char::ch#6 ← printf_char::ch#1 -Coalesced [140] printf_str::str#20 ← printf_str::str#0 -Coalesced (already) [143] printf_str::str#19 ← printf_str::str#0 -Coalesced [152] strupr::src#5 ← strupr::str#0 -Coalesced [163] strupr::src#6 ← strupr::src#1 -Coalesced [166] toupper::return#7 ← toupper::ch#0 -Coalesced [170] toupper::return#6 ← toupper::return#0 -Coalesced [171] strlen::str#5 ← strlen::str#1 -Coalesced [178] strlen::str#6 ← strlen::str#0 -Coalesced [179] strlen::len#5 ← strlen::len#1 -Coalesced [194] utoa::value#17 ← utoa::value#2 -Coalesced [195] utoa::started#6 ← utoa::started#2 -Coalesced [196] utoa::buffer#23 ← utoa::buffer#11 -Coalesced [199] utoa::digit#7 ← utoa::digit#1 -Coalesced (already) [200] utoa::value#16 ← utoa::value#6 -Coalesced (already) [201] utoa::started#5 ← utoa::started#4 -Coalesced (already) [202] utoa::buffer#22 ← utoa::buffer#14 -Coalesced [210] utoa::value#18 ← utoa::value#0 -Coalesced [211] utoa::buffer#24 ← utoa::buffer#4 -Coalesced [212] utoa_append::value#6 ← utoa_append::value#0 -Coalesced [219] utoa_append::value#7 ← utoa_append::value#1 -Coalesced [220] utoa_append::digit#5 ← utoa_append::digit#1 -Coalesced [266] printf_uchar::uvalue#6 ← printf_uchar::uvalue#1 -Coalesced [272] print::i1#14 ← print::i1#1 -Coalesced [278] print::j#9 ← print::j#1 -Coalesced [283] printf_uchar::uvalue#7 ← printf_uchar::uvalue#0 -Coalesced [286] print::i#5 ← print::i#1 -Coalesced [293] printf_number_buffer::buffer_sign#14 ← printf_number_buffer::buffer_sign#2 -Coalesced [300] uctoa::value#17 ← uctoa::value#1 -Coalesced [310] uctoa::value#18 ← uctoa::value#2 -Coalesced [311] uctoa::started#6 ← uctoa::started#2 -Coalesced [312] uctoa::buffer#23 ← uctoa::buffer#11 -Coalesced [315] uctoa::digit#7 ← uctoa::digit#1 -Coalesced (already) [316] uctoa::value#16 ← uctoa::value#6 -Coalesced (already) [317] uctoa::started#5 ← uctoa::started#4 -Coalesced (already) [318] uctoa::buffer#22 ← uctoa::buffer#14 -Coalesced [326] uctoa::value#19 ← uctoa::value#0 -Coalesced [327] uctoa::buffer#24 ← uctoa::buffer#4 -Coalesced [328] uctoa_append::value#6 ← uctoa_append::value#0 -Coalesced [335] uctoa_append::value#7 ← uctoa_append::value#1 -Coalesced [336] uctoa_append::digit#5 ← uctoa_append::digit#1 -Coalesced [343] printf_number_buffer::buffer_sign#16 ← printf_number_buffer::buffer_sign#0 -Coalesced [349] ultoa::value#17 ← ultoa::value#1 -Coalesced [361] ultoa::value#18 ← ultoa::value#2 -Coalesced [362] ultoa::started#6 ← ultoa::started#2 -Coalesced [363] ultoa::buffer#23 ← ultoa::buffer#11 -Coalesced [366] ultoa::digit#7 ← ultoa::digit#1 -Coalesced (already) [367] ultoa::value#16 ← ultoa::value#6 -Coalesced (already) [368] ultoa::started#5 ← ultoa::started#4 -Coalesced (already) [369] ultoa::buffer#22 ← ultoa::buffer#14 -Coalesced [377] ultoa::value#19 ← ultoa::value#0 -Coalesced [378] ultoa::buffer#24 ← ultoa::buffer#4 -Coalesced [379] ultoa_append::value#6 ← ultoa_append::value#0 -Coalesced [386] ultoa_append::value#7 ← ultoa_append::value#1 -Coalesced [387] ultoa_append::digit#5 ← ultoa_append::digit#1 -Coalesced [398] diff::a#5 ← diff::a#0 -Coalesced [399] diff::b#5 ← diff::b#0 -Coalesced [405] diff::a#6 ← diff::a#1 -Coalesced [406] diff::b#6 ← diff::b#1 -Coalesced [413] legal::i#8 ← legal::i#1 -Coalesced [418] diff::return#9 ← diff::return#3 -Coalesced [422] diff::return#8 ← diff::return#2 -Coalesced down to 50 phi equivalence classes +Created 61 initial phi equivalence classes +Coalesced [38] printf_ulong::uvalue#6 ← printf_ulong::uvalue#0 +Coalesced [49] printf_str::str#22 ← printf_str::str#15 +Coalesced [57] printf_char::ch#6 ← printf_char::ch#1 +Coalesced [59] printf_str::str#24 ← printf_str::str#0 +Coalesced (already) [62] printf_str::str#23 ← printf_str::str#0 +Coalesced [90] memset::dst#5 ← memset::dst#1 +Coalesced [99] memcpy::src#4 ← memcpy::src#1 +Coalesced [100] memcpy::dst#4 ← memcpy::dst#1 +Coalesced [124] printf_number_buffer::buffer_sign#16 ← printf_number_buffer::buffer_sign#0 +Coalesced [137] printf_number_buffer::len#5 ← printf_number_buffer::len#1 +Coalesced [148] printf_char::ch#4 ← printf_char::ch#2 +Coalesced [158] printf_str::str#21 ← printf_str::str#1 +Coalesced [165] printf_padding::length#10 ← printf_padding::length#2 +Coalesced [169] printf_padding::length#9 ← printf_padding::length#1 +Coalesced [173] printf_padding::length#11 ← printf_padding::length#0 +Coalesced [176] printf_number_buffer::padding#18 ← printf_number_buffer::padding#1 +Coalesced [177] printf_number_buffer::len#4 ← printf_number_buffer::len#0 +Coalesced [183] printf_char::ch#5 ← printf_char::ch#0 +Coalesced [186] printf_padding::i#5 ← printf_padding::i#1 +Coalesced [187] strupr::src#5 ← strupr::str#0 +Coalesced [198] strupr::src#6 ← strupr::src#1 +Coalesced [201] toupper::return#7 ← toupper::ch#0 +Coalesced [205] toupper::return#6 ← toupper::return#0 +Coalesced [206] strlen::str#6 ← strlen::str#1 +Coalesced [213] strlen::str#7 ← strlen::str#0 +Coalesced [214] strlen::len#5 ← strlen::len#1 +Coalesced [217] ultoa::value#17 ← ultoa::value#1 +Coalesced [229] ultoa::value#18 ← ultoa::value#2 +Coalesced [230] ultoa::started#6 ← ultoa::started#2 +Coalesced [231] ultoa::buffer#23 ← ultoa::buffer#11 +Coalesced [234] ultoa::digit#7 ← ultoa::digit#1 +Coalesced (already) [235] ultoa::value#16 ← ultoa::value#6 +Coalesced (already) [236] ultoa::started#5 ← ultoa::started#4 +Coalesced (already) [237] ultoa::buffer#22 ← ultoa::buffer#14 +Coalesced [245] ultoa::value#19 ← ultoa::value#0 +Coalesced [246] ultoa::buffer#24 ← ultoa::buffer#4 +Coalesced [247] ultoa_append::value#6 ← ultoa_append::value#0 +Coalesced [254] ultoa_append::value#7 ← ultoa_append::value#1 +Coalesced [255] ultoa_append::digit#5 ← ultoa_append::digit#1 +Coalesced [298] printf_number_buffer::buffer_sign#15 ← printf_number_buffer::buffer_sign#1 +Coalesced [316] utoa::value#17 ← utoa::value#2 +Coalesced [317] utoa::started#6 ← utoa::started#2 +Coalesced [318] utoa::buffer#23 ← utoa::buffer#11 +Coalesced [321] utoa::digit#7 ← utoa::digit#1 +Coalesced (already) [322] utoa::value#16 ← utoa::value#6 +Coalesced (already) [323] utoa::started#5 ← utoa::started#4 +Coalesced (already) [324] utoa::buffer#22 ← utoa::buffer#14 +Coalesced [332] utoa::value#18 ← utoa::value#0 +Coalesced [333] utoa::buffer#24 ← utoa::buffer#4 +Coalesced [334] utoa_append::value#6 ← utoa_append::value#0 +Coalesced [341] utoa_append::value#7 ← utoa_append::value#1 +Coalesced [342] utoa_append::digit#5 ← utoa_append::digit#1 +Coalesced [375] printf_ulong::uvalue#7 ← printf_ulong::uvalue#1 +Coalesced [389] printf_uchar::uvalue#6 ← printf_uchar::uvalue#1 +Coalesced [395] print::i1#14 ← print::i1#1 +Coalesced [401] print::j#9 ← print::j#1 +Coalesced [406] printf_uchar::uvalue#7 ← printf_uchar::uvalue#0 +Coalesced [409] print::i#5 ← print::i#1 +Coalesced [416] printf_number_buffer::buffer_sign#14 ← printf_number_buffer::buffer_sign#2 +Coalesced [423] uctoa::value#17 ← uctoa::value#1 +Coalesced [433] uctoa::value#18 ← uctoa::value#2 +Coalesced [434] uctoa::started#6 ← uctoa::started#2 +Coalesced [435] uctoa::buffer#23 ← uctoa::buffer#11 +Coalesced [438] uctoa::digit#7 ← uctoa::digit#1 +Coalesced (already) [439] uctoa::value#16 ← uctoa::value#6 +Coalesced (already) [440] uctoa::started#5 ← uctoa::started#4 +Coalesced (already) [441] uctoa::buffer#22 ← uctoa::buffer#14 +Coalesced [449] uctoa::value#19 ← uctoa::value#0 +Coalesced [450] uctoa::buffer#24 ← uctoa::buffer#4 +Coalesced [451] uctoa_append::value#6 ← uctoa_append::value#0 +Coalesced [458] uctoa_append::value#7 ← uctoa_append::value#1 +Coalesced [459] uctoa_append::digit#5 ← uctoa_append::digit#1 +Coalesced [470] diff::a#5 ← diff::a#0 +Coalesced [471] diff::b#5 ← diff::b#0 +Coalesced [477] diff::a#6 ← diff::a#1 +Coalesced [478] diff::b#6 ← diff::b#1 +Coalesced [485] legal::i#8 ← legal::i#1 +Coalesced [490] diff::return#9 ← diff::return#3 +Coalesced [494] diff::return#8 ← diff::return#2 +Coalesced down to 51 phi equivalence classes Culled Empty Block (label) @4 -Culled Empty Block (label) printf_uint::@2 -Culled Empty Block (label) printf_uint::@5 +Culled Empty Block (label) main::@12 +Culled Empty Block (label) printf_str::@7 +Culled Empty Block (label) printf_str::@6 +Culled Empty Block (label) printf_ln::@1 +Culled Empty Block (label) memset::@1 +Culled Empty Block (label) memcpy::@3 +Culled Empty Block (label) printf_char::@2 +Culled Empty Block (label) printf_string::@1 +Culled Empty Block (label) printf_string::@11 +Culled Empty Block (label) printf_string::@8 +Culled Empty Block (label) printf_ulong::@2 +Culled Empty Block (label) printf_ulong::@5 Culled Empty Block (label) printf_number_buffer::@14 Culled Empty Block (label) printf_number_buffer::@17 Culled Empty Block (label) printf_number_buffer::@20 @@ -4532,15 +5389,14 @@ Culled Empty Block (label) printf_number_buffer::@21 Culled Empty Block (label) printf_number_buffer::@18 Culled Empty Block (label) printf_number_buffer::@16 Culled Empty Block (label) printf_number_buffer::@28 -Culled Empty Block (label) printf_char::@2 -Culled Empty Block (label) memset::@1 -Culled Empty Block (label) memcpy::@3 -Culled Empty Block (label) printf_str::@7 -Culled Empty Block (label) printf_str::@6 -Culled Empty Block (label) printf_ln::@1 Culled Empty Block (label) strupr::@3 Culled Empty Block (label) toupper::@2 Culled Empty Block (label) strlen::@3 +Culled Empty Block (label) ultoa::@1 +Culled Empty Block (label) ultoa::@5 +Culled Empty Block (label) ultoa::@17 +Culled Empty Block (label) printf_uint::@2 +Culled Empty Block (label) printf_uint::@5 Culled Empty Block (label) utoa::@1 Culled Empty Block (label) utoa::@5 Culled Empty Block (label) utoa::@17 @@ -4556,11 +5412,6 @@ Culled Empty Block (label) uctoa::@6 Culled Empty Block (label) uctoa::@2 Culled Empty Block (label) uctoa::@5 Culled Empty Block (label) uctoa::@17 -Culled Empty Block (label) printf_ulong::@2 -Culled Empty Block (label) printf_ulong::@5 -Culled Empty Block (label) ultoa::@1 -Culled Empty Block (label) ultoa::@5 -Culled Empty Block (label) ultoa::@17 Culled Empty Block (label) legal::@3 Culled Empty Block (label) legal::@7 Culled Empty Block (label) legal::@4 @@ -4604,6 +5455,7 @@ Renumbering block printf_number_buffer::@24 to printf_number_buffer::@18 Renumbering block printf_number_buffer::@25 to printf_number_buffer::@19 Renumbering block printf_number_buffer::@26 to printf_number_buffer::@20 Renumbering block printf_number_buffer::@27 to printf_number_buffer::@21 +Renumbering block printf_string::@2 to printf_string::@1 Renumbering block legal::@5 to legal::@3 Renumbering block legal::@6 to legal::@4 Renumbering block legal::@8 to legal::@5 @@ -4627,27 +5479,32 @@ Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 Adding NOP phi() at start of main::@3 -Adding NOP phi() at start of printf_uint -Adding NOP phi() at start of printf_number_buffer::@21 +Adding NOP phi() at start of main::@7 +Adding NOP phi() at start of main::@9 +Adding NOP phi() at start of main::@10 +Adding NOP phi() at start of main::@11 +Adding NOP phi() at start of printf_str::@4 Adding NOP phi() at start of printf_scroll::@1 Adding NOP phi() at start of printf_scroll::@2 Adding NOP phi() at start of memcpy -Adding NOP phi() at start of printf_str::@4 +Adding NOP phi() at start of printf_string +Adding NOP phi() at start of printf_string::@1 +Adding NOP phi() at start of printf_number_buffer::@21 Adding NOP phi() at start of strupr Adding NOP phi() at start of strlen +Adding NOP phi() at start of ultoa +Adding NOP phi() at start of ultoa_append +Adding NOP phi() at start of printf_uint Adding NOP phi() at start of utoa Adding NOP phi() at start of utoa_append Adding NOP phi() at start of printf_cls -Adding NOP phi() at start of queen::@4 +Adding NOP phi() at start of print Adding NOP phi() at start of print::@12 Adding NOP phi() at start of print::@4 Adding NOP phi() at start of print::@10 Adding NOP phi() at start of print::@8 Adding NOP phi() at start of uctoa Adding NOP phi() at start of uctoa_append -Adding NOP phi() at start of printf_ulong -Adding NOP phi() at start of ultoa -Adding NOP phi() at start of ultoa_append Adding NOP phi() at start of legal FINAL CONTROL FLOW GRAPH @@ -4687,713 +5544,819 @@ main::@3: scope:[main] from main::@2 [15] call printf_uint to:main::@4 main::@4: scope:[main] from main::@3 - [16] stackpush(byte) ← (byte) 1 - [17] callexecute queen + [16] (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO) + [17] (byte) tod_init::tod_SEC#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC) + [18] (byte) tod_init::tod_MIN#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN) + [19] (byte) tod_init::tod_HOURS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS) + [20] call tod_init + to:main::@5 +main::@5: scope:[main] from main::@4 + [21] stackpush(byte) ← (byte) 1 + [22] callexecute queen sideeffect stackpullbytes((number) 1) - to:main::@return -main::@return: scope:[main] from main::@4 - [19] return - to:@return - -(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_upper_case , (byte) printf_uint::format_radix) -printf_uint: scope:[printf_uint] from main::@3 - [20] phi() - to:printf_uint::@1 -printf_uint::@1: scope:[printf_uint] from printf_uint - [21] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [22] call utoa - to:printf_uint::@2 -printf_uint::@2: scope:[printf_uint] from printf_uint::@1 - [23] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [24] call printf_number_buffer - to:printf_uint::@return -printf_uint::@return: scope:[printf_uint] from printf_uint::@2 - [25] return - to:@return - -(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_upper_case , (byte) printf_number_buffer::format_radix) -printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@2 printf_uint::@2 printf_ulong::@2 - [26] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_upper_case#0 printf_ulong::@2/(const byte) printf_ulong::format_upper_case#0 ) - [26] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uchar::@2/(byte) printf_number_buffer::buffer_sign#2 printf_uint::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 ) - [26] (byte*) printf_number_buffer::buffer_digits#10 ← phi( printf_uchar::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_uint::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_ulong::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [26] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_zero_padding#0 printf_ulong::@2/(const byte) printf_ulong::format_zero_padding#0 ) - [26] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_justify_left#0 printf_ulong::@2/(const byte) printf_ulong::format_justify_left#0 ) - [26] (byte) printf_number_buffer::format_min_length#3 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_min_length#0 printf_ulong::@2/(const byte) printf_ulong::format_min_length#0 ) - [27] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 - to:printf_number_buffer::@6 -printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - [28] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - [29] call strlen - [30] (word) strlen::return#2 ← (word) strlen::len#2 - to:printf_number_buffer::@14 -printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 - [31] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - [32] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 - [33] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 - to:printf_number_buffer::@7 -printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 - [34] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 - to:printf_number_buffer::@13 -printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 - [35] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) - [36] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 - [37] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 - to:printf_number_buffer::@1 -printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 + [24] call tod_read + [25] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 + [26] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 + [27] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 + [28] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 + to:main::@6 +main::@6: scope:[main] from main::@5 + [29] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 + [30] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 + [31] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 + [32] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 + [33] call tod_str + to:main::@7 +main::@7: scope:[main] from main::@6 + [34] phi() + [35] call printf_str + to:main::@8 +main::@8: scope:[main] from main::@7 + [36] (dword) printf_ulong::uvalue#0 ← (dword) count + [37] call printf_ulong + to:main::@9 +main::@9: scope:[main] from main::@8 [38] phi() - to:printf_number_buffer::@1 -printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [39] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) - [40] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 - to:printf_number_buffer::@17 -printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [41] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 - to:printf_number_buffer::@16 -printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [42] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 - to:printf_number_buffer::@2 -printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [43] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 - [44] call printf_padding - to:printf_number_buffer::@2 -printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [45] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 - to:printf_number_buffer::@9 -printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [46] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 - [47] call printf_char - to:printf_number_buffer::@3 -printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [48] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 - to:printf_number_buffer::@18 -printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [49] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 - to:printf_number_buffer::@4 -printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [50] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 - [51] call printf_padding - to:printf_number_buffer::@4 -printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [52] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 - to:printf_number_buffer::@11 -printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [53] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 - [54] call strupr - to:printf_number_buffer::@5 -printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [55] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - [56] call printf_str - to:printf_number_buffer::@15 -printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [57] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return - to:printf_number_buffer::@20 -printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [58] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return - to:printf_number_buffer::@19 -printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [59] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 - to:printf_number_buffer::@return -printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [60] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 - [61] call printf_padding - to:printf_number_buffer::@return -printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [62] return + [39] call printf_str + to:main::@10 +main::@10: scope:[main] from main::@9 + [40] phi() + [41] call printf_string + to:main::@11 +main::@11: scope:[main] from main::@10 + [42] phi() + [43] call printf_str + to:main::@return +main::@return: scope:[main] from main::@11 + [44] return to:@return -(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) -printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [63] (byte) printf_padding::pad#5 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) - [63] (byte) printf_padding::length#4 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) - to:printf_padding::@1 -printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [64] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) - [65] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 - to:printf_padding::@return -printf_padding::@return: scope:[printf_padding] from printf_padding::@1 - [66] return - to:@return -printf_padding::@2: scope:[printf_padding] from printf_padding::@1 - [67] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#5 - [68] call printf_char - to:printf_padding::@3 -printf_padding::@3: scope:[printf_padding] from printf_padding::@2 - [69] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 - to:printf_padding::@1 - -(void()) printf_char((byte) printf_char::ch) -printf_char: scope:[printf_char] from printf_number_buffer::@9 printf_padding::@2 printf_str::@5 - [70] (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::@5/(byte) printf_char::ch#1 ) - [71] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 - [72] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr - [73] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x - [74] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return - to:printf_char::@1 -printf_char::@1: scope:[printf_char] from printf_char - [75] (byte) printf_cursor_x ← (byte) 0 - [76] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y - [77] call printf_scroll - to:printf_char::@return -printf_char::@return: scope:[printf_char] from printf_char printf_char::@1 - [78] return - to:@return - -(void()) printf_scroll() -printf_scroll: scope:[printf_scroll] from printf_char::@1 printf_ln - [79] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return - to:printf_scroll::@1 -printf_scroll::@1: scope:[printf_scroll] from printf_scroll - [80] phi() - [81] call memcpy - to:printf_scroll::@2 -printf_scroll::@2: scope:[printf_scroll] from printf_scroll::@1 - [82] phi() - [83] call memset - to:printf_scroll::@3 -printf_scroll::@3: scope:[printf_scroll] from printf_scroll::@2 - [84] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 - [85] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 - [86] (byte) printf_cursor_y ← -- (byte) printf_cursor_y - to:printf_scroll::@return -printf_scroll::@return: scope:[printf_scroll] from printf_scroll printf_scroll::@3 - [87] return - to:@return - -(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) -memset: scope:[memset] from printf_cls printf_scroll::@2 - [88] (byte) memset::c#4 ← phi( printf_cls/(byte) ' ' printf_scroll::@2/(byte) ' ' ) - [88] (void*) memset::str#3 ← phi( printf_cls/(void*) 1024 printf_scroll::@2/(void*)(number) $400+(number) $28*(number) $19-(number) $28 ) - [88] (word) memset::num#2 ← phi( printf_cls/(word)(number) $28*(number) $19 printf_scroll::@2/(byte) $28 ) - [89] if((word) memset::num#2<=(byte) 0) goto memset::@return - to:memset::@1 -memset::@1: scope:[memset] from memset - [90] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 - [91] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 - to:memset::@2 -memset::@2: scope:[memset] from memset::@1 memset::@3 - [92] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) - [93] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 - to:memset::@return -memset::@return: scope:[memset] from memset memset::@2 - [94] return - to:@return -memset::@3: scope:[memset] from memset::@2 - [95] *((byte*) memset::dst#2) ← (byte) memset::c#4 - [96] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 - to:memset::@2 - -(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) -memcpy: scope:[memcpy] from printf_scroll::@1 - [97] phi() - to:memcpy::@1 -memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - [98] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*)(const void*) memcpy::destination#0 memcpy::@2/(byte*) memcpy::dst#1 ) - [98] (byte*) memcpy::src#2 ← phi( memcpy/(byte*)(const void*) memcpy::source#0 memcpy::@2/(byte*) memcpy::src#1 ) - [99] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 - to:memcpy::@return -memcpy::@return: scope:[memcpy] from memcpy::@1 - [100] return - to:@return -memcpy::@2: scope:[memcpy] from memcpy::@1 - [101] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) - [102] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 - [103] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 - to:memcpy::@1 - (void()) printf_str((byte*) printf_str::str) -printf_str: scope:[printf_str] from main::@1 main::@2 print print::@10 print::@12 print::@4 print::@8 printf_number_buffer::@5 - [104] (byte*) printf_str::str#11 ← phi( main::@1/(const byte*) main::str main::@2/(const byte*) main::str1 print/(const byte*) print::str print::@10/(const byte*) print::str4 print::@12/(const byte*) print::str1 print::@4/(const byte*) print::str2 print::@8/(const byte*) print::str3 printf_number_buffer::@5/(byte*) printf_str::str#1 ) +printf_str: scope:[printf_str] from main::@1 main::@11 main::@2 main::@7 main::@9 print print::@10 print::@12 print::@4 print::@8 printf_number_buffer::@5 printf_string::@1 + [45] (byte*) printf_str::str#15 ← phi( main::@1/(const byte*) main::str main::@11/(const byte*) main::str4 main::@2/(const byte*) main::str1 main::@7/(const byte*) main::str2 main::@9/(const byte*) main::str3 print/(const byte*) print::str print::@10/(const byte*) print::str4 print::@12/(const byte*) print::str1 print::@4/(const byte*) print::str2 print::@8/(const byte*) print::str3 printf_number_buffer::@5/(byte*) printf_str::str#1 printf_string::@1/(const byte*) tod_buffer ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@4 printf_str::@5 - [105] (byte*) printf_str::str#10 ← phi( printf_str/(byte*) printf_str::str#11 printf_str::@4/(byte*) printf_str::str#0 printf_str::@5/(byte*) printf_str::str#0 ) + [46] (byte*) printf_str::str#13 ← phi( printf_str/(byte*) printf_str::str#15 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 - [106] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#10) - [107] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#10 - [108] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 + [47] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) + [48] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 + [49] 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 - [109] return + [50] return to:@return printf_str::@3: scope:[printf_str] from printf_str::@2 - [110] if((byte) printf_str::ch#0==(byte) ' + [51] 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 - [111] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 - [112] call printf_char + [52] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + [53] call printf_char to:printf_str::@1 printf_str::@4: scope:[printf_str] from printf_str::@3 - [113] phi() - [114] call printf_ln + [54] phi() + [55] call printf_ln to:printf_str::@1 (void()) printf_ln() printf_ln: scope:[printf_ln] from printf_str::@4 - [115] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x - [116] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 - [117] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 - [118] (byte) printf_cursor_x ← (byte) 0 - [119] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y - [120] call printf_scroll + [56] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x + [57] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 + [58] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 + [59] (byte) printf_cursor_x ← (byte) 0 + [60] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y + [61] call printf_scroll to:printf_ln::@return printf_ln::@return: scope:[printf_ln] from printf_ln - [121] return + [62] return to:@return +(void()) printf_scroll() +printf_scroll: scope:[printf_scroll] from printf_char::@1 printf_ln + [63] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return + to:printf_scroll::@1 +printf_scroll::@1: scope:[printf_scroll] from printf_scroll + [64] phi() + [65] call memcpy + to:printf_scroll::@2 +printf_scroll::@2: scope:[printf_scroll] from printf_scroll::@1 + [66] phi() + [67] call memset + to:printf_scroll::@3 +printf_scroll::@3: scope:[printf_scroll] from printf_scroll::@2 + [68] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 + [69] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 + [70] (byte) printf_cursor_y ← -- (byte) printf_cursor_y + to:printf_scroll::@return +printf_scroll::@return: scope:[printf_scroll] from printf_scroll printf_scroll::@3 + [71] return + to:@return + +(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) +memset: scope:[memset] from printf_cls printf_scroll::@2 + [72] (byte) memset::c#4 ← phi( printf_cls/(byte) ' ' printf_scroll::@2/(byte) ' ' ) + [72] (void*) memset::str#3 ← phi( printf_cls/(void*) 1024 printf_scroll::@2/(void*)(number) $400+(number) $28*(number) $19-(number) $28 ) + [72] (word) memset::num#2 ← phi( printf_cls/(word)(number) $28*(number) $19 printf_scroll::@2/(byte) $28 ) + [73] if((word) memset::num#2<=(byte) 0) goto memset::@return + to:memset::@1 +memset::@1: scope:[memset] from memset + [74] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 + [75] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 + to:memset::@2 +memset::@2: scope:[memset] from memset::@1 memset::@3 + [76] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) + [77] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 + to:memset::@return +memset::@return: scope:[memset] from memset memset::@2 + [78] return + to:@return +memset::@3: scope:[memset] from memset::@2 + [79] *((byte*) memset::dst#2) ← (byte) memset::c#4 + [80] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 + to:memset::@2 + +(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) +memcpy: scope:[memcpy] from printf_scroll::@1 + [81] phi() + to:memcpy::@1 +memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 + [82] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*)(const void*) memcpy::destination#0 memcpy::@2/(byte*) memcpy::dst#1 ) + [82] (byte*) memcpy::src#2 ← phi( memcpy/(byte*)(const void*) memcpy::source#0 memcpy::@2/(byte*) memcpy::src#1 ) + [83] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 + to:memcpy::@return +memcpy::@return: scope:[memcpy] from memcpy::@1 + [84] return + to:@return +memcpy::@2: scope:[memcpy] from memcpy::@1 + [85] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) + [86] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 + [87] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 + to:memcpy::@1 + +(void()) printf_char((byte) printf_char::ch) +printf_char: scope:[printf_char] from printf_number_buffer::@9 printf_padding::@2 printf_str::@5 + [88] (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::@5/(byte) printf_char::ch#1 ) + [89] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 + [90] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr + [91] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x + [92] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return + to:printf_char::@1 +printf_char::@1: scope:[printf_char] from printf_char + [93] (byte) printf_cursor_x ← (byte) 0 + [94] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y + [95] call printf_scroll + to:printf_char::@return +printf_char::@return: scope:[printf_char] from printf_char printf_char::@1 + [96] return + to:@return + +(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) +printf_string: scope:[printf_string] from main::@10 + [97] phi() + to:printf_string::@1 +printf_string::@1: scope:[printf_string] from printf_string + [98] phi() + [99] call printf_str + to:printf_string::@return +printf_string::@return: scope:[printf_string] from printf_string::@1 + [100] return + to:@return + +(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) +printf_ulong: scope:[printf_ulong] from main::@8 print::@11 + [101] (dword) printf_ulong::uvalue#2 ← phi( main::@8/(dword) printf_ulong::uvalue#0 print::@11/(dword) printf_ulong::uvalue#1 ) + to:printf_ulong::@1 +printf_ulong::@1: scope:[printf_ulong] from printf_ulong + [102] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [103] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 + [104] call ultoa + to:printf_ulong::@2 +printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 + [105] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [106] call printf_number_buffer + to:printf_ulong::@return +printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 + [107] return + to:@return + +(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_upper_case , (byte) printf_number_buffer::format_radix) +printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@2 printf_uint::@2 printf_ulong::@2 + [108] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_upper_case#0 printf_ulong::@2/(byte) 0 ) + [108] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uchar::@2/(byte) printf_number_buffer::buffer_sign#2 printf_uint::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 ) + [108] (byte*) printf_number_buffer::buffer_digits#10 ← phi( printf_uchar::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_uint::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_ulong::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [108] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_zero_padding#0 printf_ulong::@2/(byte) 0 ) + [108] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_justify_left#0 printf_ulong::@2/(byte) 0 ) + [108] (byte) printf_number_buffer::format_min_length#3 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_min_length#0 printf_ulong::@2/(byte) 0 ) + [109] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 + to:printf_number_buffer::@6 +printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer + [110] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + [111] call strlen + [112] (word) strlen::return#2 ← (word) strlen::len#2 + to:printf_number_buffer::@14 +printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 + [113] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 + [114] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 + [115] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 + to:printf_number_buffer::@7 +printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 + [116] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 + to:printf_number_buffer::@13 +printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 + [117] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) + [118] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 + [119] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 + to:printf_number_buffer::@1 +printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 + [120] phi() + to:printf_number_buffer::@1 +printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 + [121] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) + [122] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 + to:printf_number_buffer::@17 +printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 + [123] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 + to:printf_number_buffer::@16 +printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 + [124] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 + to:printf_number_buffer::@2 +printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 + [125] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 + [126] call printf_padding + to:printf_number_buffer::@2 +printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 + [127] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 + to:printf_number_buffer::@9 +printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 + [128] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 + [129] call printf_char + to:printf_number_buffer::@3 +printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 + [130] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 + to:printf_number_buffer::@18 +printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 + [131] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 + to:printf_number_buffer::@4 +printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 + [132] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 + [133] call printf_padding + to:printf_number_buffer::@4 +printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 + [134] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 + to:printf_number_buffer::@11 +printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 + [135] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 + [136] call strupr + to:printf_number_buffer::@5 +printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 + [137] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + [138] call printf_str + to:printf_number_buffer::@15 +printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 + [139] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return + to:printf_number_buffer::@20 +printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 + [140] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return + to:printf_number_buffer::@19 +printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 + [141] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 + to:printf_number_buffer::@return +printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 + [142] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 + [143] call printf_padding + to:printf_number_buffer::@return +printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 + [144] return + to:@return + +(void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) +printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 + [145] (byte) printf_padding::pad#7 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) + [145] (byte) printf_padding::length#6 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) + to:printf_padding::@1 +printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 + [146] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) + [147] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 + to:printf_padding::@return +printf_padding::@return: scope:[printf_padding] from printf_padding::@1 + [148] return + to:@return +printf_padding::@2: scope:[printf_padding] from printf_padding::@1 + [149] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 + [150] call printf_char + to:printf_padding::@3 +printf_padding::@3: scope:[printf_padding] from printf_padding::@2 + [151] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 + to:printf_padding::@1 + (byte*()) strupr((byte*) strupr::str) strupr: scope:[strupr] from printf_number_buffer::@11 - [122] phi() + [152] phi() to:strupr::@1 strupr::@1: scope:[strupr] from strupr strupr::@3 - [123] (byte*) strupr::src#2 ← phi( strupr/(byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) - [124] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 + [153] (byte*) strupr::src#2 ← phi( strupr/(byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) + [154] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 to:strupr::@return strupr::@return: scope:[strupr] from strupr::@1 - [125] return + [155] return to:@return strupr::@2: scope:[strupr] from strupr::@1 - [126] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) - [127] call toupper - [128] (byte) toupper::return#3 ← (byte) toupper::return#2 + [156] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) + [157] call toupper + [158] (byte) toupper::return#3 ← (byte) toupper::return#2 to:strupr::@3 strupr::@3: scope:[strupr] from strupr::@2 - [129] (byte~) strupr::$0 ← (byte) toupper::return#3 - [130] *((byte*) strupr::src#2) ← (byte~) strupr::$0 - [131] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 + [159] (byte~) strupr::$0 ← (byte) toupper::return#3 + [160] *((byte*) strupr::src#2) ← (byte~) strupr::$0 + [161] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 to:strupr::@1 (byte()) toupper((byte) toupper::ch) toupper: scope:[toupper] from strupr::@2 - [132] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return + [162] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return to:toupper::@2 toupper::@2: scope:[toupper] from toupper - [133] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 + [163] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 to:toupper::@return toupper::@1: scope:[toupper] from toupper::@2 - [134] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' + [164] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' to:toupper::@return toupper::@return: scope:[toupper] from toupper toupper::@1 toupper::@2 - [135] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) - [136] return + [165] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) + [166] return to:@return (word()) strlen((byte*) strlen::str) strlen: scope:[strlen] from printf_number_buffer::@6 - [137] phi() + [167] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [138] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) - [138] (byte*) strlen::str#2 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) - [139] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 + [168] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) + [168] (byte*) strlen::str#3 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) + [169] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [140] return + [170] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [141] (word) strlen::len#1 ← ++ (word) strlen::len#2 - [142] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 + [171] (word) strlen::len#1 ← ++ (word) strlen::len#2 + [172] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 to:strlen::@1 -(void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) -utoa: scope:[utoa] from printf_uint::@1 - [143] phi() - to:utoa::@1 -utoa::@1: scope:[utoa] from utoa utoa::@4 - [144] (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 ) - [144] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) - [144] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) - [144] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) - [145] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 - to:utoa::@3 -utoa::@3: scope:[utoa] from utoa::@1 - [146] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 - [147] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) - [148] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 - [149] *((byte*) utoa::buffer#3) ← (byte) 0 - to:utoa::@return -utoa::@return: scope:[utoa] from utoa::@3 - [150] return - to:@return -utoa::@2: scope:[utoa] from utoa::@1 - [151] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 - [152] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) - [153] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 - to:utoa::@7 -utoa::@7: scope:[utoa] from utoa::@2 - [154] 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 - [155] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) - [155] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) - [155] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) - [156] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 - to:utoa::@1 -utoa::@5: scope:[utoa] from utoa::@2 utoa::@7 - [157] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - [158] (word) utoa_append::value#0 ← (word) utoa::value#2 - [159] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - [160] call utoa_append - [161] (word) utoa_append::return#0 ← (word) utoa_append::value#2 - to:utoa::@6 -utoa::@6: scope:[utoa] from utoa::@5 - [162] (word) utoa::value#0 ← (word) utoa_append::return#0 - [163] (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 - [164] phi() - to:utoa_append::@1 -utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [165] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) - [165] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) - [166] 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 - [167] *((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 - [168] return - to:@return -utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [169] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 - [170] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 - to:utoa_append::@1 - -(void()) printf_cls() -printf_cls: scope:[printf_cls] from main - [171] phi() - [172] call memset - to:printf_cls::@1 -printf_cls::@1: scope:[printf_cls] from printf_cls - [173] (byte*) printf_cursor_ptr ← (byte*) 1024 - [174] (byte) printf_cursor_x ← (byte) 0 - [175] (byte) printf_cursor_y ← (byte) 0 - to:printf_cls::@return -printf_cls::@return: scope:[printf_cls] from printf_cls::@1 - [176] return - to:@return - -__stackcall (void()) queen((byte) queen::row) -queen: scope:[queen] from - [177] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) - [178] (byte) queen::r ← (byte) queen::row#0 - [179] (byte) queen::column ← (byte) 1 - to:queen::@1 -queen::@1: scope:[queen] from queen queen::@3 - [180] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 - to:queen::@return -queen::@return: scope:[queen] from queen::@1 - [181] return - to:@return -queen::@2: scope:[queen] from queen::@1 - [182] (byte) legal::row#0 ← (byte) queen::r - [183] (byte) legal::column#0 ← (byte) queen::column - [184] call legal - [185] (byte) legal::return#0 ← (byte) legal::return#4 - to:queen::@7 -queen::@7: scope:[queen] from queen::@2 - [186] (byte~) queen::$1 ← (byte) legal::return#0 - [187] if((byte) 0==(byte~) queen::$1) goto queen::@3 - to:queen::@5 -queen::@5: scope:[queen] from queen::@7 - [188] *((const byte*) board + (byte) queen::r) ← (byte) queen::column - [189] if((byte) queen::r==(byte) 8) goto queen::@4 - to:queen::@6 -queen::@6: scope:[queen] from queen::@5 - asm { ldacolumn pha ldar pha } - [191] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 - [192] stackpush(byte) ← (byte~) queen::$4 - [193] callexecute queen - sideeffect stackpullbytes((number) 1) - asm { pla star pla stacolumn } - to:queen::@3 -queen::@3: scope:[queen] from queen::@4 queen::@6 queen::@7 - [196] (byte) queen::column ← ++ (byte) queen::column - to:queen::@1 -queen::@4: scope:[queen] from queen::@5 - [197] phi() - [198] call print - to:queen::@3 - -(void()) print() -print: scope:[print] from queen::@4 - [199] (dword) count ← ++ (dword) count - [200] call printf_str - to:print::@11 -print::@11: scope:[print] from print - [201] (dword) printf_ulong::uvalue#0 ← (dword) count - [202] call printf_ulong - to:print::@12 -print::@12: scope:[print] from print::@11 - [203] phi() - [204] call printf_str - to:print::@1 -print::@1: scope:[print] from print::@12 print::@13 - [205] (byte) print::i#2 ← phi( print::@12/(byte) 1 print::@13/(byte) print::i#1 ) - [206] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 - to:print::@3 -print::@3: scope:[print] from print::@1 print::@7 - [207] (byte) print::i1#2 ← phi( print::@1/(byte) 1 print::@7/(byte) print::i1#1 ) - [208] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 - to:print::@return -print::@return: scope:[print] from print::@3 - [209] return - to:@return -print::@4: scope:[print] from print::@3 - [210] phi() - [211] call printf_str - to:print::@14 -print::@14: scope:[print] from print::@4 - [212] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 - [213] call printf_uchar - to:print::@5 -print::@5: scope:[print] from print::@14 print::@9 - [214] (byte) print::j#2 ← phi( print::@9/(byte) print::j#1 print::@14/(byte) 1 ) - [215] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 - to:print::@7 -print::@7: scope:[print] from print::@5 - [216] (byte) print::i1#1 ← ++ (byte) print::i1#2 - to:print::@3 -print::@6: scope:[print] from print::@5 - [217] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 - to:print::@10 -print::@10: scope:[print] from print::@6 - [218] phi() - [219] call printf_str - to:print::@9 -print::@9: scope:[print] from print::@10 print::@8 - [220] (byte) print::j#1 ← ++ (byte) print::j#2 - to:print::@5 -print::@8: scope:[print] from print::@6 - [221] phi() - [222] call printf_str - to:print::@9 -print::@2: scope:[print] from print::@1 - [223] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 - [224] call printf_uchar - to:print::@13 -print::@13: scope:[print] from print::@2 - [225] (byte) print::i#1 ← ++ (byte) print::i#2 - to:print::@1 - -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -printf_uchar: scope:[printf_uchar] from print::@14 print::@2 - [226] (byte) printf_uchar::uvalue#2 ← phi( print::@14/(byte) printf_uchar::uvalue#1 print::@2/(byte) printf_uchar::uvalue#0 ) - to:printf_uchar::@1 -printf_uchar::@1: scope:[printf_uchar] from printf_uchar - [227] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [228] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 - [229] call uctoa - to:printf_uchar::@2 -printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 - [230] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [231] call printf_number_buffer - to:printf_uchar::@return -printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 - [232] return - to:@return - -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -uctoa: scope:[uctoa] from printf_uchar::@1 - [233] phi() - to:uctoa::@1 -uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [234] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [234] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) - [234] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) - [234] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) - [235] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 - to:uctoa::@3 -uctoa::@3: scope:[uctoa] from uctoa::@1 - [236] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) - [237] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 - [238] *((byte*) uctoa::buffer#3) ← (byte) 0 - to:uctoa::@return -uctoa::@return: scope:[uctoa] from uctoa::@3 - [239] return - to:@return -uctoa::@2: scope:[uctoa] from uctoa::@1 - [240] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) - [241] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 - to:uctoa::@7 -uctoa::@7: scope:[uctoa] from uctoa::@2 - [242] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 - to:uctoa::@4 -uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 - [243] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) - [243] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) - [243] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) - [244] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 - to:uctoa::@1 -uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 - [245] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - [246] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - [247] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - [248] call uctoa_append - [249] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - to:uctoa::@6 -uctoa::@6: scope:[uctoa] from uctoa::@5 - [250] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - [251] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 - to:uctoa::@4 - -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -uctoa_append: scope:[uctoa_append] from uctoa::@5 - [252] phi() - to:uctoa_append::@1 -uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 - [253] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) - [253] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) - [254] 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 - [255] *((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 - [256] return - to:@return -uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 - [257] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 - [258] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 - to:uctoa_append::@1 - -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -printf_ulong: scope:[printf_ulong] from print::@11 - [259] phi() - to:printf_ulong::@1 -printf_ulong::@1: scope:[printf_ulong] from printf_ulong - [260] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [261] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - [262] call ultoa - to:printf_ulong::@2 -printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 - [263] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [264] call printf_number_buffer - to:printf_ulong::@return -printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 - [265] return - to:@return - (void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) ultoa: scope:[ultoa] from printf_ulong::@1 - [266] phi() + [173] phi() to:ultoa::@1 ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 - [267] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [267] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) - [267] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) - [267] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) - [268] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 + [174] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [174] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) + [174] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) + [174] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) + [175] if((byte) ultoa::digit#2<(byte) $a-(byte) 1) goto ultoa::@2 to:ultoa::@3 ultoa::@3: scope:[ultoa] from ultoa::@1 - [269] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 - [270] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) - [271] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 - [272] *((byte*) ultoa::buffer#3) ← (byte) 0 + [176] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 + [177] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) + [178] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 + [179] *((byte*) ultoa::buffer#3) ← (byte) 0 to:ultoa::@return ultoa::@return: scope:[ultoa] from ultoa::@3 - [273] return + [180] return to:@return ultoa::@2: scope:[ultoa] from ultoa::@1 - [274] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 - [275] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) - [276] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 + [181] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 + [182] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) + [183] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 to:ultoa::@7 ultoa::@7: scope:[ultoa] from ultoa::@2 - [277] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 + [184] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 to:ultoa::@4 ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7 - [278] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) - [278] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) - [278] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) - [279] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 + [185] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) + [185] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) + [185] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) + [186] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 to:ultoa::@1 ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7 - [280] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - [281] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - [282] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - [283] call ultoa_append - [284] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 + [187] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 + [188] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 + [189] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 + [190] call ultoa_append + [191] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 to:ultoa::@6 ultoa::@6: scope:[ultoa] from ultoa::@5 - [285] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - [286] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 + [192] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 + [193] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 to:ultoa::@4 (dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) ultoa_append: scope:[ultoa_append] from ultoa::@5 - [287] phi() + [194] phi() to:ultoa_append::@1 ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2 - [288] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) - [288] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) - [289] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 + [195] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) + [195] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) + [196] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 to:ultoa_append::@3 ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 - [290] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) + [197] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) to:ultoa_append::@return ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 - [291] return + [198] return to:@return ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 - [292] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 - [293] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 + [199] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 + [200] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 to:ultoa_append::@1 +(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) +tod_str: scope:[tod_str] from main::@6 + [201] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 + [202] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 + [203] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 + [204] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f + [205] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 + [206] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 + [207] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 + [208] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 + [209] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 + [210] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f + [211] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 + [212] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 + [213] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 + [214] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 + [215] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 + [216] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f + [217] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 + [218] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 + [219] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 + [220] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 + [221] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 + [222] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f + [223] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 + [224] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 + to:tod_str::@return +tod_str::@return: scope:[tod_str] from tod_str + [225] return + to:@return + +(struct TIME_OF_DAY()) tod_read() +tod_read: scope:[tod_read] from main::@5 + [226] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) + [227] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) + [228] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) + [229] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) + to:tod_read::@return +tod_read::@return: scope:[tod_read] from tod_read + [230] return + to:@return + +(void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) +tod_init: scope:[tod_init] from main::@4 + [231] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 + [232] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f + [233] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 + [234] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 + [235] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 + [236] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 + to:tod_init::@return +tod_init::@return: scope:[tod_init] from tod_init + [237] return + to:@return + +(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_upper_case , (byte) printf_uint::format_radix) +printf_uint: scope:[printf_uint] from main::@3 + [238] phi() + to:printf_uint::@1 +printf_uint::@1: scope:[printf_uint] from printf_uint + [239] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [240] call utoa + to:printf_uint::@2 +printf_uint::@2: scope:[printf_uint] from printf_uint::@1 + [241] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [242] call printf_number_buffer + to:printf_uint::@return +printf_uint::@return: scope:[printf_uint] from printf_uint::@2 + [243] return + to:@return + +(void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) +utoa: scope:[utoa] from printf_uint::@1 + [244] phi() + to:utoa::@1 +utoa::@1: scope:[utoa] from utoa utoa::@4 + [245] (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 ) + [245] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) + [245] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) + [245] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) + [246] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 + to:utoa::@3 +utoa::@3: scope:[utoa] from utoa::@1 + [247] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 + [248] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) + [249] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 + [250] *((byte*) utoa::buffer#3) ← (byte) 0 + to:utoa::@return +utoa::@return: scope:[utoa] from utoa::@3 + [251] return + to:@return +utoa::@2: scope:[utoa] from utoa::@1 + [252] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 + [253] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) + [254] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 + to:utoa::@7 +utoa::@7: scope:[utoa] from utoa::@2 + [255] 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 + [256] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) + [256] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) + [256] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) + [257] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 + to:utoa::@1 +utoa::@5: scope:[utoa] from utoa::@2 utoa::@7 + [258] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + [259] (word) utoa_append::value#0 ← (word) utoa::value#2 + [260] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + [261] call utoa_append + [262] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + to:utoa::@6 +utoa::@6: scope:[utoa] from utoa::@5 + [263] (word) utoa::value#0 ← (word) utoa_append::return#0 + [264] (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 + [265] phi() + to:utoa_append::@1 +utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 + [266] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) + [266] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) + [267] 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 + [268] *((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 + [269] return + to:@return +utoa_append::@2: scope:[utoa_append] from utoa_append::@1 + [270] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 + [271] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 + to:utoa_append::@1 + +(void()) printf_cls() +printf_cls: scope:[printf_cls] from main + [272] phi() + [273] call memset + to:printf_cls::@1 +printf_cls::@1: scope:[printf_cls] from printf_cls + [274] (byte*) printf_cursor_ptr ← (byte*) 1024 + [275] (byte) printf_cursor_x ← (byte) 0 + [276] (byte) printf_cursor_y ← (byte) 0 + to:printf_cls::@return +printf_cls::@return: scope:[printf_cls] from printf_cls::@1 + [277] return + to:@return + +__stackcall (void()) queen((byte) queen::row) +queen: scope:[queen] from + [278] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) + [279] (byte) queen::r ← (byte) queen::row#0 + [280] (byte) queen::column ← (byte) 1 + to:queen::@1 +queen::@1: scope:[queen] from queen queen::@3 + [281] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 + to:queen::@return +queen::@return: scope:[queen] from queen::@1 + [282] return + to:@return +queen::@2: scope:[queen] from queen::@1 + [283] (byte) legal::row#0 ← (byte) queen::r + [284] (byte) legal::column#0 ← (byte) queen::column + [285] call legal + [286] (byte) legal::return#0 ← (byte) legal::return#4 + to:queen::@7 +queen::@7: scope:[queen] from queen::@2 + [287] (byte~) queen::$1 ← (byte) legal::return#0 + [288] if((byte) 0==(byte~) queen::$1) goto queen::@3 + to:queen::@5 +queen::@5: scope:[queen] from queen::@7 + [289] *((const byte*) board + (byte) queen::r) ← (byte) queen::column + [290] if((byte) queen::r==(byte) 8) goto queen::@4 + to:queen::@6 +queen::@6: scope:[queen] from queen::@5 + asm { ldacolumn pha ldar pha } + [292] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 + [293] stackpush(byte) ← (byte~) queen::$4 + [294] callexecute queen + sideeffect stackpullbytes((number) 1) + asm { pla star pla stacolumn } + to:queen::@3 +queen::@3: scope:[queen] from queen::@4 queen::@6 queen::@7 + [297] (byte) queen::column ← ++ (byte) queen::column + to:queen::@1 +queen::@4: scope:[queen] from queen::@5 + [298] (dword) count ← ++ (dword) count + [299] call print + to:queen::@3 + +(void()) print() +print: scope:[print] from queen::@4 + [300] phi() + [301] call printf_str + to:print::@11 +print::@11: scope:[print] from print + [302] (dword) printf_ulong::uvalue#1 ← (dword) count + [303] call printf_ulong + to:print::@12 +print::@12: scope:[print] from print::@11 + [304] phi() + [305] call printf_str + to:print::@1 +print::@1: scope:[print] from print::@12 print::@13 + [306] (byte) print::i#2 ← phi( print::@12/(byte) 1 print::@13/(byte) print::i#1 ) + [307] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 + to:print::@3 +print::@3: scope:[print] from print::@1 print::@7 + [308] (byte) print::i1#2 ← phi( print::@1/(byte) 1 print::@7/(byte) print::i1#1 ) + [309] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 + to:print::@return +print::@return: scope:[print] from print::@3 + [310] return + to:@return +print::@4: scope:[print] from print::@3 + [311] phi() + [312] call printf_str + to:print::@14 +print::@14: scope:[print] from print::@4 + [313] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 + [314] call printf_uchar + to:print::@5 +print::@5: scope:[print] from print::@14 print::@9 + [315] (byte) print::j#2 ← phi( print::@9/(byte) print::j#1 print::@14/(byte) 1 ) + [316] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 + to:print::@7 +print::@7: scope:[print] from print::@5 + [317] (byte) print::i1#1 ← ++ (byte) print::i1#2 + to:print::@3 +print::@6: scope:[print] from print::@5 + [318] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 + to:print::@10 +print::@10: scope:[print] from print::@6 + [319] phi() + [320] call printf_str + to:print::@9 +print::@9: scope:[print] from print::@10 print::@8 + [321] (byte) print::j#1 ← ++ (byte) print::j#2 + to:print::@5 +print::@8: scope:[print] from print::@6 + [322] phi() + [323] call printf_str + to:print::@9 +print::@2: scope:[print] from print::@1 + [324] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 + [325] call printf_uchar + to:print::@13 +print::@13: scope:[print] from print::@2 + [326] (byte) print::i#1 ← ++ (byte) print::i#2 + to:print::@1 + +(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) +printf_uchar: scope:[printf_uchar] from print::@14 print::@2 + [327] (byte) printf_uchar::uvalue#2 ← phi( print::@14/(byte) printf_uchar::uvalue#1 print::@2/(byte) printf_uchar::uvalue#0 ) + to:printf_uchar::@1 +printf_uchar::@1: scope:[printf_uchar] from printf_uchar + [328] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [329] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 + [330] call uctoa + to:printf_uchar::@2 +printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 + [331] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [332] call printf_number_buffer + to:printf_uchar::@return +printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 + [333] return + to:@return + +(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) +uctoa: scope:[uctoa] from printf_uchar::@1 + [334] phi() + to:uctoa::@1 +uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 + [335] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [335] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) + [335] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) + [335] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) + [336] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 + to:uctoa::@3 +uctoa::@3: scope:[uctoa] from uctoa::@1 + [337] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) + [338] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 + [339] *((byte*) uctoa::buffer#3) ← (byte) 0 + to:uctoa::@return +uctoa::@return: scope:[uctoa] from uctoa::@3 + [340] return + to:@return +uctoa::@2: scope:[uctoa] from uctoa::@1 + [341] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) + [342] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 + to:uctoa::@7 +uctoa::@7: scope:[uctoa] from uctoa::@2 + [343] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 + to:uctoa::@4 +uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 + [344] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) + [344] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) + [344] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) + [345] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 + to:uctoa::@1 +uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 + [346] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + [347] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + [348] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + [349] call uctoa_append + [350] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + to:uctoa::@6 +uctoa::@6: scope:[uctoa] from uctoa::@5 + [351] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + [352] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 + to:uctoa::@4 + +(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) +uctoa_append: scope:[uctoa_append] from uctoa::@5 + [353] phi() + to:uctoa_append::@1 +uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 + [354] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) + [354] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) + [355] 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 + [356] *((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 + [357] return + to:@return +uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 + [358] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 + [359] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 + to:uctoa_append::@1 + (byte()) legal((byte) legal::row , (byte) legal::column) legal: scope:[legal] from queen::@2 - [294] phi() + [360] phi() to:legal::@1 legal::@1: scope:[legal] from legal legal::@3 - [295] (byte) legal::i#2 ← phi( legal/(byte) 1 legal::@3/(byte) legal::i#1 ) - [296] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 - [297] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 + [361] (byte) legal::i#2 ← phi( legal/(byte) 1 legal::@3/(byte) legal::i#1 ) + [362] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 + [363] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 to:legal::@return legal::@return: scope:[legal] from legal::@1 legal::@2 legal::@6 - [298] (byte) legal::return#4 ← phi( legal::@1/(byte) 1 legal::@2/(byte) 0 legal::@6/(byte) 0 ) - [299] return + [364] (byte) legal::return#4 ← phi( legal::@1/(byte) 1 legal::@2/(byte) 0 legal::@6/(byte) 0 ) + [365] return to:@return legal::@2: scope:[legal] from legal::@1 - [300] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return + [366] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return to:legal::@4 legal::@4: scope:[legal] from legal::@2 - [301] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) - [302] (byte) diff::b#0 ← (byte) legal::column#0 - [303] call diff - [304] (byte) diff::return#0 ← (byte) diff::return#4 + [367] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) + [368] (byte) diff::b#0 ← (byte) legal::column#0 + [369] call diff + [370] (byte) diff::return#0 ← (byte) diff::return#4 to:legal::@5 legal::@5: scope:[legal] from legal::@4 - [305] (byte~) legal::$3 ← (byte) diff::return#0 - [306] (byte) diff::a#1 ← (byte) legal::i#2 - [307] (byte) diff::b#1 ← (byte) legal::row#0 - [308] call diff - [309] (byte) diff::return#1 ← (byte) diff::return#4 + [371] (byte~) legal::$3 ← (byte) diff::return#0 + [372] (byte) diff::a#1 ← (byte) legal::i#2 + [373] (byte) diff::b#1 ← (byte) legal::row#0 + [374] call diff + [375] (byte) diff::return#1 ← (byte) diff::return#4 to:legal::@6 legal::@6: scope:[legal] from legal::@5 - [310] (byte~) legal::$4 ← (byte) diff::return#1 - [311] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 + [376] (byte~) legal::$4 ← (byte) diff::return#1 + [377] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 to:legal::@return legal::@3: scope:[legal] from legal::@6 - [312] (byte) legal::i#1 ← ++ (byte) legal::i#2 + [378] (byte) legal::i#1 ← ++ (byte) legal::i#2 to:legal::@1 (byte()) diff((byte) diff::a , (byte) diff::b) diff: scope:[diff] from legal::@4 legal::@5 - [313] (byte) diff::b#2 ← phi( legal::@4/(byte) diff::b#0 legal::@5/(byte) diff::b#1 ) - [313] (byte) diff::a#2 ← phi( legal::@4/(byte) diff::a#0 legal::@5/(byte) diff::a#1 ) - [314] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 + [379] (byte) diff::b#2 ← phi( legal::@4/(byte) diff::b#0 legal::@5/(byte) diff::b#1 ) + [379] (byte) diff::a#2 ← phi( legal::@4/(byte) diff::a#0 legal::@5/(byte) diff::a#1 ) + [380] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 to:diff::@2 diff::@2: scope:[diff] from diff - [315] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 + [381] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 to:diff::@return diff::@return: scope:[diff] from diff::@1 diff::@2 - [316] (byte) diff::return#4 ← phi( diff::@1/(byte) diff::return#2 diff::@2/(byte) diff::return#3 ) - [317] return + [382] (byte) diff::return#4 ← phi( diff::@1/(byte) diff::return#2 diff::@2/(byte) diff::return#3 ) + [383] return to:@return diff::@1: scope:[diff] from diff - [318] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 + [384] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 to:diff::@return null depth in calling loop Loop head: queen::@1 tails: queen::@3 blocks: queen::@3 queen::@4 queen::@6 queen::@7 queen::@5 queen::@2 queen::@1 in scope queen @@ -5409,7 +6372,26 @@ null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding:: 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 VARIABLE REGISTER WEIGHTS -(dword) count loadstore 0.5833333333333333 +(byte) MOS6526_CIA::INTERRUPT +(byte) MOS6526_CIA::PORT_A +(byte) MOS6526_CIA::PORT_A_DDR +(byte) MOS6526_CIA::PORT_B +(byte) MOS6526_CIA::PORT_B_DDR +(byte) MOS6526_CIA::SERIAL_DATA +(word) MOS6526_CIA::TIMER_A +(byte) MOS6526_CIA::TIMER_A_CONTROL +(word) MOS6526_CIA::TIMER_B +(byte) MOS6526_CIA::TIMER_B_CONTROL +(byte) MOS6526_CIA::TOD_10THS +(byte) MOS6526_CIA::TOD_HOURS +(byte) MOS6526_CIA::TOD_MIN +(byte) MOS6526_CIA::TOD_SEC +(byte) TIME_OF_DAY::HOURS +(byte) TIME_OF_DAY::MIN +(byte) TIME_OF_DAY::SEC +(byte) TIME_OF_DAY::TENTHS +(struct TIME_OF_DAY) TOD_ZERO loadstore = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } +(dword) count loadstore 2.5316455699493675E9 (byte()) diff((byte) diff::a , (byte) diff::b) (byte) diff::a (byte) diff::a#0 1.000000000001E12 @@ -5485,9 +6467,9 @@ VARIABLE REGISTER WEIGHTS (byte) printf_char::ch#2 2.00000000000002E14 (byte) printf_char::ch#3 1.11000000000001E28 (void()) printf_cls() -(byte*) printf_cursor_ptr loadstore 1.4683544303797465E27 -(byte) printf_cursor_x loadstore 2.837837837837838E26 -(byte) printf_cursor_y loadstore 2.0251572327044023E27 +(byte*) printf_cursor_ptr loadstore 1.2340425531914892E27 +(byte) printf_cursor_x loadstore 2.359550561797753E26 +(byte) printf_cursor_y loadstore 1.7037037037037037E27 (byte) printf_format_number::justify_left (byte) printf_format_number::min_length (byte) printf_format_number::radix @@ -5535,9 +6517,9 @@ VARIABLE REGISTER WEIGHTS (byte) printf_padding::length#0 2.00000000000002E14 (byte) printf_padding::length#1 2.00000000000002E14 (byte) printf_padding::length#2 2.00000000000002E14 -(byte) printf_padding::length#4 1.6666666666671665E26 +(byte) printf_padding::length#6 1.6666666666671665E26 (byte) printf_padding::pad -(byte) printf_padding::pad#5 1.6666666666666666E26 +(byte) printf_padding::pad#7 1.6666666666666666E26 (void()) printf_scroll() (byte*~) printf_scroll::$4 2.0E29 (void()) printf_str((byte*) printf_str::str) @@ -5546,8 +6528,15 @@ VARIABLE REGISTER WEIGHTS (byte*) printf_str::str (byte*) printf_str::str#0 4.285714285714285E25 (byte*) printf_str::str#1 2.00000000000002E14 -(byte*) printf_str::str#10 2.000000000005E26 -(byte*) printf_str::str#11 1.100000000000002E15 +(byte*) printf_str::str#13 2.000000000005E26 +(byte*) printf_str::str#15 1.100000000000002E15 +(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) +(struct printf_format_string) printf_string::format +(byte) printf_string::format_justify_left +(byte) printf_string::format_min_length +(signed byte) printf_string::len +(signed byte) printf_string::padding +(byte*) printf_string::str (void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) (struct printf_format_number) printf_uchar::format (byte) printf_uchar::format_justify_left @@ -5578,7 +6567,9 @@ VARIABLE REGISTER WEIGHTS (byte) printf_ulong::format_upper_case (byte) printf_ulong::format_zero_padding (dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 37.33333333333333 +(dword) printf_ulong::uvalue#0 22.0 +(dword) printf_ulong::uvalue#1 22.0 +(dword) printf_ulong::uvalue#2 61.5 __stackcall (void()) queen((byte) queen::row) (byte~) queen::$1 2.00000000002E11 (byte~) queen::$4 2.00000000002E11 @@ -5595,7 +6586,7 @@ __stackcall (void()) queen((byte) queen::row) (byte*) strlen::str (byte*) strlen::str#0 2.0E27 (byte*) strlen::str#1 5.50000000000001E14 -(byte*) strlen::str#2 1.0000000000003332E27 +(byte*) strlen::str#3 1.0000000000003332E27 (byte*()) strupr((byte*) strupr::str) (byte~) strupr::$0 2.0E27 (byte*) strupr::return @@ -5604,6 +6595,65 @@ __stackcall (void()) queen((byte) queen::row) (byte*) strupr::src#2 7.142857142858572E26 (byte*) strupr::str (byte*) strupr::str#0 5.50000000000001E14 +(void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) +(struct TIME_OF_DAY) tod_init::tod +(byte) tod_init::tod_HOURS +(byte) tod_init::tod_HOURS#0 37.33333333333333 +(byte) tod_init::tod_MIN +(byte) tod_init::tod_MIN#0 22.4 +(byte) tod_init::tod_SEC +(byte) tod_init::tod_SEC#0 16.0 +(byte) tod_init::tod_TENTHS +(byte) tod_init::tod_TENTHS#0 12.444444444444443 +(struct TIME_OF_DAY()) tod_read() +(byte) tod_read::hours +(byte) tod_read::mins +(struct TIME_OF_DAY) tod_read::return +(byte) tod_read::return_HOURS +(byte) tod_read::return_HOURS#0 12.444444444444443 +(byte) tod_read::return_HOURS#2 5.5 +(byte) tod_read::return_MIN +(byte) tod_read::return_MIN#0 16.0 +(byte) tod_read::return_MIN#2 5.5 +(byte) tod_read::return_SEC +(byte) tod_read::return_SEC#0 22.4 +(byte) tod_read::return_SEC#2 5.5 +(byte) tod_read::return_TENTHS +(byte) tod_read::return_TENTHS#0 37.33333333333333 +(byte) tod_read::return_TENTHS#2 5.5 +(byte) tod_read::secs +(byte) tod_read::tenths +(byte) tod_read::tod_HOURS +(byte) tod_read::tod_MIN +(byte) tod_read::tod_SEC +(byte) tod_read::tod_TENTHS +(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) +(byte~) tod_str::$0 202.0 +(byte~) tod_str::$1 202.0 +(byte~) tod_str::$10 202.0 +(byte~) tod_str::$11 202.0 +(byte~) tod_str::$12 202.0 +(byte~) tod_str::$13 202.0 +(byte~) tod_str::$14 202.0 +(byte~) tod_str::$15 202.0 +(byte~) tod_str::$2 202.0 +(byte~) tod_str::$3 202.0 +(byte~) tod_str::$4 202.0 +(byte~) tod_str::$5 202.0 +(byte~) tod_str::$6 202.0 +(byte~) tod_str::$7 202.0 +(byte~) tod_str::$8 202.0 +(byte~) tod_str::$9 202.0 +(byte*) tod_str::return +(struct TIME_OF_DAY) tod_str::tod +(byte) tod_str::tod_HOURS +(byte) tod_str::tod_HOURS#0 53.25 +(byte) tod_str::tod_MIN +(byte) tod_str::tod_MIN#0 19.363636363636363 +(byte) tod_str::tod_SEC +(byte) tod_str::tod_SEC#0 11.833333333333332 +(byte) tod_str::tod_TENTHS +(byte) tod_str::tod_TENTHS#0 8.52 (byte()) toupper((byte) toupper::ch) (byte) toupper::ch (byte) toupper::ch#0 1.6999999999999998E28 @@ -5724,6 +6774,15 @@ __stackcall (void()) queen((byte) queen::row) (word) utoa_append::value#2 5018334.166666666 Initial phi equivalence classes +[ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] +[ memset::num#2 ] +[ memset::str#3 ] +[ memset::c#4 ] +[ memset::dst#2 memset::dst#4 memset::dst#1 ] +[ memcpy::src#2 memcpy::src#1 ] +[ memcpy::dst#2 memcpy::dst#1 ] +[ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +[ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] [ printf_number_buffer::format_min_length#3 ] [ printf_number_buffer::format_justify_left#10 ] [ printf_number_buffer::format_zero_padding#10 ] @@ -5732,21 +6791,19 @@ Initial phi equivalence classes [ printf_number_buffer::format_upper_case#10 ] [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -[ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -[ printf_padding::pad#5 ] +[ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +[ printf_padding::pad#7 ] [ printf_padding::i#2 printf_padding::i#1 ] -[ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -[ memset::num#2 ] -[ memset::str#3 ] -[ memset::c#4 ] -[ memset::dst#2 memset::dst#4 memset::dst#1 ] -[ memcpy::src#2 memcpy::src#1 ] -[ memcpy::dst#2 memcpy::dst#1 ] -[ printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] [ strupr::src#2 strupr::str#0 strupr::src#1 ] [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -[ strlen::str#2 strlen::str#1 strlen::str#0 ] +[ strlen::str#3 strlen::str#1 strlen::str#0 ] [ strlen::len#2 strlen::len#1 ] +[ ultoa::digit#2 ultoa::digit#1 ] +[ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] +[ ultoa::started#2 ultoa::started#4 ] +[ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] +[ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] +[ ultoa_append::digit#2 ultoa_append::digit#1 ] [ utoa::digit#2 utoa::digit#1 ] [ utoa::value#2 utoa::value#6 utoa::value#0 ] [ utoa::started#2 utoa::started#4 ] @@ -5763,12 +6820,6 @@ Initial phi equivalence classes [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] [ uctoa_append::digit#2 uctoa_append::digit#1 ] -[ ultoa::digit#2 ultoa::digit#1 ] -[ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] -[ ultoa::started#2 ultoa::started#4 ] -[ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] -[ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] -[ ultoa_append::digit#2 ultoa_append::digit#1 ] [ legal::i#2 legal::i#1 ] [ legal::return#4 ] [ diff::a#2 diff::a#0 diff::a#1 ] @@ -5778,15 +6829,54 @@ Added variable printf_cursor_x to live range equivalence class [ printf_cursor_x Added variable printf_cursor_y to live range equivalence class [ printf_cursor_y ] Added variable printf_cursor_ptr to live range equivalence class [ printf_cursor_ptr ] Added variable count to live range equivalence class [ count ] -Added variable strlen::return#2 to live range equivalence class [ strlen::return#2 ] -Added variable printf_number_buffer::$19 to live range equivalence class [ printf_number_buffer::$19 ] -Added variable printf_scroll::$4 to live range equivalence class [ printf_scroll::$4 ] -Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] +Added variable tod_init::tod_TENTHS#0 to live range equivalence class [ tod_init::tod_TENTHS#0 ] +Added variable tod_init::tod_SEC#0 to live range equivalence class [ tod_init::tod_SEC#0 ] +Added variable tod_init::tod_MIN#0 to live range equivalence class [ tod_init::tod_MIN#0 ] +Added variable tod_init::tod_HOURS#0 to live range equivalence class [ tod_init::tod_HOURS#0 ] +Added variable tod_read::return_TENTHS#2 to live range equivalence class [ tod_read::return_TENTHS#2 ] +Added variable tod_read::return_SEC#2 to live range equivalence class [ tod_read::return_SEC#2 ] +Added variable tod_read::return_MIN#2 to live range equivalence class [ tod_read::return_MIN#2 ] +Added variable tod_read::return_HOURS#2 to live range equivalence class [ tod_read::return_HOURS#2 ] +Added variable tod_str::tod_TENTHS#0 to live range equivalence class [ tod_str::tod_TENTHS#0 ] +Added variable tod_str::tod_SEC#0 to live range equivalence class [ tod_str::tod_SEC#0 ] +Added variable tod_str::tod_MIN#0 to live range equivalence class [ tod_str::tod_MIN#0 ] +Added variable tod_str::tod_HOURS#0 to live range equivalence class [ tod_str::tod_HOURS#0 ] Added variable printf_str::ch#0 to live range equivalence class [ printf_str::ch#0 ] Added variable printf_ln::$0 to live range equivalence class [ printf_ln::$0 ] Added variable printf_ln::$1 to live range equivalence class [ printf_ln::$1 ] +Added variable printf_scroll::$4 to live range equivalence class [ printf_scroll::$4 ] +Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] +Added variable strlen::return#2 to live range equivalence class [ strlen::return#2 ] +Added variable printf_number_buffer::$19 to live range equivalence class [ printf_number_buffer::$19 ] Added variable toupper::return#3 to live range equivalence class [ toupper::return#3 ] Added variable strupr::$0 to live range equivalence class [ strupr::$0 ] +Added variable ultoa::$11 to live range equivalence class [ ultoa::$11 ] +Added variable ultoa::buffer#3 to live range equivalence class [ ultoa::buffer#3 ] +Added variable ultoa::$10 to live range equivalence class [ ultoa::$10 ] +Added variable ultoa::digit_value#0 to live range equivalence class [ ultoa::digit_value#0 ] +Added variable ultoa_append::buffer#0 to live range equivalence class [ ultoa_append::buffer#0 ] +Added variable ultoa_append::sub#0 to live range equivalence class [ ultoa_append::sub#0 ] +Added variable ultoa_append::return#0 to live range equivalence class [ ultoa_append::return#0 ] +Added variable tod_str::$0 to live range equivalence class [ tod_str::$0 ] +Added variable tod_str::$1 to live range equivalence class [ tod_str::$1 ] +Added variable tod_str::$2 to live range equivalence class [ tod_str::$2 ] +Added variable tod_str::$3 to live range equivalence class [ tod_str::$3 ] +Added variable tod_str::$4 to live range equivalence class [ tod_str::$4 ] +Added variable tod_str::$5 to live range equivalence class [ tod_str::$5 ] +Added variable tod_str::$6 to live range equivalence class [ tod_str::$6 ] +Added variable tod_str::$7 to live range equivalence class [ tod_str::$7 ] +Added variable tod_str::$8 to live range equivalence class [ tod_str::$8 ] +Added variable tod_str::$9 to live range equivalence class [ tod_str::$9 ] +Added variable tod_str::$10 to live range equivalence class [ tod_str::$10 ] +Added variable tod_str::$11 to live range equivalence class [ tod_str::$11 ] +Added variable tod_str::$12 to live range equivalence class [ tod_str::$12 ] +Added variable tod_str::$13 to live range equivalence class [ tod_str::$13 ] +Added variable tod_str::$14 to live range equivalence class [ tod_str::$14 ] +Added variable tod_str::$15 to live range equivalence class [ tod_str::$15 ] +Added variable tod_read::return_HOURS#0 to live range equivalence class [ tod_read::return_HOURS#0 ] +Added variable tod_read::return_MIN#0 to live range equivalence class [ tod_read::return_MIN#0 ] +Added variable tod_read::return_SEC#0 to live range equivalence class [ tod_read::return_SEC#0 ] +Added variable tod_read::return_TENTHS#0 to live range equivalence class [ tod_read::return_TENTHS#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 ] @@ -5802,26 +6892,28 @@ Added variable legal::column#0 to live range equivalence class [ legal::column#0 Added variable legal::return#0 to live range equivalence class [ legal::return#0 ] Added variable queen::$1 to live range equivalence class [ queen::$1 ] Added variable queen::$4 to live range equivalence class [ queen::$4 ] -Added variable printf_ulong::uvalue#0 to live range equivalence class [ printf_ulong::uvalue#0 ] Added variable uctoa::buffer#3 to live range equivalence class [ uctoa::buffer#3 ] Added variable uctoa::digit_value#0 to live range equivalence class [ uctoa::digit_value#0 ] Added variable uctoa_append::buffer#0 to live range equivalence class [ uctoa_append::buffer#0 ] Added variable uctoa_append::sub#0 to live range equivalence class [ uctoa_append::sub#0 ] Added variable uctoa_append::return#0 to live range equivalence class [ uctoa_append::return#0 ] -Added variable ultoa::$11 to live range equivalence class [ ultoa::$11 ] -Added variable ultoa::buffer#3 to live range equivalence class [ ultoa::buffer#3 ] -Added variable ultoa::$10 to live range equivalence class [ ultoa::$10 ] -Added variable ultoa::digit_value#0 to live range equivalence class [ ultoa::digit_value#0 ] -Added variable ultoa_append::buffer#0 to live range equivalence class [ ultoa_append::buffer#0 ] -Added variable ultoa_append::sub#0 to live range equivalence class [ ultoa_append::sub#0 ] -Added variable ultoa_append::return#0 to live range equivalence class [ ultoa_append::return#0 ] Added variable legal::$0 to live range equivalence class [ legal::$0 ] Added variable diff::return#0 to live range equivalence class [ diff::return#0 ] Added variable legal::$3 to live range equivalence class [ legal::$3 ] Added variable diff::return#1 to live range equivalence class [ diff::return#1 ] Added variable legal::$4 to live range equivalence class [ legal::$4 ] Added variable printf_buffer to live range equivalence class [ printf_buffer ] +Added variable TOD_ZERO to live range equivalence class [ TOD_ZERO ] Complete equivalence classes +[ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] +[ memset::num#2 ] +[ memset::str#3 ] +[ memset::c#4 ] +[ memset::dst#2 memset::dst#4 memset::dst#1 ] +[ memcpy::src#2 memcpy::src#1 ] +[ memcpy::dst#2 memcpy::dst#1 ] +[ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +[ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] [ printf_number_buffer::format_min_length#3 ] [ printf_number_buffer::format_justify_left#10 ] [ printf_number_buffer::format_zero_padding#10 ] @@ -5830,21 +6922,19 @@ Complete equivalence classes [ printf_number_buffer::format_upper_case#10 ] [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -[ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -[ printf_padding::pad#5 ] +[ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +[ printf_padding::pad#7 ] [ printf_padding::i#2 printf_padding::i#1 ] -[ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -[ memset::num#2 ] -[ memset::str#3 ] -[ memset::c#4 ] -[ memset::dst#2 memset::dst#4 memset::dst#1 ] -[ memcpy::src#2 memcpy::src#1 ] -[ memcpy::dst#2 memcpy::dst#1 ] -[ printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] [ strupr::src#2 strupr::str#0 strupr::src#1 ] [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -[ strlen::str#2 strlen::str#1 strlen::str#0 ] +[ strlen::str#3 strlen::str#1 strlen::str#0 ] [ strlen::len#2 strlen::len#1 ] +[ ultoa::digit#2 ultoa::digit#1 ] +[ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] +[ ultoa::started#2 ultoa::started#4 ] +[ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] +[ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] +[ ultoa_append::digit#2 ultoa_append::digit#1 ] [ utoa::digit#2 utoa::digit#1 ] [ utoa::value#2 utoa::value#6 utoa::value#0 ] [ utoa::started#2 utoa::started#4 ] @@ -5861,12 +6951,6 @@ Complete equivalence classes [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] [ uctoa_append::digit#2 uctoa_append::digit#1 ] -[ ultoa::digit#2 ultoa::digit#1 ] -[ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] -[ ultoa::started#2 ultoa::started#4 ] -[ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] -[ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] -[ ultoa_append::digit#2 ultoa_append::digit#1 ] [ legal::i#2 legal::i#1 ] [ legal::return#4 ] [ diff::a#2 diff::a#0 diff::a#1 ] @@ -5876,15 +6960,54 @@ Complete equivalence classes [ printf_cursor_y ] [ printf_cursor_ptr ] [ count ] -[ strlen::return#2 ] -[ printf_number_buffer::$19 ] -[ printf_scroll::$4 ] -[ memset::end#0 ] +[ tod_init::tod_TENTHS#0 ] +[ tod_init::tod_SEC#0 ] +[ tod_init::tod_MIN#0 ] +[ tod_init::tod_HOURS#0 ] +[ tod_read::return_TENTHS#2 ] +[ tod_read::return_SEC#2 ] +[ tod_read::return_MIN#2 ] +[ tod_read::return_HOURS#2 ] +[ tod_str::tod_TENTHS#0 ] +[ tod_str::tod_SEC#0 ] +[ tod_str::tod_MIN#0 ] +[ tod_str::tod_HOURS#0 ] [ printf_str::ch#0 ] [ printf_ln::$0 ] [ printf_ln::$1 ] +[ printf_scroll::$4 ] +[ memset::end#0 ] +[ strlen::return#2 ] +[ printf_number_buffer::$19 ] [ toupper::return#3 ] [ strupr::$0 ] +[ ultoa::$11 ] +[ ultoa::buffer#3 ] +[ ultoa::$10 ] +[ ultoa::digit_value#0 ] +[ ultoa_append::buffer#0 ] +[ ultoa_append::sub#0 ] +[ ultoa_append::return#0 ] +[ tod_str::$0 ] +[ tod_str::$1 ] +[ tod_str::$2 ] +[ tod_str::$3 ] +[ tod_str::$4 ] +[ tod_str::$5 ] +[ tod_str::$6 ] +[ tod_str::$7 ] +[ tod_str::$8 ] +[ tod_str::$9 ] +[ tod_str::$10 ] +[ tod_str::$11 ] +[ tod_str::$12 ] +[ tod_str::$13 ] +[ tod_str::$14 ] +[ tod_str::$15 ] +[ tod_read::return_HOURS#0 ] +[ tod_read::return_MIN#0 ] +[ tod_read::return_SEC#0 ] +[ tod_read::return_TENTHS#0 ] [ utoa::$11 ] [ utoa::buffer#3 ] [ utoa::$10 ] @@ -5900,122 +7023,148 @@ Complete equivalence classes [ legal::return#0 ] [ queen::$1 ] [ queen::$4 ] -[ printf_ulong::uvalue#0 ] [ uctoa::buffer#3 ] [ uctoa::digit_value#0 ] [ uctoa_append::buffer#0 ] [ uctoa_append::sub#0 ] [ uctoa_append::return#0 ] -[ ultoa::$11 ] -[ ultoa::buffer#3 ] -[ ultoa::$10 ] -[ ultoa::digit_value#0 ] -[ ultoa_append::buffer#0 ] -[ ultoa_append::sub#0 ] -[ ultoa_append::return#0 ] [ legal::$0 ] [ diff::return#0 ] [ legal::$3 ] [ diff::return#1 ] [ legal::$4 ] [ printf_buffer ] -Allocated zp[1]:2 [ printf_number_buffer::format_min_length#3 ] -Allocated zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] -Allocated zp[1]:4 [ printf_number_buffer::format_zero_padding#10 ] -Allocated zp[2]:5 [ printf_number_buffer::buffer_digits#10 ] -Allocated zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Allocated zp[1]:8 [ printf_number_buffer::format_upper_case#10 ] -Allocated zp[1]:9 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -Allocated zp[1]:10 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Allocated zp[1]:11 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Allocated zp[1]:12 [ printf_padding::pad#5 ] -Allocated zp[1]:13 [ printf_padding::i#2 printf_padding::i#1 ] -Allocated zp[1]:14 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -Allocated zp[2]:15 [ memset::num#2 ] -Allocated zp[2]:17 [ memset::str#3 ] -Allocated zp[1]:19 [ memset::c#4 ] -Allocated zp[2]:20 [ memset::dst#2 memset::dst#4 memset::dst#1 ] -Allocated zp[2]:22 [ memcpy::src#2 memcpy::src#1 ] -Allocated zp[2]:24 [ memcpy::dst#2 memcpy::dst#1 ] -Allocated zp[2]:26 [ printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] -Allocated zp[2]:28 [ strupr::src#2 strupr::str#0 strupr::src#1 ] -Allocated zp[1]:30 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -Allocated zp[2]:31 [ strlen::str#2 strlen::str#1 strlen::str#0 ] -Allocated zp[2]:33 [ strlen::len#2 strlen::len#1 ] -Allocated zp[1]:35 [ utoa::digit#2 utoa::digit#1 ] -Allocated zp[2]:36 [ utoa::value#2 utoa::value#6 utoa::value#0 ] -Allocated zp[1]:38 [ utoa::started#2 utoa::started#4 ] -Allocated zp[2]:39 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] -Allocated zp[2]:41 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] -Allocated zp[1]:43 [ utoa_append::digit#2 utoa_append::digit#1 ] -Allocated zp[1]:44 [ print::i#2 print::i#1 ] -Allocated zp[1]:45 [ print::i1#2 print::i1#1 ] -Allocated zp[1]:46 [ print::j#2 print::j#1 ] -Allocated zp[1]:47 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] -Allocated zp[1]:48 [ uctoa::digit#2 uctoa::digit#1 ] -Allocated zp[1]:49 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -Allocated zp[1]:50 [ uctoa::started#2 uctoa::started#4 ] -Allocated zp[2]:51 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] -Allocated zp[1]:53 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Allocated zp[1]:54 [ uctoa_append::digit#2 uctoa_append::digit#1 ] -Allocated zp[1]:55 [ ultoa::digit#2 ultoa::digit#1 ] -Allocated zp[4]:56 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] -Allocated zp[1]:60 [ ultoa::started#2 ultoa::started#4 ] -Allocated zp[2]:61 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] -Allocated zp[4]:63 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] -Allocated zp[1]:67 [ ultoa_append::digit#2 ultoa_append::digit#1 ] -Allocated zp[1]:68 [ legal::i#2 legal::i#1 ] -Allocated zp[1]:69 [ legal::return#4 ] -Allocated zp[1]:70 [ diff::a#2 diff::a#0 diff::a#1 ] -Allocated zp[1]:71 [ diff::b#2 diff::b#0 diff::b#1 ] -Allocated zp[1]:72 [ diff::return#4 diff::return#2 diff::return#3 ] -Allocated zp[1]:73 [ printf_cursor_x ] -Allocated zp[1]:74 [ printf_cursor_y ] -Allocated zp[2]:75 [ printf_cursor_ptr ] -Allocated zp[4]:77 [ count ] -Allocated zp[2]:81 [ strlen::return#2 ] -Allocated zp[2]:83 [ printf_number_buffer::$19 ] -Allocated zp[2]:85 [ printf_scroll::$4 ] -Allocated zp[2]:87 [ memset::end#0 ] -Allocated zp[1]:89 [ printf_str::ch#0 ] -Allocated zp[2]:90 [ printf_ln::$0 ] -Allocated zp[2]:92 [ printf_ln::$1 ] -Allocated zp[1]:94 [ toupper::return#3 ] -Allocated zp[1]:95 [ strupr::$0 ] -Allocated zp[1]:96 [ utoa::$11 ] -Allocated zp[2]:97 [ utoa::buffer#3 ] -Allocated zp[1]:99 [ utoa::$10 ] -Allocated zp[2]:100 [ utoa::digit_value#0 ] -Allocated zp[2]:102 [ utoa_append::buffer#0 ] -Allocated zp[2]:104 [ utoa_append::sub#0 ] -Allocated zp[2]:106 [ utoa_append::return#0 ] -Allocated zp[1]:108 [ queen::row#0 ] -Allocated zp[1]:109 [ queen::r ] -Allocated zp[1]:110 [ queen::column ] -Allocated zp[1]:111 [ legal::row#0 ] -Allocated zp[1]:112 [ legal::column#0 ] -Allocated zp[1]:113 [ legal::return#0 ] -Allocated zp[1]:114 [ queen::$1 ] -Allocated zp[1]:115 [ queen::$4 ] -Allocated zp[4]:116 [ printf_ulong::uvalue#0 ] -Allocated zp[2]:120 [ uctoa::buffer#3 ] -Allocated zp[1]:122 [ uctoa::digit_value#0 ] -Allocated zp[2]:123 [ uctoa_append::buffer#0 ] -Allocated zp[1]:125 [ uctoa_append::sub#0 ] -Allocated zp[1]:126 [ uctoa_append::return#0 ] -Allocated zp[1]:127 [ ultoa::$11 ] -Allocated zp[2]:128 [ ultoa::buffer#3 ] -Allocated zp[1]:130 [ ultoa::$10 ] -Allocated zp[4]:131 [ ultoa::digit_value#0 ] -Allocated zp[2]:135 [ ultoa_append::buffer#0 ] -Allocated zp[4]:137 [ ultoa_append::sub#0 ] -Allocated zp[4]:141 [ ultoa_append::return#0 ] -Allocated zp[1]:145 [ legal::$0 ] -Allocated zp[1]:146 [ diff::return#0 ] -Allocated zp[1]:147 [ legal::$3 ] -Allocated zp[1]:148 [ diff::return#1 ] -Allocated zp[1]:149 [ legal::$4 ] +[ TOD_ZERO ] +Allocated zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] +Allocated zp[2]:4 [ memset::num#2 ] +Allocated zp[2]:6 [ memset::str#3 ] +Allocated zp[1]:8 [ memset::c#4 ] +Allocated zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] +Allocated zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] +Allocated zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] +Allocated zp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +Allocated zp[4]:16 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] +Allocated zp[1]:20 [ printf_number_buffer::format_min_length#3 ] +Allocated zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] +Allocated zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] +Allocated zp[2]:23 [ printf_number_buffer::buffer_digits#10 ] +Allocated zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Allocated zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Allocated zp[1]:27 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] +Allocated zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Allocated zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Allocated zp[1]:30 [ printf_padding::pad#7 ] +Allocated zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] +Allocated zp[2]:32 [ strupr::src#2 strupr::str#0 strupr::src#1 ] +Allocated zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] +Allocated zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 ] +Allocated zp[2]:37 [ strlen::len#2 strlen::len#1 ] +Allocated zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] +Allocated zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] +Allocated zp[1]:44 [ ultoa::started#2 ultoa::started#4 ] +Allocated zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] +Allocated zp[4]:47 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] +Allocated zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] +Allocated zp[1]:52 [ utoa::digit#2 utoa::digit#1 ] +Allocated zp[2]:53 [ utoa::value#2 utoa::value#6 utoa::value#0 ] +Allocated zp[1]:55 [ utoa::started#2 utoa::started#4 ] +Allocated zp[2]:56 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] +Allocated zp[2]:58 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] +Allocated zp[1]:60 [ utoa_append::digit#2 utoa_append::digit#1 ] +Allocated zp[1]:61 [ print::i#2 print::i#1 ] +Allocated zp[1]:62 [ print::i1#2 print::i1#1 ] +Allocated zp[1]:63 [ print::j#2 print::j#1 ] +Allocated zp[1]:64 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +Allocated zp[1]:65 [ uctoa::digit#2 uctoa::digit#1 ] +Allocated zp[1]:66 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] +Allocated zp[1]:67 [ uctoa::started#2 uctoa::started#4 ] +Allocated zp[2]:68 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] +Allocated zp[1]:70 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] +Allocated zp[1]:71 [ uctoa_append::digit#2 uctoa_append::digit#1 ] +Allocated zp[1]:72 [ legal::i#2 legal::i#1 ] +Allocated zp[1]:73 [ legal::return#4 ] +Allocated zp[1]:74 [ diff::a#2 diff::a#0 diff::a#1 ] +Allocated zp[1]:75 [ diff::b#2 diff::b#0 diff::b#1 ] +Allocated zp[1]:76 [ diff::return#4 diff::return#2 diff::return#3 ] +Allocated zp[1]:77 [ printf_cursor_x ] +Allocated zp[1]:78 [ printf_cursor_y ] +Allocated zp[2]:79 [ printf_cursor_ptr ] +Allocated zp[4]:81 [ count ] +Allocated zp[1]:85 [ tod_init::tod_TENTHS#0 ] +Allocated zp[1]:86 [ tod_init::tod_SEC#0 ] +Allocated zp[1]:87 [ tod_init::tod_MIN#0 ] +Allocated zp[1]:88 [ tod_init::tod_HOURS#0 ] +Allocated zp[1]:89 [ tod_read::return_TENTHS#2 ] +Allocated zp[1]:90 [ tod_read::return_SEC#2 ] +Allocated zp[1]:91 [ tod_read::return_MIN#2 ] +Allocated zp[1]:92 [ tod_read::return_HOURS#2 ] +Allocated zp[1]:93 [ tod_str::tod_TENTHS#0 ] +Allocated zp[1]:94 [ tod_str::tod_SEC#0 ] +Allocated zp[1]:95 [ tod_str::tod_MIN#0 ] +Allocated zp[1]:96 [ tod_str::tod_HOURS#0 ] +Allocated zp[1]:97 [ printf_str::ch#0 ] +Allocated zp[2]:98 [ printf_ln::$0 ] +Allocated zp[2]:100 [ printf_ln::$1 ] +Allocated zp[2]:102 [ printf_scroll::$4 ] +Allocated zp[2]:104 [ memset::end#0 ] +Allocated zp[2]:106 [ strlen::return#2 ] +Allocated zp[2]:108 [ printf_number_buffer::$19 ] +Allocated zp[1]:110 [ toupper::return#3 ] +Allocated zp[1]:111 [ strupr::$0 ] +Allocated zp[1]:112 [ ultoa::$11 ] +Allocated zp[2]:113 [ ultoa::buffer#3 ] +Allocated zp[1]:115 [ ultoa::$10 ] +Allocated zp[4]:116 [ ultoa::digit_value#0 ] +Allocated zp[2]:120 [ ultoa_append::buffer#0 ] +Allocated zp[4]:122 [ ultoa_append::sub#0 ] +Allocated zp[4]:126 [ ultoa_append::return#0 ] +Allocated zp[1]:130 [ tod_str::$0 ] +Allocated zp[1]:131 [ tod_str::$1 ] +Allocated zp[1]:132 [ tod_str::$2 ] +Allocated zp[1]:133 [ tod_str::$3 ] +Allocated zp[1]:134 [ tod_str::$4 ] +Allocated zp[1]:135 [ tod_str::$5 ] +Allocated zp[1]:136 [ tod_str::$6 ] +Allocated zp[1]:137 [ tod_str::$7 ] +Allocated zp[1]:138 [ tod_str::$8 ] +Allocated zp[1]:139 [ tod_str::$9 ] +Allocated zp[1]:140 [ tod_str::$10 ] +Allocated zp[1]:141 [ tod_str::$11 ] +Allocated zp[1]:142 [ tod_str::$12 ] +Allocated zp[1]:143 [ tod_str::$13 ] +Allocated zp[1]:144 [ tod_str::$14 ] +Allocated zp[1]:145 [ tod_str::$15 ] +Allocated zp[1]:146 [ tod_read::return_HOURS#0 ] +Allocated zp[1]:147 [ tod_read::return_MIN#0 ] +Allocated zp[1]:148 [ tod_read::return_SEC#0 ] +Allocated zp[1]:149 [ tod_read::return_TENTHS#0 ] +Allocated zp[1]:150 [ utoa::$11 ] +Allocated zp[2]:151 [ utoa::buffer#3 ] +Allocated zp[1]:153 [ utoa::$10 ] +Allocated zp[2]:154 [ utoa::digit_value#0 ] +Allocated zp[2]:156 [ utoa_append::buffer#0 ] +Allocated zp[2]:158 [ utoa_append::sub#0 ] +Allocated zp[2]:160 [ utoa_append::return#0 ] +Allocated zp[1]:162 [ queen::row#0 ] +Allocated zp[1]:163 [ queen::r ] +Allocated zp[1]:164 [ queen::column ] +Allocated zp[1]:165 [ legal::row#0 ] +Allocated zp[1]:166 [ legal::column#0 ] +Allocated zp[1]:167 [ legal::return#0 ] +Allocated zp[1]:168 [ queen::$1 ] +Allocated zp[1]:169 [ queen::$4 ] +Allocated zp[2]:170 [ uctoa::buffer#3 ] +Allocated zp[1]:172 [ uctoa::digit_value#0 ] +Allocated zp[2]:173 [ uctoa_append::buffer#0 ] +Allocated zp[1]:175 [ uctoa_append::sub#0 ] +Allocated zp[1]:176 [ uctoa_append::return#0 ] +Allocated zp[1]:177 [ legal::$0 ] +Allocated zp[1]:178 [ diff::return#0 ] +Allocated zp[1]:179 [ legal::$3 ] +Allocated zp[1]:180 [ diff::return#1 ] +Allocated zp[1]:181 [ legal::$4 ] Allocated mem[12] [ printf_buffer ] +Allocated mem[4] [ TOD_ZERO ] INITIAL ASM Target platform is c64basic / MOS6502X @@ -6030,12 +7179,23 @@ Target platform is c64basic / MOS6502X :BasicUpstart(__bbegin) .pc = $80d "Program" // Global Constants & labels + // The CIA#1: keyboard matrix, joystick #1/#2 + .label CIA1 = $dc00 .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 + .const OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 + .const OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 + .const OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 + .const OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e + .const OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f + .const OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b + .const OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a + .const OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 + .const OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 .const STACK_BASE = $103 - .label printf_cursor_x = $49 - .label printf_cursor_y = $4a - .label printf_cursor_ptr = $4b - .label count = $4d + .label printf_cursor_x = $4d + .label printf_cursor_y = $4e + .label printf_cursor_ptr = $4f + .label count = $51 // @begin __bbegin: jmp __b1 @@ -6085,7 +7245,7 @@ __bend: // main main: { // [9] call printf_cls - // [171] phi from main to printf_cls [phi:main->printf_cls] + // [272] phi from main to printf_cls [phi:main->printf_cls] printf_cls_from_main: jsr printf_cls // [10] phi from main to main::@1 [phi:main->main::@1] @@ -6094,9 +7254,9 @@ main: { // main::@1 __b1: // [11] call printf_str - // [104] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [45] phi from main::@1 to printf_str [phi:main::@1->printf_str] printf_str_from___b1: - // [104] phi (byte*) printf_str::str#11 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 lda #str @@ -6108,9 +7268,9 @@ main: { // main::@2 __b2: // [13] call printf_str - // [104] phi from main::@2 to printf_str [phi:main::@2->printf_str] + // [45] phi from main::@2 to printf_str [phi:main::@2->printf_str] printf_str_from___b2: - // [104] phi (byte*) printf_str::str#11 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 lda #str1 @@ -6122,440 +7282,287 @@ main: { // main::@3 __b3: // [15] call printf_uint - // [20] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] + // [238] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] printf_uint_from___b3: jsr printf_uint jmp __b4 // main::@4 __b4: - // [16] stackpush(byte) ← (byte) 1 -- _stackpushbyte_=vbuc1 + // [16] (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO + sta.z tod_init.tod_TENTHS + // [17] (byte) tod_init::tod_SEC#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC + sta.z tod_init.tod_SEC + // [18] (byte) tod_init::tod_MIN#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN + sta.z tod_init.tod_MIN + // [19] (byte) tod_init::tod_HOURS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS + sta.z tod_init.tod_HOURS + // [20] call tod_init + jsr tod_init + jmp __b5 + // main::@5 + __b5: + // [21] stackpush(byte) ← (byte) 1 -- _stackpushbyte_=vbuc1 lda #1 pha - // [17] callexecute queen -- jsr + // [22] callexecute queen -- jsr jsr queen // sideeffect stackpullbytes((number) 1) -- _stackpullbyte_1 pla + // [24] call tod_read + jsr tod_read + // [25] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 -- vbuz1=vbuz2 + lda.z tod_read.return_TENTHS + sta.z tod_read.return_TENTHS_1 + // [26] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 -- vbuz1=vbuz2 + lda.z tod_read.return_SEC + sta.z tod_read.return_SEC_1 + // [27] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 -- vbuz1=vbuz2 + lda.z tod_read.return_MIN + sta.z tod_read.return_MIN_1 + // [28] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 -- vbuz1=vbuz2 + lda.z tod_read.return_HOURS + sta.z tod_read.return_HOURS_1 + jmp __b6 + // main::@6 + __b6: + // [29] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 -- vbuz1=vbuz2 + lda.z tod_read.return_TENTHS_1 + sta.z tod_str.tod_TENTHS + // [30] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 -- vbuz1=vbuz2 + lda.z tod_read.return_SEC_1 + sta.z tod_str.tod_SEC + // [31] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 -- vbuz1=vbuz2 + lda.z tod_read.return_MIN_1 + sta.z tod_str.tod_MIN + // [32] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuz1=vbuz2 + lda.z tod_read.return_HOURS_1 + sta.z tod_str.tod_HOURS + // [33] call tod_str + jsr tod_str + // [34] phi from main::@6 to main::@7 [phi:main::@6->main::@7] + __b7_from___b6: + jmp __b7 + // main::@7 + __b7: + // [35] call printf_str + // [45] phi from main::@7 to printf_str [phi:main::@7->printf_str] + printf_str_from___b7: + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str2 [phi:main::@7->printf_str#0] -- pbuz1=pbuc1 + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + jmp __b8 + // main::@8 + __b8: + // [36] (dword) printf_ulong::uvalue#0 ← (dword) count -- vduz1=vduz2 + lda.z count + sta.z printf_ulong.uvalue + lda.z count+1 + sta.z printf_ulong.uvalue+1 + lda.z count+2 + sta.z printf_ulong.uvalue+2 + lda.z count+3 + sta.z printf_ulong.uvalue+3 + // [37] call printf_ulong + // [101] phi from main::@8 to printf_ulong [phi:main::@8->printf_ulong] + printf_ulong_from___b8: + // [101] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#0 [phi:main::@8->printf_ulong#0] -- register_copy + jsr printf_ulong + // [38] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + __b9_from___b8: + jmp __b9 + // main::@9 + __b9: + // [39] call printf_str + // [45] phi from main::@9 to printf_str [phi:main::@9->printf_str] + printf_str_from___b9: + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str3 [phi:main::@9->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + // [40] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + __b10_from___b9: + jmp __b10 + // main::@10 + __b10: + // [41] call printf_string + // [97] phi from main::@10 to printf_string [phi:main::@10->printf_string] + printf_string_from___b10: + jsr printf_string + // [42] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + __b11_from___b10: + jmp __b11 + // main::@11 + __b11: + // [43] call printf_str + // [45] phi from main::@11 to printf_str [phi:main::@11->printf_str] + printf_str_from___b11: + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str4 [phi:main::@11->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str jmp __breturn // main::@return __breturn: - // [19] return + // [44] return rts str: .text " - n queens problem using backtracking -" .byte 0 - str1: .text @"\nNumber of queens:" + str1: .text @"\nnumber of queens:" + .byte 0 + str2: .text @"\nsolutions: " + .byte 0 + str3: .text " time: " + .byte 0 + str4: .text @".\n" .byte 0 } - // printf_uint -// Print an unsigned int using a specific format -printf_uint: { - .label uvalue = 8 - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 + // printf_str +// Print a zero-terminated string +// Handles escape codes such as newline +// printf_str(byte* zp(2) str) +printf_str: { + .label ch = $61 + .label str = 2 + // [46] 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___b4: + __b1_from___b5: + // [46] phi (byte*) printf_str::str#13 = (byte*) printf_str::str#15 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy jmp __b1 - // printf_uint::@1 + // printf_str::@1 __b1: - // [21] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [22] call utoa - // Format number into buffer - // [143] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] - utoa_from___b1: - jsr utoa jmp __b2 - // printf_uint::@2 + // printf_str::@2 __b2: - // [23] (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 - // [24] call printf_number_buffer - // Print using format - // [26] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [26] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [26] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy - // [26] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [26] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [26] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [26] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_uint::@return - __breturn: - // [25] return - rts -} - // printf_number_buffer -// Print the contents of the number buffer using a specific format. -// This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp(7) buffer_sign, byte* zp(5) buffer_digits, byte zp(2) format_min_length, byte zp(3) format_justify_left, byte zp(4) format_zero_padding, byte zp(8) format_upper_case) -printf_number_buffer: { - .label __19 = $53 - .label buffer_sign = 7 - .label len = 9 - .label padding = $a - .label format_min_length = 2 - .label format_zero_padding = 4 - .label format_justify_left = 3 - .label buffer_digits = 5 - .label format_upper_case = 8 - // [27] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_min_length - beq __b1_from_printf_number_buffer - jmp __b6 - // printf_number_buffer::@6 - __b6: - // [28] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 - lda.z buffer_digits - sta.z strlen.str - lda.z buffer_digits+1 - sta.z strlen.str+1 - // [29] call strlen - // [137] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] - strlen_from___b6: - jsr strlen - // [30] (word) strlen::return#2 ← (word) strlen::len#2 -- vwuz1=vwuz2 - lda.z strlen.len - sta.z strlen.return - lda.z strlen.len+1 - sta.z strlen.return+1 - jmp __b14 - // printf_number_buffer::@14 - __b14: - // [31] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 -- vwuz1=vwuz2 - lda.z strlen.return - sta.z __19 - lda.z strlen.return+1 - sta.z __19+1 - // [32] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsz1=_sbyte_vwuz2 - // There is a minimum length - work out the padding - lda.z __19 - sta.z len - // [33] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b13_from___b14 - jmp __b7 - // printf_number_buffer::@7 - __b7: - // [34] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsz1=_inc_vbsz1 - inc.z len - // [35] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] - __b13_from___b14: - __b13_from___b7: - // [35] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy - jmp __b13 - // printf_number_buffer::@13 - __b13: - // [36] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsz2_minus_vbsz3 - lda.z format_min_length - sec - sbc.z len - sta.z padding - // [37] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 - lda.z padding - cmp #0 - bpl __b21_from___b13 - // [39] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] - __b1_from_printf_number_buffer: - __b1_from___b13: - // [39] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 - lda #0 - sta.z padding - jmp __b1 - // [38] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] - __b21_from___b13: - jmp __b21 - // printf_number_buffer::@21 - __b21: - // [39] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] - __b1_from___b21: - // [39] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy - jmp __b1 - // printf_number_buffer::@1 - __b1: - // [40] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - bne __b2 - jmp __b17 - // printf_number_buffer::@17 - __b17: - // [41] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - bne __b2 - jmp __b16 - // printf_number_buffer::@16 - __b16: - // [42] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b8 - jmp __b2 - // printf_number_buffer::@8 - __b8: - // [43] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [44] call printf_padding - // [63] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] - printf_padding_from___b8: - // [63] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [63] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy - jsr printf_padding - jmp __b2 - // printf_number_buffer::@2 - __b2: - // [45] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b3 - jmp __b9 - // printf_number_buffer::@9 - __b9: - // [46] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuz1=vbuz2 - lda.z buffer_sign - sta.z printf_char.ch - // [47] call printf_char - // [70] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] - printf_char_from___b9: - // [70] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy - jsr printf_char - jmp __b3 - // printf_number_buffer::@3 - __b3: - // [48] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - beq __b4 - jmp __b18 - // printf_number_buffer::@18 - __b18: - // [49] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b10 - jmp __b4 - // printf_number_buffer::@10 - __b10: - // [50] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [51] call printf_padding - // [63] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] - printf_padding_from___b10: - // [63] phi (byte) printf_padding::pad#5 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 - lda #'0' - sta.z printf_padding.pad - // [63] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy - jsr printf_padding - jmp __b4 - // printf_number_buffer::@4 - __b4: - // [52] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_upper_case - beq __b5 - jmp __b11 - // printf_number_buffer::@11 - __b11: - // [53] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 - lda.z buffer_digits - sta.z strupr.str - lda.z buffer_digits+1 - sta.z strupr.str+1 - // [54] call strupr - // [122] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] - strupr_from___b11: - jsr strupr - jmp __b5 - // printf_number_buffer::@5 - __b5: - // [55] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 - lda.z buffer_digits - sta.z printf_str.str - lda.z buffer_digits+1 - sta.z printf_str.str+1 - // [56] call printf_str - // [104] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] - printf_str_from___b5: - // [104] phi (byte*) printf_str::str#11 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy - jsr printf_str - jmp __b15 - // printf_number_buffer::@15 - __b15: - // [57] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - beq __breturn - jmp __b20 - // printf_number_buffer::@20 - __b20: - // [58] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - bne __breturn - jmp __b19 - // printf_number_buffer::@19 - __b19: - // [59] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b12 - jmp __breturn - // printf_number_buffer::@12 - __b12: - // [60] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [61] call printf_padding - // [63] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] - printf_padding_from___b12: - // [63] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [63] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy - jsr printf_padding - jmp __breturn - // printf_number_buffer::@return - __breturn: - // [62] return - rts -} - // printf_padding -// Print a padding char a number of times -// printf_padding(byte zp($c) pad, byte zp($b) length) -printf_padding: { - .label i = $d - .label length = $b - .label pad = $c - // [64] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] - __b1_from_printf_padding: - // [64] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z i - jmp __b1 - // printf_padding::@1 - __b1: - // [65] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 - lda.z i - cmp.z length - bcc __b2 - jmp __breturn - // printf_padding::@return - __breturn: - // [66] return - rts - // printf_padding::@2 - __b2: - // [67] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#5 -- vbuz1=vbuz2 - lda.z pad - sta.z printf_char.ch - // [68] call printf_char - // [70] phi from printf_padding::@2 to printf_char [phi:printf_padding::@2->printf_char] - printf_char_from___b2: - // [70] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy - jsr printf_char - jmp __b3 - // printf_padding::@3 - __b3: - // [69] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [64] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] - __b1_from___b3: - // [64] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy - jmp __b1 -} - // printf_char -// Print a single char -// If the end of the screen is reached scroll it up one char and place the cursor at the -// printf_char(byte zp($e) ch) -printf_char: { - .label ch = $e - // [71] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuz2 - lda.z ch + // [47] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) -- vbuz1=_deref_pbuz2 ldy #0 - sta (printf_cursor_ptr),y - // [72] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 - inc.z printf_cursor_ptr + lda (str),y + sta.z ch + // [48] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 -- pbuz1=_inc_pbuz1 + inc.z str bne !+ - inc.z printf_cursor_ptr+1 + inc.z str+1 !: - // [73] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 - inc.z printf_cursor_x - // [74] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 + // [49] 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: + // [50] return + rts + // printf_str::@3 + __b3: + // [51] 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: + // [52] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 -- vbuz1=vbuz2 + lda.z ch + sta.z printf_char.ch + // [53] call printf_char + // [88] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + printf_char_from___b5: + // [88] 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 + // [54] 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: + // [55] call printf_ln + jsr printf_ln + jmp __b1_from___b4 +} + // printf_ln +// Print a newline +printf_ln: { + .label __0 = $62 + .label __1 = $64 + // [56] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz2_minus_vbuz3 + sec + lda.z printf_cursor_ptr + sbc.z printf_cursor_x + sta.z __0 + lda.z printf_cursor_ptr+1 + sbc #0 + sta.z __0+1 + // [57] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 - cmp.z printf_cursor_x - bne __breturn - jmp __b1 - // printf_char::@1 - __b1: - // [75] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + clc + adc.z __0 + sta.z __1 + lda #0 + adc.z __0+1 + sta.z __1+1 + // [58] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 -- pbuz1=pbuz2 + lda.z __1 + sta.z printf_cursor_ptr + lda.z __1+1 + sta.z printf_cursor_ptr+1 + // [59] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [76] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [60] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y - // [77] call printf_scroll + // [61] call printf_scroll jsr printf_scroll jmp __breturn - // printf_char::@return + // printf_ln::@return __breturn: - // [78] return + // [62] return rts } // printf_scroll // Scroll the entire screen if the cursor is on the last line printf_scroll: { - .label __4 = $55 - // [79] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 + .label __4 = $66 + // [63] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z printf_cursor_y bne __breturn - // [80] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] + // [64] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] __b1_from_printf_scroll: jmp __b1 // printf_scroll::@1 __b1: - // [81] call memcpy - // [97] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] + // [65] call memcpy + // [81] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] memcpy_from___b1: jsr memcpy - // [82] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] + // [66] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] __b2_from___b1: jmp __b2 // printf_scroll::@2 __b2: - // [83] call memset - // [88] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] + // [67] call memset + // [72] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] memset_from___b2: - // [88] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuz1=vbuc1 + // [72] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuz1=vbuc1 lda #' ' sta.z memset.c - // [88] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 + // [72] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 lda #<$400+$28*$19-$28 sta.z memset.str lda #>$400+$28*$19-$28 sta.z memset.str+1 - // [88] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 + // [72] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 lda #<$28 sta.z memset.num lda #>$28 @@ -6564,7 +7571,7 @@ printf_scroll: { jmp __b3 // printf_scroll::@3 __b3: - // [84] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz2_minus_vwuc1 + // [68] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz2_minus_vwuc1 lda.z printf_cursor_ptr sec sbc #<$28 @@ -6572,29 +7579,29 @@ printf_scroll: { lda.z printf_cursor_ptr+1 sbc #>$28 sta.z __4+1 - // [85] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 -- pbuz1=pbuz2 + // [69] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 -- pbuz1=pbuz2 lda.z __4 sta.z printf_cursor_ptr lda.z __4+1 sta.z printf_cursor_ptr+1 - // [86] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 + // [70] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 dec.z printf_cursor_y jmp __breturn // printf_scroll::@return __breturn: - // [87] return + // [71] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($11) str, byte zp($13) c, word zp($f) num) +// memset(void* zp(6) str, byte zp(8) c, word zp(4) num) memset: { - .label end = $57 - .label dst = $14 - .label num = $f - .label str = $11 - .label c = $13 - // [89] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 + .label end = $68 + .label dst = 9 + .label num = 4 + .label str = 6 + .label c = 8 + // [73] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -6603,7 +7610,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [90] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz3 + // [74] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz3 lda.z str clc adc.z num @@ -6611,19 +7618,19 @@ memset: { lda.z str+1 adc.z num+1 sta.z end+1 - // [91] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 -- pbuz1=pbuz2 + // [75] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 -- pbuz1=pbuz2 lda.z str sta.z dst lda.z str+1 sta.z dst+1 - // [92] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [76] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: - // [92] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [76] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: - // [93] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [77] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -6633,15 +7640,15 @@ memset: { jmp __breturn // memset::@return __breturn: - // [94] return + // [78] return rts // memset::@3 __b3: - // [95] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuz2 + // [79] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuz2 lda.z c ldy #0 sta (dst),y - // [96] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + // [80] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -6656,16 +7663,16 @@ memcpy: { .label source = $400+$28 .const num = $28*$19-$28 .label src_end = source+num - .label dst = $18 - .label src = $16 - // [98] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] + .label dst = $d + .label src = $b + // [82] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] __b1_from_memcpy: - // [98] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 + // [82] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 lda #destination sta.z dst+1 - // [98] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 + // [82] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 lda #source @@ -6673,7 +7680,7 @@ memcpy: { jmp __b1 // memcpy::@1 __b1: - // [99] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 + // [83] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z src+1 cmp #>src_end bne __b2 @@ -6683,148 +7690,453 @@ memcpy: { jmp __breturn // memcpy::@return __breturn: - // [100] return + // [84] return rts // memcpy::@2 __b2: - // [101] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 + // [85] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y ldy #0 sta (dst),y - // [102] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 + // [86] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [103] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 + // [87] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [98] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] + // [82] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] __b1_from___b2: - // [98] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy - // [98] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy + // [82] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy + // [82] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy jmp __b1 } - // printf_str -// Print a zero-terminated string -// Handles escape codes such as newline -// printf_str(byte* zp($1a) str) -printf_str: { - .label ch = $59 - .label str = $1a - // [105] 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___b4: - __b1_from___b5: - // [105] phi (byte*) printf_str::str#10 = (byte*) printf_str::str#11 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy - jmp __b1 - // printf_str::@1 - __b1: - jmp __b2 - // printf_str::@2 - __b2: - // [106] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#10) -- vbuz1=_deref_pbuz2 + // printf_char +// Print a single char +// If the end of the screen is reached scroll it up one char and place the cursor at the +// printf_char(byte zp($f) ch) +printf_char: { + .label ch = $f + // [89] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuz2 + lda.z ch ldy #0 - lda (str),y - sta.z ch - // [107] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#10 -- pbuz1=_inc_pbuz1 - inc.z str + sta (printf_cursor_ptr),y + // [90] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 + inc.z printf_cursor_ptr bne !+ - inc.z str+1 + inc.z printf_cursor_ptr+1 !: - // [108] 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: - // [109] return - rts - // printf_str::@3 - __b3: - // [110] 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: - // [111] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 -- vbuz1=vbuz2 - lda.z ch - sta.z printf_char.ch - // [112] call printf_char - // [70] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] - printf_char_from___b5: - // [70] 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 - // [113] 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: - // [114] call printf_ln - jsr printf_ln - jmp __b1_from___b4 -} - // printf_ln -// Print a newline -printf_ln: { - .label __0 = $5a - .label __1 = $5c - // [115] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz2_minus_vbuz3 - sec - lda.z printf_cursor_ptr - sbc.z printf_cursor_x - sta.z __0 - lda.z printf_cursor_ptr+1 - sbc #0 - sta.z __0+1 - // [116] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz2_plus_vbuc1 + // [91] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 + inc.z printf_cursor_x + // [92] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 - clc - adc.z __0 - sta.z __1 - lda #0 - adc.z __0+1 - sta.z __1+1 - // [117] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 -- pbuz1=pbuz2 - lda.z __1 - sta.z printf_cursor_ptr - lda.z __1+1 - sta.z printf_cursor_ptr+1 - // [118] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + cmp.z printf_cursor_x + bne __breturn + jmp __b1 + // printf_char::@1 + __b1: + // [93] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [119] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [94] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y - // [120] call printf_scroll + // [95] call printf_scroll jsr printf_scroll jmp __breturn - // printf_ln::@return + // printf_char::@return __breturn: - // [121] return + // [96] return rts +} + // printf_string +// Print a string value using a specific format +// Handles justification and min length +printf_string: { + // [98] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + __b1_from_printf_string: + jmp __b1 + // printf_string::@1 + __b1: + // [99] call printf_str + // [45] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + printf_str_from___b1: + // [45] phi (byte*) printf_str::str#15 = (const byte*) tod_buffer [phi:printf_string::@1->printf_str#0] -- pbuz1=pbuc1 + lda #tod_buffer + sta.z printf_str.str+1 + jsr printf_str + jmp __breturn + // printf_string::@return + __breturn: + // [100] return + rts +} + // printf_ulong +// Print an unsigned int using a specific format +// printf_ulong(dword zp($10) uvalue) +printf_ulong: { + .label uvalue = $10 + jmp __b1 + // printf_ulong::@1 + __b1: + // [102] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // [103] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 -- vduz1=vduz2 + lda.z uvalue + sta.z ultoa.value + lda.z uvalue+1 + sta.z ultoa.value+1 + lda.z uvalue+2 + sta.z ultoa.value+2 + lda.z uvalue+3 + sta.z ultoa.value+3 + // [104] call ultoa + // Format number into buffer + // [173] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] + ultoa_from___b1: + jsr ultoa + jmp __b2 + // printf_ulong::@2 + __b2: + // [105] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // [106] call printf_number_buffer + // Print using format + // [108] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] + printf_number_buffer_from___b2: + // [108] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_upper_case + // [108] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy + // [108] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [108] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + // [108] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_justify_left + // [108] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + jmp __breturn + // printf_ulong::@return + __breturn: + // [107] return + rts +} + // printf_number_buffer +// Print the contents of the number buffer using a specific format. +// This handles minimum length, zero-filling, and left/right justification from the format +// printf_number_buffer(byte zp($19) buffer_sign, byte* zp($17) buffer_digits, byte zp($14) format_min_length, byte zp($15) format_justify_left, byte zp($16) format_zero_padding, byte zp($1a) format_upper_case) +printf_number_buffer: { + .label __19 = $6c + .label buffer_sign = $19 + .label len = $1b + .label padding = $1c + .label format_min_length = $14 + .label format_zero_padding = $16 + .label format_justify_left = $15 + .label buffer_digits = $17 + .label format_upper_case = $1a + // [109] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_min_length + beq __b1_from_printf_number_buffer + jmp __b6 + // printf_number_buffer::@6 + __b6: + // [110] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + lda.z buffer_digits + sta.z strlen.str + lda.z buffer_digits+1 + sta.z strlen.str+1 + // [111] call strlen + // [167] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + strlen_from___b6: + jsr strlen + // [112] (word) strlen::return#2 ← (word) strlen::len#2 -- vwuz1=vwuz2 + lda.z strlen.len + sta.z strlen.return + lda.z strlen.len+1 + sta.z strlen.return+1 + jmp __b14 + // printf_number_buffer::@14 + __b14: + // [113] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 -- vwuz1=vwuz2 + lda.z strlen.return + sta.z __19 + lda.z strlen.return+1 + sta.z __19+1 + // [114] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsz1=_sbyte_vwuz2 + // There is a minimum length - work out the padding + lda.z __19 + sta.z len + // [115] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z buffer_sign + beq __b13_from___b14 + jmp __b7 + // printf_number_buffer::@7 + __b7: + // [116] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsz1=_inc_vbsz1 + inc.z len + // [117] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + __b13_from___b14: + __b13_from___b7: + // [117] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + jmp __b13 + // printf_number_buffer::@13 + __b13: + // [118] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsz2_minus_vbsz3 + lda.z format_min_length + sec + sbc.z len + sta.z padding + // [119] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + lda.z padding + cmp #0 + bpl __b21_from___b13 + // [121] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + __b1_from_printf_number_buffer: + __b1_from___b13: + // [121] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + lda #0 + sta.z padding + jmp __b1 + // [120] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + __b21_from___b13: + jmp __b21 + // printf_number_buffer::@21 + __b21: + // [121] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + __b1_from___b21: + // [121] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + jmp __b1 + // printf_number_buffer::@1 + __b1: + // [122] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z format_justify_left + bne __b2 + jmp __b17 + // printf_number_buffer::@17 + __b17: + // [123] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z format_zero_padding + bne __b2 + jmp __b16 + // printf_number_buffer::@16 + __b16: + // [124] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 + lda #0 + cmp.z padding + bne __b8 + jmp __b2 + // printf_number_buffer::@8 + __b8: + // [125] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + lda.z padding + sta.z printf_padding.length + // [126] call printf_padding + // [145] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + printf_padding_from___b8: + // [145] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 + lda #' ' + sta.z printf_padding.pad + // [145] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy + jsr printf_padding + jmp __b2 + // printf_number_buffer::@2 + __b2: + // [127] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z buffer_sign + beq __b3 + jmp __b9 + // printf_number_buffer::@9 + __b9: + // [128] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuz1=vbuz2 + lda.z buffer_sign + sta.z printf_char.ch + // [129] call printf_char + // [88] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] + printf_char_from___b9: + // [88] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy + jsr printf_char + jmp __b3 + // printf_number_buffer::@3 + __b3: + // [130] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_zero_padding + beq __b4 + jmp __b18 + // printf_number_buffer::@18 + __b18: + // [131] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 + lda #0 + cmp.z padding + bne __b10 + jmp __b4 + // printf_number_buffer::@10 + __b10: + // [132] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + lda.z padding + sta.z printf_padding.length + // [133] call printf_padding + // [145] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + printf_padding_from___b10: + // [145] phi (byte) printf_padding::pad#7 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 + lda #'0' + sta.z printf_padding.pad + // [145] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy + jsr printf_padding + jmp __b4 + // printf_number_buffer::@4 + __b4: + // [134] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_upper_case + beq __b5 + jmp __b11 + // printf_number_buffer::@11 + __b11: + // [135] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + lda.z buffer_digits + sta.z strupr.str + lda.z buffer_digits+1 + sta.z strupr.str+1 + // [136] call strupr + // [152] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + strupr_from___b11: + jsr strupr + jmp __b5 + // printf_number_buffer::@5 + __b5: + // [137] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + lda.z buffer_digits + sta.z printf_str.str + lda.z buffer_digits+1 + sta.z printf_str.str+1 + // [138] call printf_str + // [45] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + printf_str_from___b5: + // [45] phi (byte*) printf_str::str#15 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + jsr printf_str + jmp __b15 + // printf_number_buffer::@15 + __b15: + // [139] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_justify_left + beq __breturn + jmp __b20 + // printf_number_buffer::@20 + __b20: + // [140] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z format_zero_padding + bne __breturn + jmp __b19 + // printf_number_buffer::@19 + __b19: + // [141] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 + lda #0 + cmp.z padding + bne __b12 + jmp __breturn + // printf_number_buffer::@12 + __b12: + // [142] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + lda.z padding + sta.z printf_padding.length + // [143] call printf_padding + // [145] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + printf_padding_from___b12: + // [145] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 + lda #' ' + sta.z printf_padding.pad + // [145] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy + jsr printf_padding + jmp __breturn + // printf_number_buffer::@return + __breturn: + // [144] return + rts +} + // printf_padding +// Print a padding char a number of times +// printf_padding(byte zp($1e) pad, byte zp($1d) length) +printf_padding: { + .label i = $1f + .label length = $1d + .label pad = $1e + // [146] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + __b1_from_printf_padding: + // [146] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z i + jmp __b1 + // printf_padding::@1 + __b1: + // [147] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 + lda.z i + cmp.z length + bcc __b2 + jmp __breturn + // printf_padding::@return + __breturn: + // [148] return + rts + // printf_padding::@2 + __b2: + // [149] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 -- vbuz1=vbuz2 + lda.z pad + sta.z printf_char.ch + // [150] call printf_char + // [88] phi from printf_padding::@2 to printf_char [phi:printf_padding::@2->printf_char] + printf_char_from___b2: + // [88] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy + jsr printf_char + jmp __b3 + // printf_padding::@3 + __b3: + // [151] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 + inc.z i + // [146] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] + __b1_from___b3: + // [146] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + jmp __b1 } // strupr // Converts a string to uppercase. -// strupr(byte* zp($1c) str) +// strupr(byte* zp($20) str) strupr: { - .label __0 = $5f - .label src = $1c - .label str = $1c - // [123] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] + .label __0 = $6f + .label src = $20 + .label str = $20 + // [153] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] __b1_from_strupr: __b1_from___b3: - // [123] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy + // [153] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy jmp __b1 // strupr::@1 __b1: - // [124] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [154] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 @@ -6832,30 +8144,30 @@ strupr: { jmp __breturn // strupr::@return __breturn: - // [125] return + // [155] return rts // strupr::@2 __b2: - // [126] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuz1=_deref_pbuz2 + // [156] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuz1=_deref_pbuz2 ldy #0 lda (src),y sta.z toupper.ch - // [127] call toupper + // [157] call toupper jsr toupper - // [128] (byte) toupper::return#3 ← (byte) toupper::return#2 -- vbuz1=vbuz2 + // [158] (byte) toupper::return#3 ← (byte) toupper::return#2 -- vbuz1=vbuz2 lda.z toupper.return sta.z toupper.return_1 jmp __b3 // strupr::@3 __b3: - // [129] (byte~) strupr::$0 ← (byte) toupper::return#3 -- vbuz1=vbuz2 + // [159] (byte~) strupr::$0 ← (byte) toupper::return#3 -- vbuz1=vbuz2 lda.z toupper.return_1 sta.z __0 - // [130] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuz2 + // [160] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuz2 lda.z __0 ldy #0 sta (src),y - // [131] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 + // [161] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 @@ -6865,59 +8177,59 @@ strupr: { // toupper // Convert lowercase alphabet to uppercase // Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte zp($1e) ch) +// toupper(byte zp($22) ch) toupper: { - .label return = $1e - .label ch = $1e - .label return_1 = $5e - // [132] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuz1_lt_vbuc1_then_la1 + .label return = $22 + .label ch = $22 + .label return_1 = $6e + // [162] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuz1_lt_vbuc1_then_la1 lda.z ch cmp #'a' bcc __breturn_from_toupper jmp __b2 // toupper::@2 __b2: - // [133] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuz1_le_vbuc1_then_la1 + // [163] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuz1_le_vbuc1_then_la1 lda #'z' cmp.z ch bcs __b1 - // [135] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [165] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] __breturn_from_toupper: __breturn_from___b1: __breturn_from___b2: - // [135] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [165] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy jmp __breturn // toupper::@1 __b1: - // [134] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuz1=vbuz1_plus_vbuc1 + // [164] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuz1=vbuz1_plus_vbuc1 lax.z return axs #-['A'-'a'] stx.z return jmp __breturn_from___b1 // toupper::@return __breturn: - // [136] return + // [166] return rts } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($1f) str) +// strlen(byte* zp($23) str) strlen: { - .label len = $21 - .label str = $1f - .label return = $51 - // [138] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + .label len = $25 + .label str = $23 + .label return = $6a + // [168] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] __b1_from_strlen: - // [138] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [168] 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 - // [138] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // [168] phi (byte*) strlen::str#3 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy jmp __b1 // strlen::@1 __b1: - // [139] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [169] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -6925,923 +8237,25 @@ strlen: { jmp __breturn // strlen::@return __breturn: - // [140] return + // [170] return rts // strlen::@2 __b2: - // [141] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + // [171] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: - // [142] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 + // [172] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [138] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [168] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] __b1_from___b2: - // [138] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [138] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [168] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [168] phi (byte*) strlen::str#3 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 -} - // utoa -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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($24) value, byte* zp($61) buffer) -utoa: { - .const max_digits = 5 - .label __10 = $63 - .label __11 = $60 - .label digit_value = $64 - .label buffer = $61 - .label digit = $23 - .label value = $24 - .label buffer_1 = $27 - .label started = $26 - // [144] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] - __b1_from_utoa: - // [144] 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 - // [144] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [144] 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 - // [144] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // utoa::@1 - __b1: - // [145] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #max_digits-1 - bcc __b2 - jmp __b3 - // utoa::@3 - __b3: - // [146] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuz1=_byte_vwuz2 - lda.z value - sta.z __11 - // [147] *((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 - // [148] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz2 - lda.z buffer_1 - clc - adc #1 - sta.z buffer - lda.z buffer_1+1 - adc #0 - sta.z buffer+1 - // [149] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // utoa::@return - __breturn: - // [150] return - rts - // utoa::@2 - __b2: - // [151] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 - lda.z digit - asl - sta.z __10 - // [152] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuz2 - ldy.z __10 - lda RADIX_DECIMAL_VALUES,y - sta.z digit_value - lda RADIX_DECIMAL_VALUES+1,y - sta.z digit_value+1 - // [153] 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: - // [154] 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 !+ - lda.z digit_value - cmp.z value - beq __b5 - !: - bcc __b5 - // [155] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] - __b4_from___b7: - // [155] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy - // [155] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy - // [155] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy - jmp __b4 - // utoa::@4 - __b4: - // [156] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [144] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] - __b1_from___b4: - // [144] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy - // [144] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy - // [144] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy - // [144] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy - jmp __b1 - // utoa::@5 - __b5: - // [157] (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 - // [158] (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 - // [159] (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 - // [160] call utoa_append - // [164] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] - utoa_append_from___b5: - jsr utoa_append - // [161] (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 - sta.z utoa_append.return+1 - jmp __b6 - // utoa::@6 - __b6: - // [162] (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 - // [163] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer_1 - bne !+ - inc.z buffer_1+1 - !: - // [155] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] - __b4_from___b6: - // [155] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy - // [155] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [155] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy - jmp __b4 -} - // utoa_append -// Used to convert a single digit of an unsigned number value to a string representation -// Counts a single digit up from '0' as long as the value is larger than sub. -// Each time the digit is increased sub is subtracted from value. -// - buffer : pointer to the char that receives the digit -// - value : The value where the digit will be derived from -// - 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($66) buffer, word zp($29) value, word zp($68) sub) -utoa_append: { - .label buffer = $66 - .label value = $29 - .label sub = $68 - .label return = $6a - .label digit = $2b - // [165] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] - __b1_from_utoa_append: - // [165] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // [165] 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: - // [166] 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 !+ - lda.z sub - cmp.z value - beq __b2 - !: - bcc __b2 - jmp __b3 - // utoa_append::@3 - __b3: - // [167] *((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 - sta (buffer),y - jmp __breturn - // utoa_append::@return - __breturn: - // [168] return - rts - // utoa_append::@2 - __b2: - // [169] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [170] (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 - sta.z value - lda.z value+1 - sbc.z sub+1 - sta.z value+1 - // [165] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] - __b1_from___b2: - // [165] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [165] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_cls -// Clear the screen. Also resets current line/char cursor. -printf_cls: { - // [172] call memset - // [88] phi from printf_cls to memset [phi:printf_cls->memset] - memset_from_printf_cls: - // [88] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 - lda #' ' - sta.z memset.c - // [88] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 - lda #<$400 - sta.z memset.str - lda #>$400 - sta.z memset.str+1 - // [88] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 - lda #<$28*$19 - sta.z memset.num - lda #>$28*$19 - sta.z memset.num+1 - jsr memset - jmp __b1 - // printf_cls::@1 - __b1: - // [173] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 - lda #<$400 - sta.z printf_cursor_ptr - lda #>$400 - sta.z printf_cursor_ptr+1 - // [174] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z printf_cursor_x - // [175] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z printf_cursor_y - jmp __breturn - // printf_cls::@return - __breturn: - // [176] return - rts -} - // queen -// Generates all valid placements of queens on a NxN board recursively -// Works by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below -// and then recursively generating all legal placements on the rows above. -// queen(byte zp($6c) row) -queen: { - .const OFFSET_STACK_ROW = 0 - .label r = $6d - .label column = $6e - .label __1 = $72 - .label __4 = $73 - .label row = $6c - // [177] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) -- vbuz1=_stackidxbyte_vbuc1 - tsx - lda STACK_BASE+OFFSET_STACK_ROW,x - sta.z row - // [178] (byte) queen::r ← (byte) queen::row#0 -- vbuz1=vbuz2 - lda.z row - sta.z r - // [179] (byte) queen::column ← (byte) 1 -- vbuz1=vbuc1 - lda #1 - sta.z column - jmp __b1 - // queen::@1 - __b1: - // [180] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z column - cmp #8+1 - bcc __b2 - jmp __breturn - // queen::@return - __breturn: - // [181] return - rts - // queen::@2 - __b2: - // [182] (byte) legal::row#0 ← (byte) queen::r -- vbuz1=vbuz2 - lda.z r - sta.z legal.row - // [183] (byte) legal::column#0 ← (byte) queen::column -- vbuz1=vbuz2 - lda.z column - sta.z legal.column - // [184] call legal - // [294] phi from queen::@2 to legal [phi:queen::@2->legal] - legal_from___b2: - jsr legal - // [185] (byte) legal::return#0 ← (byte) legal::return#4 -- vbuz1=vbuz2 - lda.z legal.return_1 - sta.z legal.return - jmp __b7 - // queen::@7 - __b7: - // [186] (byte~) queen::$1 ← (byte) legal::return#0 -- vbuz1=vbuz2 - lda.z legal.return - sta.z __1 - // [187] if((byte) 0==(byte~) queen::$1) goto queen::@3 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z __1 - beq __b3 - jmp __b5 - // queen::@5 - __b5: - // [188] *((const byte*) board + (byte) queen::r) ← (byte) queen::column -- pbuc1_derefidx_vbuz1=vbuz2 - //no conflicts so place queen - lda.z column - ldy.z r - sta board,y - // [189] if((byte) queen::r==(byte) 8) goto queen::@4 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z r - beq __b4_from___b5 - jmp __b6 - // queen::@6 - __b6: - // asm { ldacolumn pha ldar pha } - // Perform recussive placement on rows above - // Push the local vars on the stack (waiting for proper recursion support) - lda column - pha - lda r - pha - // [191] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 -- vbuz1=vbuz2_plus_1 - ldy.z r - iny - sty.z __4 - // [192] stackpush(byte) ← (byte~) queen::$4 -- _stackpushbyte_=vbuz1 - // Do recursion - lda.z __4 - pha - // [193] callexecute queen -- jsr - jsr queen - // sideeffect stackpullbytes((number) 1) -- _stackpullbyte_1 - pla - // asm { pla star pla stacolumn } - // Pop the local vars on the stack (waiting for proper recursion support) - pla - sta r - pla - sta column - jmp __b3 - // queen::@3 - __b3: - // [196] (byte) queen::column ← ++ (byte) queen::column -- vbuz1=_inc_vbuz1 - inc.z column - jmp __b1 - // [197] phi from queen::@5 to queen::@4 [phi:queen::@5->queen::@4] - __b4_from___b5: - jmp __b4 - // queen::@4 - __b4: - // [198] call print - // we are done! Print the board configuration - jsr print - jmp __b3 -} - // print -// Print the board with a legal placement. Also increments the solution count. -print: { - .label i = $2c - .label i1 = $2d - .label j = $2e - // [199] (dword) count ← ++ (dword) count -- vduz1=_inc_vduz1 - inc.z count - bne !+ - inc.z count+1 - bne !+ - inc.z count+2 - bne !+ - inc.z count+3 - !: - // [200] call printf_str - // [104] phi from print to printf_str [phi:print->printf_str] - printf_str_from_print: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 - lda #str - sta.z printf_str.str+1 - jsr printf_str - jmp __b11 - // print::@11 - __b11: - // [201] (dword) printf_ulong::uvalue#0 ← (dword) count -- vduz1=vduz2 - lda.z count - sta.z printf_ulong.uvalue - lda.z count+1 - sta.z printf_ulong.uvalue+1 - lda.z count+2 - sta.z printf_ulong.uvalue+2 - lda.z count+3 - sta.z printf_ulong.uvalue+3 - // [202] call printf_ulong - // [259] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] - printf_ulong_from___b11: - jsr printf_ulong - // [203] phi from print::@11 to print::@12 [phi:print::@11->print::@12] - __b12_from___b11: - jmp __b12 - // print::@12 - __b12: - // [204] call printf_str - // [104] phi from print::@12 to printf_str [phi:print::@12->printf_str] - printf_str_from___b12: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 - lda #str1 - sta.z printf_str.str+1 - jsr printf_str - // [205] phi from print::@12 to print::@1 [phi:print::@12->print::@1] - __b1_from___b12: - // [205] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z i - jmp __b1 - // print::@1 - __b1: - // [206] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z i - cmp #8+1 - bcc __b2 - // [207] phi from print::@1 to print::@3 [phi:print::@1->print::@3] - __b3_from___b1: - // [207] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 - lda #1 - sta.z i1 - jmp __b3 - // print::@3 - __b3: - // [208] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 - lda.z i1 - cmp #8+1 - bcc __b4_from___b3 - jmp __breturn - // print::@return - __breturn: - // [209] return - rts - // [210] phi from print::@3 to print::@4 [phi:print::@3->print::@4] - __b4_from___b3: - jmp __b4 - // print::@4 - __b4: - // [211] call printf_str - // [104] phi from print::@4 to printf_str [phi:print::@4->printf_str] - printf_str_from___b4: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 - lda #str2 - sta.z printf_str.str+1 - jsr printf_str - jmp __b14 - // print::@14 - __b14: - // [212] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 -- vbuz1=vbuz2 - lda.z i1 - sta.z printf_uchar.uvalue - // [213] call printf_uchar - // [226] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] - printf_uchar_from___b14: - // [226] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy - jsr printf_uchar - // [214] phi from print::@14 to print::@5 [phi:print::@14->print::@5] - __b5_from___b14: - // [214] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 - lda #1 - sta.z j - jmp __b5 - // print::@5 - __b5: - // [215] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 - lda.z j - cmp #8+1 - bcc __b6 - jmp __b7 - // print::@7 - __b7: - // [216] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 - inc.z i1 - // [207] phi from print::@7 to print::@3 [phi:print::@7->print::@3] - __b3_from___b7: - // [207] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy - jmp __b3 - // print::@6 - __b6: - // [217] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 - ldy.z i1 - lda board,y - cmp.z j - beq __b8_from___b6 - // [218] phi from print::@6 to print::@10 [phi:print::@6->print::@10] - __b10_from___b6: - jmp __b10 - // print::@10 - __b10: - // [219] call printf_str - // [104] phi from print::@10 to printf_str [phi:print::@10->printf_str] - printf_str_from___b10: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 - lda #str4 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@9 - __b9: - // [220] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 - inc.z j - // [214] phi from print::@9 to print::@5 [phi:print::@9->print::@5] - __b5_from___b9: - // [214] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy - jmp __b5 - // [221] phi from print::@6 to print::@8 [phi:print::@6->print::@8] - __b8_from___b6: - jmp __b8 - // print::@8 - __b8: - // [222] call printf_str - // [104] phi from print::@8 to printf_str [phi:print::@8->printf_str] - printf_str_from___b8: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 - lda #str3 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@2 - __b2: - // [223] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 -- vbuz1=vbuz2 - lda.z i - sta.z printf_uchar.uvalue - // [224] call printf_uchar - // [226] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] - printf_uchar_from___b2: - // [226] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy - jsr printf_uchar - jmp __b13 - // print::@13 - __b13: - // [225] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [205] phi from print::@13 to print::@1 [phi:print::@13->print::@1] - __b1_from___b13: - // [205] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy - jmp __b1 - str: .text @"\n#" - .byte 0 - str1: .text @":\n " - .byte 0 - str2: .text @"\n" - .byte 0 - str3: .text "Q" - .byte 0 - str4: .text "-" - .byte 0 -} - // printf_uchar -// Print an unsigned char using a specific format -// printf_uchar(byte zp($2f) uvalue) -printf_uchar: { - .label uvalue = $2f - jmp __b1 - // printf_uchar::@1 - __b1: - // [227] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [228] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 -- vbuz1=vbuz2 - lda.z uvalue - sta.z uctoa.value - // [229] call uctoa - // Format number into buffer - // [233] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] - uctoa_from___b1: - jsr uctoa - jmp __b2 - // printf_uchar::@2 - __b2: - // [230] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [231] call printf_number_buffer - // Print using format - // [26] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [26] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_upper_case - // [26] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy - // [26] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [26] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_zero_padding - // [26] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_justify_left - // [26] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_uchar::@return - __breturn: - // [232] return - rts -} - // uctoa -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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($31) value, byte* zp($78) buffer) -uctoa: { - .label digit_value = $7a - .label buffer = $78 - .label digit = $30 - .label value = $31 - .label buffer_1 = $33 - .label started = $32 - // [234] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - __b1_from_uctoa: - // [234] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer_1+1 - // [234] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [234] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy - // [234] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // uctoa::@1 - __b1: - // [235] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #2-1 - bcc __b2 - jmp __b3 - // uctoa::@3 - __b3: - // [236] *((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 - // [237] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz2 - lda.z buffer_1 - clc - adc #1 - sta.z buffer - lda.z buffer_1+1 - adc #0 - sta.z buffer+1 - // [238] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // uctoa::@return - __breturn: - // [239] return - rts - // uctoa::@2 - __b2: - // [240] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z digit - lda RADIX_HEXADECIMAL_VALUES_CHAR,y - sta.z digit_value - // [241] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - jmp __b7 - // uctoa::@7 - __b7: - // [242] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuz1_ge_vbuz2_then_la1 - lda.z value - cmp.z digit_value - bcs __b5 - // [243] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] - __b4_from___b7: - // [243] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy - // [243] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy - // [243] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy - jmp __b4 - // uctoa::@4 - __b4: - // [244] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [234] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] - __b1_from___b4: - // [234] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy - // [234] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy - // [234] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy - // [234] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy - jmp __b1 - // uctoa::@5 - __b5: - // [245] (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 - // [246] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 -- vbuz1=vbuz2 - lda.z value - sta.z uctoa_append.value - // [247] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuz2 - lda.z digit_value - sta.z uctoa_append.sub - // [248] call uctoa_append - // [252] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] - uctoa_append_from___b5: - jsr uctoa_append - // [249] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 -- vbuz1=vbuz2 - lda.z uctoa_append.value - sta.z uctoa_append.return - jmp __b6 - // uctoa::@6 - __b6: - // [250] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 -- vbuz1=vbuz2 - lda.z uctoa_append.return - sta.z value - // [251] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer_1 - bne !+ - inc.z buffer_1+1 - !: - // [243] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] - __b4_from___b6: - // [243] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy - // [243] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [243] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy - jmp __b4 -} - // uctoa_append -// Used to convert a single digit of an unsigned number value to a string representation -// Counts a single digit up from '0' as long as the value is larger than sub. -// Each time the digit is increased sub is subtracted from value. -// - buffer : pointer to the char that receives the digit -// - value : The value where the digit will be derived from -// - 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($7b) buffer, byte zp($35) value, byte zp($7d) sub) -uctoa_append: { - .label buffer = $7b - .label value = $35 - .label sub = $7d - .label return = $7e - .label digit = $36 - // [253] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - __b1_from_uctoa_append: - // [253] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // [253] 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: - // [254] 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: - // [255] *((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 - sta (buffer),y - jmp __breturn - // uctoa_append::@return - __breturn: - // [256] return - rts - // uctoa_append::@2 - __b2: - // [257] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [258] (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 - // [253] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - __b1_from___b2: - // [253] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [253] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_ulong -// Print an unsigned int using a specific format -// printf_ulong(dword zp($74) uvalue) -printf_ulong: { - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = $74 - jmp __b1 - // printf_ulong::@1 - __b1: - // [260] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [261] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 -- vduz1=vduz2 - lda.z uvalue - sta.z ultoa.value - lda.z uvalue+1 - sta.z ultoa.value+1 - lda.z uvalue+2 - sta.z ultoa.value+2 - lda.z uvalue+3 - sta.z ultoa.value+3 - // [262] call ultoa - // Format number into buffer - // [266] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] - ultoa_from___b1: - jsr ultoa - jmp __b2 - // printf_ulong::@2 - __b2: - // [263] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [264] call printf_number_buffer - // Print using format - // [26] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [26] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_ulong::format_upper_case#0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [26] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy - // [26] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [26] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_ulong::format_zero_padding#0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [26] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_ulong::format_justify_left#0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [26] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_ulong::format_min_length#0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_ulong::@return - __breturn: - // [265] return - rts } // ultoa // Converts unsigned number value to a string representing it in RADIX format. @@ -7849,50 +8263,49 @@ printf_ulong: { // - 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) -// ultoa(dword zp($38) value, byte* zp($80) buffer) +// ultoa(dword zp($28) value, byte* zp($71) buffer) ultoa: { - .const max_digits = $a - .label __10 = $82 - .label __11 = $7f - .label digit_value = $83 - .label buffer = $80 - .label digit = $37 - .label value = $38 - .label buffer_1 = $3d - .label started = $3c - // [267] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] + .label __10 = $73 + .label __11 = $70 + .label digit_value = $74 + .label buffer = $71 + .label digit = $27 + .label value = $28 + .label buffer_1 = $2d + .label started = $2c + // [174] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] __b1_from_ultoa: - // [267] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 + // [174] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer_1+1 - // [267] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuz1=vbuc1 + // [174] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuz1=vbuc1 lda #0 sta.z started - // [267] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy - // [267] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 + // [174] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy + // [174] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // ultoa::@1 __b1: - // [268] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 + // [175] if((byte) ultoa::digit#2<(byte) $a-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z digit - cmp #max_digits-1 + cmp #$a-1 bcc __b2 jmp __b3 // ultoa::@3 __b3: - // [269] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuz1=_byte_vduz2 + // [176] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuz1=_byte_vduz2 lda.z value sta.z __11 - // [270] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [177] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z __11 lda DIGITS,y ldy #0 sta (buffer_1),y - // [271] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz2 + // [178] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz2 lda.z buffer_1 clc adc #1 @@ -7900,23 +8313,23 @@ ultoa: { lda.z buffer_1+1 adc #0 sta.z buffer+1 - // [272] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [179] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // ultoa::@return __breturn: - // [273] return + // [180] return rts // ultoa::@2 __b2: - // [274] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 + // [181] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 lda.z digit asl asl sta.z __10 - // [275] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuz2 + // [182] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuz2 ldy.z __10 lda RADIX_DECIMAL_VALUES_LONG,y sta.z digit_value @@ -7926,14 +8339,14 @@ ultoa: { sta.z digit_value+2 lda RADIX_DECIMAL_VALUES_LONG+3,y sta.z digit_value+3 - // [276] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuz1_then_la1 + // [183] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z started bne __b5 jmp __b7 // ultoa::@7 __b7: - // [277] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 + // [184] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z digit_value+3 bcc !+ @@ -7950,31 +8363,31 @@ ultoa: { cmp.z digit_value bcs __b5 !: - // [278] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] + // [185] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] __b4_from___b7: - // [278] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [278] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [278] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy + // [185] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy + // [185] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy + // [185] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy jmp __b4 // ultoa::@4 __b4: - // [279] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 + // [186] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [267] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] + // [174] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] __b1_from___b4: - // [267] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [267] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [267] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [267] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy + // [174] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy + // [174] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy + // [174] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy + // [174] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy jmp __b1 // ultoa::@5 __b5: - // [280] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 -- pbuz1=pbuz2 + // [187] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 -- pbuz1=pbuz2 lda.z buffer_1 sta.z ultoa_append.buffer lda.z buffer_1+1 sta.z ultoa_append.buffer+1 - // [281] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 -- vduz1=vduz2 + // [188] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 -- vduz1=vduz2 lda.z value sta.z ultoa_append.value lda.z value+1 @@ -7983,7 +8396,7 @@ ultoa: { sta.z ultoa_append.value+2 lda.z value+3 sta.z ultoa_append.value+3 - // [282] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 -- vduz1=vduz2 + // [189] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 -- vduz1=vduz2 lda.z digit_value sta.z ultoa_append.sub lda.z digit_value+1 @@ -7992,11 +8405,11 @@ ultoa: { sta.z ultoa_append.sub+2 lda.z digit_value+3 sta.z ultoa_append.sub+3 - // [283] call ultoa_append - // [287] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] + // [190] call ultoa_append + // [194] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] ultoa_append_from___b5: jsr ultoa_append - // [284] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 -- vduz1=vduz2 + // [191] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 -- vduz1=vduz2 lda.z ultoa_append.value sta.z ultoa_append.return lda.z ultoa_append.value+1 @@ -8008,7 +8421,7 @@ ultoa: { jmp __b6 // ultoa::@6 __b6: - // [285] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 -- vduz1=vduz2 + // [192] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 -- vduz1=vduz2 lda.z ultoa_append.return sta.z value lda.z ultoa_append.return+1 @@ -8017,18 +8430,18 @@ ultoa: { sta.z value+2 lda.z ultoa_append.return+3 sta.z value+3 - // [286] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [193] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer_1 bne !+ inc.z buffer_1+1 !: - // [278] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] + // [185] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] __b4_from___b6: - // [278] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [278] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuz1=vbuc1 + // [185] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy + // [185] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuz1=vbuc1 lda #1 sta.z started - // [278] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy + // [185] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy jmp __b4 } // ultoa_append @@ -8040,23 +8453,23 @@ ultoa: { // - 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. -// ultoa_append(byte* zp($87) buffer, dword zp($3f) value, dword zp($89) sub) +// ultoa_append(byte* zp($78) buffer, dword zp($2f) value, dword zp($7a) sub) ultoa_append: { - .label buffer = $87 - .label value = $3f - .label sub = $89 - .label return = $8d - .label digit = $43 - // [288] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] + .label buffer = $78 + .label value = $2f + .label sub = $7a + .label return = $7e + .label digit = $33 + // [195] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] __b1_from_ultoa_append: - // [288] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuz1=vbuc1 + // [195] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuz1=vbuc1 lda #0 sta.z digit - // [288] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy + // [195] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy jmp __b1 // ultoa_append::@1 __b1: - // [289] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 + // [196] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z sub+3 bcc !+ @@ -8076,7 +8489,7 @@ ultoa_append: { jmp __b3 // ultoa_append::@3 __b3: - // [290] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [197] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z digit lda DIGITS,y ldy #0 @@ -8084,13 +8497,13 @@ ultoa_append: { jmp __breturn // ultoa_append::@return __breturn: - // [291] return + // [198] return rts // ultoa_append::@2 __b2: - // [292] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuz1=_inc_vbuz1 + // [199] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [293] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 + // [200] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 lda.z value sec sbc.z sub @@ -8104,68 +8517,1154 @@ ultoa_append: { lda.z value+3 sbc.z sub+3 sta.z value+3 - // [288] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] + // [195] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] __b1_from___b2: - // [288] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [288] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + // [195] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy + // [195] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + jmp __b1 +} + // tod_str +// Convert time of day to a human-readable string "hh:mm:ss:10" +// tod_str(byte zp($5d) tod_TENTHS, byte zp($5e) tod_SEC, byte zp($5f) tod_MIN, byte zp($60) tod_HOURS) +tod_str: { + .label __0 = $82 + .label __1 = $83 + .label __2 = $84 + .label __3 = $85 + .label __4 = $86 + .label __5 = $87 + .label __6 = $88 + .label __7 = $89 + .label __8 = $8a + .label __9 = $8b + .label __10 = $8c + .label __11 = $8d + .label __12 = $8e + .label __13 = $8f + .label __14 = $90 + .label __15 = $91 + .label tod_TENTHS = $5d + .label tod_SEC = $5e + .label tod_MIN = $5f + .label tod_HOURS = $60 + // [201] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_HOURS + lsr + lsr + lsr + lsr + sta.z __0 + // [202] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __0 + axs #-['0'] + stx.z __1 + // [203] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuz1 + lda.z __1 + sta tod_buffer + // [204] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and.z tod_HOURS + sta.z __2 + // [205] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __2 + axs #-['0'] + stx.z __3 + // [206] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuz1 + lda.z __3 + sta tod_buffer+1 + // [207] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_MIN + lsr + lsr + lsr + lsr + sta.z __4 + // [208] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __4 + axs #-['0'] + stx.z __5 + // [209] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuz1 + lda.z __5 + sta tod_buffer+3 + // [210] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and.z tod_MIN + sta.z __6 + // [211] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __6 + axs #-['0'] + stx.z __7 + // [212] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuz1 + lda.z __7 + sta tod_buffer+4 + // [213] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_SEC + lsr + lsr + lsr + lsr + sta.z __8 + // [214] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __8 + axs #-['0'] + stx.z __9 + // [215] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuz1 + lda.z __9 + sta tod_buffer+6 + // [216] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and.z tod_SEC + sta.z __10 + // [217] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __10 + axs #-['0'] + stx.z __11 + // [218] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuz1 + lda.z __11 + sta tod_buffer+7 + // [219] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_TENTHS + lsr + lsr + lsr + lsr + sta.z __12 + // [220] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __12 + axs #-['0'] + stx.z __13 + // [221] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuz1 + lda.z __13 + sta tod_buffer+9 + // [222] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and.z tod_TENTHS + sta.z __14 + // [223] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __14 + axs #-['0'] + stx.z __15 + // [224] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuz1 + lda.z __15 + sta tod_buffer+$a + jmp __breturn + // tod_str::@return + __breturn: + // [225] return + rts +} + // tod_read +// Read time of day +tod_read: { + .label return_TENTHS = $95 + .label return_SEC = $94 + .label return_MIN = $93 + .label return_HOURS = $92 + .label return_TENTHS_1 = $59 + .label return_SEC_1 = $5a + .label return_MIN_1 = $5b + .label return_HOURS_1 = $5c + // [226] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // Reading sequence is important. TOD latches on reading hours until 10ths is read. + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + sta.z return_HOURS + // [227] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + sta.z return_MIN + // [228] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + sta.z return_SEC + // [229] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + sta.z return_TENTHS + jmp __breturn + // tod_read::@return + __breturn: + // [230] return + rts +} + // tod_init +// Initialize time-of-day clock +// This uses the MOS6526 CIA#1 +// tod_init(byte zp($55) tod_TENTHS, byte zp($56) tod_SEC, byte zp($57) tod_MIN, byte zp($58) tod_HOURS) +tod_init: { + .label tod_TENTHS = $55 + .label tod_SEC = $56 + .label tod_MIN = $57 + .label tod_HOURS = $58 + // [231] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 + // Set 50hz (this assumes PAL!) (bit7=1) + lda #$80 + ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL + // [232] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 + // Writing TOD clock (bit7=0) + lda #$7f + and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL + // [233] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuz1 + // Reset TOD clock + // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. + lda.z tod_HOURS + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + // [234] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuz1 + lda.z tod_MIN + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + // [235] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + lda.z tod_SEC + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + // [236] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + lda.z tod_TENTHS + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + jmp __breturn + // tod_init::@return + __breturn: + // [237] return + rts +} + // printf_uint +// Print an unsigned int using a specific format +printf_uint: { + .label uvalue = 8 + .const format_min_length = 0 + .const format_justify_left = 0 + .const format_zero_padding = 0 + .const format_upper_case = 0 + jmp __b1 + // printf_uint::@1 + __b1: + // [239] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // [240] call utoa + // Format number into buffer + // [244] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + utoa_from___b1: + jsr utoa + jmp __b2 + // printf_uint::@2 + __b2: + // [241] (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 + // [242] call printf_number_buffer + // Print using format + // [108] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + printf_number_buffer_from___b2: + // [108] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #format_upper_case + sta.z printf_number_buffer.format_upper_case + // [108] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy + // [108] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [108] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #format_zero_padding + sta.z printf_number_buffer.format_zero_padding + // [108] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + lda #format_justify_left + sta.z printf_number_buffer.format_justify_left + // [108] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + lda #format_min_length + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + jmp __breturn + // printf_uint::@return + __breturn: + // [243] return + rts +} + // utoa +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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($35) value, byte* zp($97) buffer) +utoa: { + .const max_digits = 5 + .label __10 = $99 + .label __11 = $96 + .label digit_value = $9a + .label buffer = $97 + .label digit = $34 + .label value = $35 + .label buffer_1 = $38 + .label started = $37 + // [245] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + __b1_from_utoa: + // [245] 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 + // [245] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 + lda #0 + sta.z started + // [245] 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 + // [245] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 + lda #0 + sta.z digit + jmp __b1 + // utoa::@1 + __b1: + // [246] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z digit + cmp #max_digits-1 + bcc __b2 + jmp __b3 + // utoa::@3 + __b3: + // [247] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuz1=_byte_vwuz2 + lda.z value + sta.z __11 + // [248] *((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 + // [249] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz2 + lda.z buffer_1 + clc + adc #1 + sta.z buffer + lda.z buffer_1+1 + adc #0 + sta.z buffer+1 + // [250] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + lda #0 + ldy #0 + sta (buffer),y + jmp __breturn + // utoa::@return + __breturn: + // [251] return + rts + // utoa::@2 + __b2: + // [252] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 + lda.z digit + asl + sta.z __10 + // [253] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuz2 + ldy.z __10 + lda RADIX_DECIMAL_VALUES,y + sta.z digit_value + lda RADIX_DECIMAL_VALUES+1,y + sta.z digit_value+1 + // [254] 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: + // [255] 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 !+ + lda.z digit_value + cmp.z value + beq __b5 + !: + bcc __b5 + // [256] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] + __b4_from___b7: + // [256] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy + // [256] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy + // [256] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy + jmp __b4 + // utoa::@4 + __b4: + // [257] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [245] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + __b1_from___b4: + // [245] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy + // [245] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy + // [245] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy + // [245] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy + jmp __b1 + // utoa::@5 + __b5: + // [258] (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 + // [259] (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 + // [260] (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 + // [261] call utoa_append + // [265] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] + utoa_append_from___b5: + jsr utoa_append + // [262] (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 + sta.z utoa_append.return+1 + jmp __b6 + // utoa::@6 + __b6: + // [263] (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 + // [264] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer_1 + bne !+ + inc.z buffer_1+1 + !: + // [256] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] + __b4_from___b6: + // [256] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy + // [256] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 + lda #1 + sta.z started + // [256] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy + jmp __b4 +} + // utoa_append +// Used to convert a single digit of an unsigned number value to a string representation +// Counts a single digit up from '0' as long as the value is larger than sub. +// Each time the digit is increased sub is subtracted from value. +// - buffer : pointer to the char that receives the digit +// - value : The value where the digit will be derived from +// - 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($9c) buffer, word zp($3a) value, word zp($9e) sub) +utoa_append: { + .label buffer = $9c + .label value = $3a + .label sub = $9e + .label return = $a0 + .label digit = $3c + // [266] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + __b1_from_utoa_append: + // [266] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z digit + // [266] 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: + // [267] 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 !+ + lda.z sub + cmp.z value + beq __b2 + !: + bcc __b2 + jmp __b3 + // utoa_append::@3 + __b3: + // [268] *((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 + sta (buffer),y + jmp __breturn + // utoa_append::@return + __breturn: + // [269] return + rts + // utoa_append::@2 + __b2: + // [270] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [271] (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 + sta.z value + lda.z value+1 + sbc.z sub+1 + sta.z value+1 + // [266] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + __b1_from___b2: + // [266] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [266] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + jmp __b1 +} + // printf_cls +// Clear the screen. Also resets current line/char cursor. +printf_cls: { + // [273] call memset + // [72] phi from printf_cls to memset [phi:printf_cls->memset] + memset_from_printf_cls: + // [72] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 + lda #' ' + sta.z memset.c + // [72] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 + lda #<$400 + sta.z memset.str + lda #>$400 + sta.z memset.str+1 + // [72] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 + lda #<$28*$19 + sta.z memset.num + lda #>$28*$19 + sta.z memset.num+1 + jsr memset + jmp __b1 + // printf_cls::@1 + __b1: + // [274] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 + lda #<$400 + sta.z printf_cursor_ptr + lda #>$400 + sta.z printf_cursor_ptr+1 + // [275] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + lda #0 + sta.z printf_cursor_x + // [276] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 + lda #0 + sta.z printf_cursor_y + jmp __breturn + // printf_cls::@return + __breturn: + // [277] return + rts +} + // queen +// Generates all valid placements of queens on a NxN board recursively +// Works by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below +// and then recursively generating all legal placements on the rows above. +// queen(byte zp($a2) row) +queen: { + .const OFFSET_STACK_ROW = 0 + .label r = $a3 + .label column = $a4 + .label __1 = $a8 + .label __4 = $a9 + .label row = $a2 + // [278] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) -- vbuz1=_stackidxbyte_vbuc1 + tsx + lda STACK_BASE+OFFSET_STACK_ROW,x + sta.z row + // [279] (byte) queen::r ← (byte) queen::row#0 -- vbuz1=vbuz2 + lda.z row + sta.z r + // [280] (byte) queen::column ← (byte) 1 -- vbuz1=vbuc1 + lda #1 + sta.z column + jmp __b1 + // queen::@1 + __b1: + // [281] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z column + cmp #8+1 + bcc __b2 + jmp __breturn + // queen::@return + __breturn: + // [282] return + rts + // queen::@2 + __b2: + // [283] (byte) legal::row#0 ← (byte) queen::r -- vbuz1=vbuz2 + lda.z r + sta.z legal.row + // [284] (byte) legal::column#0 ← (byte) queen::column -- vbuz1=vbuz2 + lda.z column + sta.z legal.column + // [285] call legal + // [360] phi from queen::@2 to legal [phi:queen::@2->legal] + legal_from___b2: + jsr legal + // [286] (byte) legal::return#0 ← (byte) legal::return#4 -- vbuz1=vbuz2 + lda.z legal.return_1 + sta.z legal.return + jmp __b7 + // queen::@7 + __b7: + // [287] (byte~) queen::$1 ← (byte) legal::return#0 -- vbuz1=vbuz2 + lda.z legal.return + sta.z __1 + // [288] if((byte) 0==(byte~) queen::$1) goto queen::@3 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z __1 + beq __b3 + jmp __b5 + // queen::@5 + __b5: + // [289] *((const byte*) board + (byte) queen::r) ← (byte) queen::column -- pbuc1_derefidx_vbuz1=vbuz2 + //no conflicts so place queen + lda.z column + ldy.z r + sta board,y + // [290] if((byte) queen::r==(byte) 8) goto queen::@4 -- vbuz1_eq_vbuc1_then_la1 + lda #8 + cmp.z r + beq __b4 + jmp __b6 + // queen::@6 + __b6: + // asm { ldacolumn pha ldar pha } + // Perform recussive placement on rows above + // Push the local vars on the stack (waiting for proper recursion support) + lda column + pha + lda r + pha + // [292] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 -- vbuz1=vbuz2_plus_1 + ldy.z r + iny + sty.z __4 + // [293] stackpush(byte) ← (byte~) queen::$4 -- _stackpushbyte_=vbuz1 + // Do recursion + lda.z __4 + pha + // [294] callexecute queen -- jsr + jsr queen + // sideeffect stackpullbytes((number) 1) -- _stackpullbyte_1 + pla + // asm { pla star pla stacolumn } + // Pop the local vars on the stack (waiting for proper recursion support) + pla + sta r + pla + sta column + jmp __b3 + // queen::@3 + __b3: + // [297] (byte) queen::column ← ++ (byte) queen::column -- vbuz1=_inc_vbuz1 + inc.z column + jmp __b1 + // queen::@4 + __b4: + // [298] (dword) count ← ++ (dword) count -- vduz1=_inc_vduz1 + inc.z count + bne !+ + inc.z count+1 + bne !+ + inc.z count+2 + bne !+ + inc.z count+3 + !: + // [299] call print + // [300] phi from queen::@4 to print [phi:queen::@4->print] + print_from___b4: + jsr print + jmp __b3 +} + // print +// Print the board with a legal placement. Also increments the solution count. +print: { + .label i = $3d + .label i1 = $3e + .label j = $3f + // [301] call printf_str + // [45] phi from print to printf_str [phi:print->printf_str] + printf_str_from_print: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 + lda #str + sta.z printf_str.str+1 + jsr printf_str + jmp __b11 + // print::@11 + __b11: + // [302] (dword) printf_ulong::uvalue#1 ← (dword) count -- vduz1=vduz2 + lda.z count + sta.z printf_ulong.uvalue + lda.z count+1 + sta.z printf_ulong.uvalue+1 + lda.z count+2 + sta.z printf_ulong.uvalue+2 + lda.z count+3 + sta.z printf_ulong.uvalue+3 + // [303] call printf_ulong + // [101] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] + printf_ulong_from___b11: + // [101] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#1 [phi:print::@11->printf_ulong#0] -- register_copy + jsr printf_ulong + // [304] phi from print::@11 to print::@12 [phi:print::@11->print::@12] + __b12_from___b11: + jmp __b12 + // print::@12 + __b12: + // [305] call printf_str + // [45] phi from print::@12 to printf_str [phi:print::@12->printf_str] + printf_str_from___b12: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 + lda #str1 + sta.z printf_str.str+1 + jsr printf_str + // [306] phi from print::@12 to print::@1 [phi:print::@12->print::@1] + __b1_from___b12: + // [306] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 + lda #1 + sta.z i + jmp __b1 + // print::@1 + __b1: + // [307] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z i + cmp #8+1 + bcc __b2 + // [308] phi from print::@1 to print::@3 [phi:print::@1->print::@3] + __b3_from___b1: + // [308] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 + lda #1 + sta.z i1 + jmp __b3 + // print::@3 + __b3: + // [309] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 + lda.z i1 + cmp #8+1 + bcc __b4_from___b3 + jmp __breturn + // print::@return + __breturn: + // [310] return + rts + // [311] phi from print::@3 to print::@4 [phi:print::@3->print::@4] + __b4_from___b3: + jmp __b4 + // print::@4 + __b4: + // [312] call printf_str + // [45] phi from print::@4 to printf_str [phi:print::@4->printf_str] + printf_str_from___b4: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + jmp __b14 + // print::@14 + __b14: + // [313] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 -- vbuz1=vbuz2 + lda.z i1 + sta.z printf_uchar.uvalue + // [314] call printf_uchar + // [327] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] + printf_uchar_from___b14: + // [327] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy + jsr printf_uchar + // [315] phi from print::@14 to print::@5 [phi:print::@14->print::@5] + __b5_from___b14: + // [315] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 + lda #1 + sta.z j + jmp __b5 + // print::@5 + __b5: + // [316] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 + lda.z j + cmp #8+1 + bcc __b6 + jmp __b7 + // print::@7 + __b7: + // [317] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 + inc.z i1 + // [308] phi from print::@7 to print::@3 [phi:print::@7->print::@3] + __b3_from___b7: + // [308] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy + jmp __b3 + // print::@6 + __b6: + // [318] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + ldy.z i1 + lda board,y + cmp.z j + beq __b8_from___b6 + // [319] phi from print::@6 to print::@10 [phi:print::@6->print::@10] + __b10_from___b6: + jmp __b10 + // print::@10 + __b10: + // [320] call printf_str + // [45] phi from print::@10 to printf_str [phi:print::@10->printf_str] + printf_str_from___b10: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@9 + __b9: + // [321] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 + inc.z j + // [315] phi from print::@9 to print::@5 [phi:print::@9->print::@5] + __b5_from___b9: + // [315] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy + jmp __b5 + // [322] phi from print::@6 to print::@8 [phi:print::@6->print::@8] + __b8_from___b6: + jmp __b8 + // print::@8 + __b8: + // [323] call printf_str + // [45] phi from print::@8 to printf_str [phi:print::@8->printf_str] + printf_str_from___b8: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@2 + __b2: + // [324] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 -- vbuz1=vbuz2 + lda.z i + sta.z printf_uchar.uvalue + // [325] call printf_uchar + // [327] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] + printf_uchar_from___b2: + // [327] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy + jsr printf_uchar + jmp __b13 + // print::@13 + __b13: + // [326] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 + inc.z i + // [306] phi from print::@13 to print::@1 [phi:print::@13->print::@1] + __b1_from___b13: + // [306] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy + jmp __b1 + str: .text @"\n#" + .byte 0 + str1: .text @":\n " + .byte 0 + str2: .text @"\n" + .byte 0 + str3: .text "Q" + .byte 0 + str4: .text "-" + .byte 0 +} + // printf_uchar +// Print an unsigned char using a specific format +// printf_uchar(byte zp($40) uvalue) +printf_uchar: { + .label uvalue = $40 + jmp __b1 + // printf_uchar::@1 + __b1: + // [328] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // [329] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 -- vbuz1=vbuz2 + lda.z uvalue + sta.z uctoa.value + // [330] call uctoa + // Format number into buffer + // [334] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] + uctoa_from___b1: + jsr uctoa + jmp __b2 + // printf_uchar::@2 + __b2: + // [331] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // [332] call printf_number_buffer + // Print using format + // [108] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] + printf_number_buffer_from___b2: + // [108] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_upper_case + // [108] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy + // [108] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [108] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + // [108] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_justify_left + // [108] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + jmp __breturn + // printf_uchar::@return + __breturn: + // [333] return + rts +} + // uctoa +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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($42) value, byte* zp($aa) buffer) +uctoa: { + .label digit_value = $ac + .label buffer = $aa + .label digit = $41 + .label value = $42 + .label buffer_1 = $44 + .label started = $43 + // [335] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] + __b1_from_uctoa: + // [335] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z buffer_1+1 + // [335] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 + lda #0 + sta.z started + // [335] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy + // [335] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 + lda #0 + sta.z digit + jmp __b1 + // uctoa::@1 + __b1: + // [336] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z digit + cmp #2-1 + bcc __b2 + jmp __b3 + // uctoa::@3 + __b3: + // [337] *((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 + // [338] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz2 + lda.z buffer_1 + clc + adc #1 + sta.z buffer + lda.z buffer_1+1 + adc #0 + sta.z buffer+1 + // [339] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + lda #0 + ldy #0 + sta (buffer),y + jmp __breturn + // uctoa::@return + __breturn: + // [340] return + rts + // uctoa::@2 + __b2: + // [341] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy.z digit + lda RADIX_HEXADECIMAL_VALUES_CHAR,y + sta.z digit_value + // [342] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z started + bne __b5 + jmp __b7 + // uctoa::@7 + __b7: + // [343] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuz1_ge_vbuz2_then_la1 + lda.z value + cmp.z digit_value + bcs __b5 + // [344] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] + __b4_from___b7: + // [344] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy + // [344] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy + // [344] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy + jmp __b4 + // uctoa::@4 + __b4: + // [345] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [335] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] + __b1_from___b4: + // [335] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy + // [335] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy + // [335] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy + // [335] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy + jmp __b1 + // uctoa::@5 + __b5: + // [346] (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 + // [347] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 -- vbuz1=vbuz2 + lda.z value + sta.z uctoa_append.value + // [348] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuz2 + lda.z digit_value + sta.z uctoa_append.sub + // [349] call uctoa_append + // [353] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] + uctoa_append_from___b5: + jsr uctoa_append + // [350] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 -- vbuz1=vbuz2 + lda.z uctoa_append.value + sta.z uctoa_append.return + jmp __b6 + // uctoa::@6 + __b6: + // [351] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 -- vbuz1=vbuz2 + lda.z uctoa_append.return + sta.z value + // [352] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer_1 + bne !+ + inc.z buffer_1+1 + !: + // [344] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] + __b4_from___b6: + // [344] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy + // [344] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 + lda #1 + sta.z started + // [344] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy + jmp __b4 +} + // uctoa_append +// Used to convert a single digit of an unsigned number value to a string representation +// Counts a single digit up from '0' as long as the value is larger than sub. +// Each time the digit is increased sub is subtracted from value. +// - buffer : pointer to the char that receives the digit +// - value : The value where the digit will be derived from +// - 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($ad) buffer, byte zp($46) value, byte zp($af) sub) +uctoa_append: { + .label buffer = $ad + .label value = $46 + .label sub = $af + .label return = $b0 + .label digit = $47 + // [354] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] + __b1_from_uctoa_append: + // [354] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z digit + // [354] 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: + // [355] 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: + // [356] *((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 + sta (buffer),y + jmp __breturn + // uctoa_append::@return + __breturn: + // [357] return + rts + // uctoa_append::@2 + __b2: + // [358] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [359] (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 + // [354] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] + __b1_from___b2: + // [354] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy + // [354] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy jmp __b1 } // legal // Checks is a placement of the queen on the board is legal. // Checks the passed (row, column) against all queens placed on the board on lower rows. // If no conflict for desired position returns 1 otherwise returns 0 -// legal(byte zp($6f) row, byte zp($70) column) +// legal(byte zp($a5) row, byte zp($a6) column) legal: { - .label __0 = $91 - .label __3 = $93 - .label __4 = $95 - .label row = $6f - .label column = $70 + .label __0 = $b1 + .label __3 = $b3 + .label __4 = $b5 + .label row = $a5 + .label column = $a6 // Placement is legal // The same column is a conflict. // The same diagonal is a conflict. - .label return = $71 + .label return = $a7 // Placement is legal // The same column is a conflict. // The same diagonal is a conflict. - .label return_1 = $45 - .label i = $44 - // [295] phi from legal to legal::@1 [phi:legal->legal::@1] + .label return_1 = $49 + .label i = $48 + // [361] phi from legal to legal::@1 [phi:legal->legal::@1] __b1_from_legal: - // [295] phi (byte) legal::i#2 = (byte) 1 [phi:legal->legal::@1#0] -- vbuz1=vbuc1 + // [361] phi (byte) legal::i#2 = (byte) 1 [phi:legal->legal::@1#0] -- vbuz1=vbuc1 lda #1 sta.z i jmp __b1 // legal::@1 __b1: - // [296] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuz1=vbuz2_minus_1 + // [362] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuz1=vbuz2_minus_1 ldx.z row dex stx.z __0 - // [297] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 -- vbuz1_le_vbuz2_then_la1 + // [363] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 -- vbuz1_le_vbuz2_then_la1 lda.z __0 cmp.z i bcs __b2 - // [298] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] + // [364] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] __breturn_from___b1: - // [298] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuz1=vbuc1 + // [364] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuz1=vbuc1 lda #1 sta.z return_1 jmp __breturn - // [298] phi from legal::@2 legal::@6 to legal::@return [phi:legal::@2/legal::@6->legal::@return] + // [364] phi from legal::@2 legal::@6 to legal::@return [phi:legal::@2/legal::@6->legal::@return] __breturn_from___b2: __breturn_from___b6: - // [298] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@6->legal::@return#0] -- vbuz1=vbuc1 + // [364] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@6->legal::@return#0] -- vbuz1=vbuc1 lda #0 sta.z return_1 jmp __breturn // legal::@return __breturn: - // [299] return + // [365] return rts // legal::@2 __b2: - // [300] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + // [366] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 ldy.z i lda board,y cmp.z column @@ -8173,96 +9672,96 @@ legal: { jmp __b4 // legal::@4 __b4: - // [301] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [367] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z i lda board,y sta.z diff.a - // [302] (byte) diff::b#0 ← (byte) legal::column#0 -- vbuz1=vbuz2 + // [368] (byte) diff::b#0 ← (byte) legal::column#0 -- vbuz1=vbuz2 lda.z column sta.z diff.b - // [303] call diff - // [313] phi from legal::@4 to diff [phi:legal::@4->diff] + // [369] call diff + // [379] phi from legal::@4 to diff [phi:legal::@4->diff] diff_from___b4: - // [313] phi (byte) diff::b#2 = (byte) diff::b#0 [phi:legal::@4->diff#0] -- register_copy - // [313] phi (byte) diff::a#2 = (byte) diff::a#0 [phi:legal::@4->diff#1] -- register_copy + // [379] phi (byte) diff::b#2 = (byte) diff::b#0 [phi:legal::@4->diff#0] -- register_copy + // [379] phi (byte) diff::a#2 = (byte) diff::a#0 [phi:legal::@4->diff#1] -- register_copy jsr diff - // [304] (byte) diff::return#0 ← (byte) diff::return#4 -- vbuz1=vbuz2 + // [370] (byte) diff::return#0 ← (byte) diff::return#4 -- vbuz1=vbuz2 lda.z diff.return_2 sta.z diff.return jmp __b5 // legal::@5 __b5: - // [305] (byte~) legal::$3 ← (byte) diff::return#0 -- vbuz1=vbuz2 + // [371] (byte~) legal::$3 ← (byte) diff::return#0 -- vbuz1=vbuz2 lda.z diff.return sta.z __3 - // [306] (byte) diff::a#1 ← (byte) legal::i#2 -- vbuz1=vbuz2 + // [372] (byte) diff::a#1 ← (byte) legal::i#2 -- vbuz1=vbuz2 lda.z i sta.z diff.a - // [307] (byte) diff::b#1 ← (byte) legal::row#0 -- vbuz1=vbuz2 + // [373] (byte) diff::b#1 ← (byte) legal::row#0 -- vbuz1=vbuz2 lda.z row sta.z diff.b - // [308] call diff - // [313] phi from legal::@5 to diff [phi:legal::@5->diff] + // [374] call diff + // [379] phi from legal::@5 to diff [phi:legal::@5->diff] diff_from___b5: - // [313] phi (byte) diff::b#2 = (byte) diff::b#1 [phi:legal::@5->diff#0] -- register_copy - // [313] phi (byte) diff::a#2 = (byte) diff::a#1 [phi:legal::@5->diff#1] -- register_copy + // [379] phi (byte) diff::b#2 = (byte) diff::b#1 [phi:legal::@5->diff#0] -- register_copy + // [379] phi (byte) diff::a#2 = (byte) diff::a#1 [phi:legal::@5->diff#1] -- register_copy jsr diff - // [309] (byte) diff::return#1 ← (byte) diff::return#4 -- vbuz1=vbuz2 + // [375] (byte) diff::return#1 ← (byte) diff::return#4 -- vbuz1=vbuz2 lda.z diff.return_2 sta.z diff.return_1 jmp __b6 // legal::@6 __b6: - // [310] (byte~) legal::$4 ← (byte) diff::return#1 -- vbuz1=vbuz2 + // [376] (byte~) legal::$4 ← (byte) diff::return#1 -- vbuz1=vbuz2 lda.z diff.return_1 sta.z __4 - // [311] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 -- vbuz1_neq_vbuz2_then_la1 + // [377] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 -- vbuz1_neq_vbuz2_then_la1 lda.z __3 cmp.z __4 bne __b3 jmp __breturn_from___b6 // legal::@3 __b3: - // [312] (byte) legal::i#1 ← ++ (byte) legal::i#2 -- vbuz1=_inc_vbuz1 + // [378] (byte) legal::i#1 ← ++ (byte) legal::i#2 -- vbuz1=_inc_vbuz1 inc.z i - // [295] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] + // [361] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] __b1_from___b3: - // [295] phi (byte) legal::i#2 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy + // [361] phi (byte) legal::i#2 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy jmp __b1 } // diff // Find the absolute difference between two unsigned chars -// diff(byte zp($46) a, byte zp($47) b) +// diff(byte zp($4a) a, byte zp($4b) b) diff: { - .label a = $46 - .label b = $47 - .label return = $92 - .label return_1 = $94 - .label return_2 = $48 - // [314] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 -- vbuz1_lt_vbuz2_then_la1 + .label a = $4a + .label b = $4b + .label return = $b2 + .label return_1 = $b4 + .label return_2 = $4c + // [380] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 -- vbuz1_lt_vbuz2_then_la1 lda.z a cmp.z b bcc __b1 jmp __b2 // diff::@2 __b2: - // [315] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 -- vbuz1=vbuz2_minus_vbuz3 + // [381] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 -- vbuz1=vbuz2_minus_vbuz3 lda.z a sec sbc.z b sta.z return_2 - // [316] phi from diff::@1 diff::@2 to diff::@return [phi:diff::@1/diff::@2->diff::@return] + // [382] phi from diff::@1 diff::@2 to diff::@return [phi:diff::@1/diff::@2->diff::@return] __breturn_from___b1: __breturn_from___b2: - // [316] phi (byte) diff::return#4 = (byte) diff::return#2 [phi:diff::@1/diff::@2->diff::@return#0] -- register_copy + // [382] phi (byte) diff::return#4 = (byte) diff::return#2 [phi:diff::@1/diff::@2->diff::@return#0] -- register_copy jmp __breturn // diff::@return __breturn: - // [317] return + // [383] return rts // diff::@1 __b1: - // [318] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 -- vbuz1=vbuz2_minus_vbuz3 + // [384] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 -- vbuz1=vbuz2_minus_vbuz3 lda.z b sec sbc.z a @@ -8278,531 +9777,670 @@ diff: { RADIX_DECIMAL_VALUES: .word $2710, $3e8, $64, $a // Values of decimal digits RADIX_DECIMAL_VALUES_LONG: .dword $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a + // The buffer used by tod_str() + tod_buffer: .text "00:00:00:00" + .byte 0 // The board. board[i] holds the column position of the queen on row i. board: .fill $14, 0 // Buffer used for stringified number being printed printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 + // Time of Day 00:00:00:00 + TOD_ZERO: .byte 0, 0, 0, 0 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] (byte) printf_cursor_x ← (byte) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [2] (byte) printf_cursor_y ← (byte) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [3] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [4] (dword) count ← (dword) 0 [ count printf_buffer ] ( [ count printf_buffer ] { } ) always clobbers reg byte a -Statement [16] stackpush(byte) ← (byte) 1 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer ] ( main:6 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer ] { } ) always clobbers reg byte a +Statement [1] (byte) printf_cursor_x ← (byte) 0 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a +Statement [2] (byte) printf_cursor_y ← (byte) 0 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a +Statement [3] (byte*) printf_cursor_ptr ← (byte*) 1024 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a +Statement [4] (dword) count ← (dword) 0 [ count TOD_ZERO printf_buffer ] ( [ count TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a +Statement [21] stackpush(byte) ← (byte) 1 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer ] ( main:6 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer ] { { tod_read::return_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_read::return_SEC#0 = tod_read::return_SEC#2 } { tod_read::return_MIN#0 = tod_read::return_MIN#2 } { tod_read::return_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a Statement sideeffect stackpullbytes((number) 1) always clobbers reg byte a -Statement [21] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] ( main:6::printf_uint:15 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a -Statement [28] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#0 = count } { 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 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:2 [ printf_number_buffer::format_min_length#3 ] -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 ] -Removing always clobbered register reg byte a as potential for zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:8 [ printf_number_buffer::format_upper_case#10 ] -Removing always clobbered register reg byte a as potential for zp[1]:45 [ print::i1#2 print::i1#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:44 [ print::i#2 print::i#1 ] -Statement [30] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = count } { 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 } } ) always clobbers reg byte a -Statement [31] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [32] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [36] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [53] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:10 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Statement [55] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr 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:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr 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_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr 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_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr 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_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [71] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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 ] -Removing always clobbered register reg byte y as potential for zp[1]:8 [ printf_number_buffer::format_upper_case#10 ] -Removing always clobbered register reg byte y as potential for zp[1]:10 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:45 [ print::i1#2 print::i1#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:44 [ print::i#2 print::i#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:11 [ 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]:12 [ printf_padding::pad#5 ] -Removing always clobbered register reg byte y as potential for zp[1]:13 [ printf_padding::i#2 printf_padding::i#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:46 [ print::j#2 print::j#1 ] -Statement [74] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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]:11 [ 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]:12 [ printf_padding::pad#5 ] -Removing always clobbered register reg byte a as potential for zp[1]:13 [ printf_padding::i#2 printf_padding::i#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:46 [ print::j#2 print::j#1 ] -Statement [75] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a -Statement [79] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [84] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 [ printf_cursor_y printf_scroll::$4 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77 [ count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120 [ count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } ) always clobbers reg byte a -Statement [85] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [89] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_cls:9::memset:172 [ count 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]:19 [ memset::c#4 ] -Statement [90] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_cls:9::memset:172 [ count printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [91] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_cls:9::memset:172 [ count printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [93] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_cls:9::memset:172 [ count printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [95] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_cls:9::memset:172 [ count 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]:19 [ memset::c#4 ] -Statement [99] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memcpy:81 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a -Statement [101] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memcpy:81 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [106] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#10) [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] ( main:6::printf_str:11 [ count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::printf_str:13 [ count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200 [ queen::r queen::column count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::queen:17::print:198::printf_str:204 [ queen::r queen::column count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::queen:17::print:198::printf_str:211 [ queen::r queen::column count printf_buffer print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::queen:17::print:198::printf_str:219 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::queen:17::print:198::printf_str:222 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } ) always clobbers reg byte a reg byte y -Statement [115] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x [ printf_cursor_y printf_ln::$0 ] ( main:6::printf_str:11::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:13::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114 [ count 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_cursor_y printf_ln::$0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i1#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114 [ queen::r queen::column count 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } ) always clobbers reg byte a -Statement [116] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 [ printf_cursor_y printf_ln::$1 ] ( main:6::printf_str:11::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:13::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114 [ count 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_cursor_y printf_ln::$1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i1#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114 [ queen::r queen::column count 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } ) always clobbers reg byte a -Statement [117] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114 [ count 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_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i1#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114 [ queen::r queen::column count 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [118] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [124] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::strupr:54 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strupr:54 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y -Statement [126] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:6::printf_uint:15::printf_number_buffer:24::strupr:54 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strupr:54 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [130] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::strupr:54 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strupr:54 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte y -Statement [134] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:6::printf_uint:15::printf_number_buffer:24::strupr:54::toupper:127 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strupr:54::toupper:127 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strupr:54::toupper:127 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strupr:54::toupper:127 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a -Statement [139] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::strlen:29 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strlen:29 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strlen:29 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strlen:29 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#2 ] { { printf_ulong::uvalue#0 = count } { 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 } } ) 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#3 ] -Statement [146] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a -Statement [147] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [148] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [149] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [151] (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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:35 [ utoa::digit#2 utoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:38 [ utoa::started#2 utoa::started#4 ] -Statement [152] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [154] 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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [157] (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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [158] (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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [159] (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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [161] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [162] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [166] 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:6::printf_uint:15::utoa:22::utoa_append:160 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:43 [ utoa_append::digit#2 utoa_append::digit#1 ] -Statement [167] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:6::printf_uint:15::utoa:22::utoa_append:160 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:35 [ utoa::digit#2 utoa::digit#1 ] -Statement [170] (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:6::printf_uint:15::utoa:22::utoa_append:160 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [173] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_cursor_ptr ] ( main:6::printf_cls:9 [ count printf_buffer printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [174] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_ptr ] ( main:6::printf_cls:9 [ count printf_buffer printf_cursor_x printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [175] (byte) printf_cursor_y ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_cls:9 [ count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [177] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::row#0 ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::row#0 ] { } ) always clobbers reg byte a reg byte x -Statement [179] (byte) queen::column ← (byte) 1 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a -Statement [180] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a -Statement [188] *((const byte*) board + (byte) queen::r) ← (byte) queen::column [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a reg byte y -Statement [189] if((byte) queen::r==(byte) 8) goto queen::@4 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a +Statement [36] (dword) printf_ulong::uvalue#0 ← (dword) count [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] ( main:6 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } } ) always clobbers reg byte a +Statement [47] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] ( main:6::printf_str:11 [ count TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_str:13 [ count TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_str:35 [ count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_str:39 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_str:43 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_string:41::printf_str:99 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301 [ queen::r queen::column count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::queen:22::print:299::printf_str:305 [ queen::r queen::column count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::queen:22::print:299::printf_str:312 [ queen::r queen::column count printf_buffer print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::queen:22::print:299::printf_str:320 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::queen:22::print:299::printf_str:323 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte a as potential for zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] +Removing always clobbered register reg byte y as potential for zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] +Removing always clobbered register reg byte a as potential for zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] +Removing always clobbered register reg byte y as potential for zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] +Removing always clobbered register reg byte a as potential for zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:62 [ print::i1#2 print::i1#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:62 [ print::i1#2 print::i1#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:61 [ print::i#2 print::i#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:61 [ print::i#2 print::i#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:63 [ print::j#2 print::j#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:63 [ print::j#2 print::j#1 ] +Statement [56] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x [ printf_cursor_y printf_ln::$0 ] ( main:6::printf_str:11::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:13::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:35::printf_ln:55 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:39::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:43::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55 [ 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55 [ queen::r queen::column count 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55 [ count TOD_ZERO 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_cursor_y printf_ln::$0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i1#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } ) always clobbers reg byte a +Statement [57] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 [ printf_cursor_y printf_ln::$1 ] ( main:6::printf_str:11::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:13::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:35::printf_ln:55 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:39::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:43::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55 [ 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55 [ queen::r queen::column count 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55 [ count TOD_ZERO 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_cursor_y printf_ln::$1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i1#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } ) always clobbers reg byte a +Statement [58] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:35::printf_ln:55 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:39::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:43::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_string:41::printf_str:99::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55 [ 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55 [ queen::r queen::column count 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55 [ count TOD_ZERO 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_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i1#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [59] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:35::printf_ln:55 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:39::printf_ln:55 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:43::printf_ln:55 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_string:41::printf_str:99::printf_ln:55 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [63] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Removing always clobbered register reg byte a as potential for zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:30 [ printf_padding::pad#7 ] +Removing always clobbered register reg byte a as potential for zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] +Statement [68] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 [ printf_cursor_y printf_scroll::$4 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [69] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [73] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO 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]:8 [ memset::c#4 ] +Statement [74] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [75] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [77] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [79] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO 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]:8 [ memset::c#4 ] +Removing always clobbered register reg byte y as potential for zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Removing always clobbered register reg byte y as potential for zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:30 [ printf_padding::pad#7 ] +Removing always clobbered register reg byte y as potential for zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] +Statement [83] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memcpy:65 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memcpy:65 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memcpy:65 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [85] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memcpy:65 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memcpy:65 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memcpy:65 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a reg byte y +Statement [89] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte y +Statement [92] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [93] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [102] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] ( main:6::printf_ulong:37 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [103] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] ( main:6::printf_ulong:37 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [110] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { 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:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { 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:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { 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:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { 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]:20 [ printf_number_buffer::format_min_length#3 ] +Statement [112] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { 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:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { 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:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#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:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [113] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a +Statement [114] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a +Statement [118] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a +Statement [135] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [137] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [154] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strupr:136 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strupr:136 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::strupr:136 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y +Statement [156] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strupr:136 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strupr:136 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::printf_uint:15::printf_number_buffer:242::strupr:136 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y +Statement [160] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strupr:136 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strupr:136 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::strupr:136 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte y +Statement [164] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strupr:136::toupper:157 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strupr:136::toupper:157 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::printf_uint:15::printf_number_buffer:242::strupr:136::toupper:157 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strupr:136::toupper:157 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strupr:136::toupper:157 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a +Statement [169] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 [ strlen::len#2 strlen::str#3 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strlen:111 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { 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:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strlen:111 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { 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:6::printf_uint:15::printf_number_buffer:242::strlen:111 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { 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:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strlen:111 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strlen:111 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { 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]:20 [ printf_number_buffer::format_min_length#3 ] +Statement [176] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [177] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [178] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [179] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [181] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:44 [ ultoa::started#2 ultoa::started#4 ] +Statement [182] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [184] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [187] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [188] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [189] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [191] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [192] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [196] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:6::printf_ulong:37::ultoa:104::ultoa_append:190 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104::ultoa_append:190 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] +Statement [197] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:6::printf_ulong:37::ultoa:104::ultoa_append:190 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104::ultoa_append:190 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] +Statement [200] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:6::printf_ulong:37::ultoa:104::ultoa_append:190 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104::ultoa_append:190 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [201] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:93 [ tod_str::tod_TENTHS#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:94 [ tod_str::tod_SEC#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:95 [ tod_str::tod_MIN#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:96 [ tod_str::tod_HOURS#0 ] +Statement [204] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [207] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [210] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [213] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [216] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [219] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [222] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::$14 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [231] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:6::tod_init:20 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:85 [ tod_init::tod_TENTHS#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:86 [ tod_init::tod_SEC#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:87 [ tod_init::tod_MIN#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:88 [ tod_init::tod_HOURS#0 ] +Statement [232] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:6::tod_init:20 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [239] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] ( main:6::printf_uint:15 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a +Statement [247] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a +Statement [248] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y +Statement [249] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [250] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [252] (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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:52 [ utoa::digit#2 utoa::digit#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:55 [ utoa::started#2 utoa::started#4 ] +Statement [253] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [255] 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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [258] (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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [259] (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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [260] (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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [262] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [263] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [267] 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:6::printf_uint:15::utoa:240::utoa_append:261 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:60 [ utoa_append::digit#2 utoa_append::digit#1 ] +Statement [268] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:6::printf_uint:15::utoa:240::utoa_append:261 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:52 [ utoa::digit#2 utoa::digit#1 ] +Statement [271] (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:6::printf_uint:15::utoa:240::utoa_append:261 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [274] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_cursor_ptr ] ( main:6::printf_cls:9 [ count TOD_ZERO printf_buffer printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [275] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_ptr ] ( main:6::printf_cls:9 [ count TOD_ZERO printf_buffer printf_cursor_x printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [276] (byte) printf_cursor_y ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_cls:9 [ count TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [278] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::row#0 ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::row#0 ] { } ) always clobbers reg byte a reg byte x +Statement [280] (byte) queen::column ← (byte) 1 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a +Statement [281] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a +Statement [289] *((const byte*) board + (byte) queen::r) ← (byte) queen::column [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a reg byte y +Statement [290] if((byte) queen::r==(byte) 8) goto queen::@4 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a Statement asm { ldacolumn pha ldar pha } always clobbers reg byte a Statement sideeffect stackpullbytes((number) 1) always clobbers reg byte a Statement asm { pla star pla stacolumn } always clobbers reg byte a -Statement [201] (dword) printf_ulong::uvalue#0 ← (dword) count [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer printf_ulong::uvalue#0 ] ( main:6::queen:17::print:198 [ queen::r queen::column printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer printf_ulong::uvalue#0 ] { { printf_ulong::uvalue#0 = count } } ) always clobbers reg byte a -Statement [217] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer print::i1#2 print::j#2 ] ( main:6::queen:17::print:198 [ queen::r queen::column printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer print::i1#2 print::j#2 ] { } ) always clobbers reg byte a -Statement [227] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] ( main:6::queen:17::print:198::printf_uchar:213 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:17::print:198::printf_uchar:224 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:47 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] -Statement [236] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:17::print:198::printf_uchar:224::uctoa:229 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [237] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:17::print:198::printf_uchar:224::uctoa:229 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a -Statement [238] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:17::print:198::printf_uchar:224::uctoa:229 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [245] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:17::print:198::printf_uchar:224::uctoa:229 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:48 [ uctoa::digit#2 uctoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:49 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:122 [ uctoa::digit_value#0 ] -Statement [255] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229::uctoa_append:248 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:17::print:198::printf_uchar:224::uctoa:229::uctoa_append:248 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:48 [ uctoa::digit#2 uctoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:53 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:53 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Statement [258] (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:6::queen:17::print:198::printf_uchar:213::uctoa:229::uctoa_append:248 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:17::print:198::printf_uchar:224::uctoa:229::uctoa_append:248 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:125 [ uctoa_append::sub#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:54 [ uctoa_append::digit#2 uctoa_append::digit#1 ] -Statement [260] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_ulong::uvalue#0 ] ( main:6::queen:17::print:198::printf_ulong:202 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_ulong::uvalue#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [261] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] ( main:6::queen:17::print:198::printf_ulong:202 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [269] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [270] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [271] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [272] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [274] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:55 [ ultoa::digit#2 ultoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:60 [ ultoa::started#2 ultoa::started#4 ] -Statement [275] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [277] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [280] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [281] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [282] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [284] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [285] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [289] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262::ultoa_append:283 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:67 [ ultoa_append::digit#2 ultoa_append::digit#1 ] -Statement [290] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262::ultoa_append:283 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:55 [ ultoa::digit#2 ultoa::digit#1 ] -Statement [293] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262::ultoa_append:283 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [300] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return [ legal::row#0 legal::column#0 legal::i#2 ] ( main:6::queen:17::legal:184 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 ] { { legal::row#0 = queen::r } { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:111 [ legal::row#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:112 [ legal::column#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:68 [ legal::i#2 legal::i#1 ] -Statement [315] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 [ diff::return#3 ] ( main:6::queen:17::legal:184::diff:303 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 diff::return#3 ] { { legal::row#0 = queen::r } { legal::return#0 = legal::return#4 } { diff::a#0 = diff::a#2 } { diff::b#0 = diff::b#2 legal::column#0 queen::column } { diff::return#0 = diff::return#4 } } main:6::queen:17::legal:184::diff:308 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 legal::$3 diff::return#3 ] { { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } { diff::a#1 = diff::a#2 legal::i#2 } { diff::b#1 = diff::b#2 legal::row#0 queen::r } { diff::return#1 = diff::return#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:147 [ legal::$3 ] -Statement [318] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 [ diff::return#2 ] ( main:6::queen:17::legal:184::diff:303 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 diff::return#2 ] { { legal::row#0 = queen::r } { legal::return#0 = legal::return#4 } { diff::a#0 = diff::a#2 } { diff::b#0 = diff::b#2 legal::column#0 queen::column } { diff::return#0 = diff::return#4 } } main:6::queen:17::legal:184::diff:308 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 legal::$3 diff::return#2 ] { { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } { diff::a#1 = diff::a#2 legal::i#2 } { diff::b#1 = diff::b#2 legal::row#0 queen::r } { diff::return#1 = diff::return#4 } } ) always clobbers reg byte a -Statement [1] (byte) printf_cursor_x ← (byte) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [2] (byte) printf_cursor_y ← (byte) 0 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [3] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [4] (dword) count ← (dword) 0 [ count printf_buffer ] ( [ count printf_buffer ] { } ) always clobbers reg byte a -Statement [16] stackpush(byte) ← (byte) 1 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer ] ( main:6 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer ] { } ) always clobbers reg byte a +Statement [302] (dword) printf_ulong::uvalue#1 ← (dword) count [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_ulong::uvalue#1 printf_buffer ] ( main:6::queen:22::print:299 [ queen::r queen::column printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_ulong::uvalue#1 printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } } ) always clobbers reg byte a +Statement [318] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer print::i1#2 print::j#2 ] ( main:6::queen:22::print:299 [ queen::r queen::column printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer print::i1#2 print::j#2 ] { } ) always clobbers reg byte a +Statement [328] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] ( main:6::queen:22::print:299::printf_uchar:314 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:22::print:299::printf_uchar:325 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:64 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +Statement [337] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:22::print:299::printf_uchar:325::uctoa:330 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [338] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:22::print:299::printf_uchar:325::uctoa:330 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a +Statement [339] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:22::print:299::printf_uchar:325::uctoa:330 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [346] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:22::print:299::printf_uchar:325::uctoa:330 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:65 [ uctoa::digit#2 uctoa::digit#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:66 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:172 [ uctoa::digit_value#0 ] +Statement [356] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330::uctoa_append:349 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:22::print:299::printf_uchar:325::uctoa:330::uctoa_append:349 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:65 [ uctoa::digit#2 uctoa::digit#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:70 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:70 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] +Statement [359] (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:6::queen:22::print:299::printf_uchar:314::uctoa:330::uctoa_append:349 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:22::print:299::printf_uchar:325::uctoa:330::uctoa_append:349 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:175 [ uctoa_append::sub#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:71 [ uctoa_append::digit#2 uctoa_append::digit#1 ] +Statement [366] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return [ legal::row#0 legal::column#0 legal::i#2 ] ( main:6::queen:22::legal:285 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 ] { { legal::row#0 = queen::r } { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:165 [ legal::row#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:166 [ legal::column#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:72 [ legal::i#2 legal::i#1 ] +Statement [381] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 [ diff::return#3 ] ( main:6::queen:22::legal:285::diff:369 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 diff::return#3 ] { { legal::row#0 = queen::r } { legal::return#0 = legal::return#4 } { diff::a#0 = diff::a#2 } { diff::b#0 = diff::b#2 legal::column#0 queen::column } { diff::return#0 = diff::return#4 } } main:6::queen:22::legal:285::diff:374 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 legal::$3 diff::return#3 ] { { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } { diff::a#1 = diff::a#2 legal::i#2 } { diff::b#1 = diff::b#2 legal::row#0 queen::r } { diff::return#1 = diff::return#4 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:179 [ legal::$3 ] +Statement [384] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 [ diff::return#2 ] ( main:6::queen:22::legal:285::diff:369 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 diff::return#2 ] { { legal::row#0 = queen::r } { legal::return#0 = legal::return#4 } { diff::a#0 = diff::a#2 } { diff::b#0 = diff::b#2 legal::column#0 queen::column } { diff::return#0 = diff::return#4 } } main:6::queen:22::legal:285::diff:374 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 legal::$3 diff::return#2 ] { { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } { diff::a#1 = diff::a#2 legal::i#2 } { diff::b#1 = diff::b#2 legal::row#0 queen::r } { diff::return#1 = diff::return#4 } } ) always clobbers reg byte a +Statement [1] (byte) printf_cursor_x ← (byte) 0 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a +Statement [2] (byte) printf_cursor_y ← (byte) 0 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a +Statement [3] (byte*) printf_cursor_ptr ← (byte*) 1024 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a +Statement [4] (dword) count ← (dword) 0 [ count TOD_ZERO printf_buffer ] ( [ count TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a +Statement [21] stackpush(byte) ← (byte) 1 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer ] ( main:6 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer ] { { tod_read::return_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_read::return_SEC#0 = tod_read::return_SEC#2 } { tod_read::return_MIN#0 = tod_read::return_MIN#2 } { tod_read::return_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a Statement sideeffect stackpullbytes((number) 1) always clobbers reg byte a -Statement [21] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] ( main:6::printf_uint:15 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a -Statement [28] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#0 = count } { 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 } } ) always clobbers reg byte a -Statement [30] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = count } { 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 } } ) always clobbers reg byte a -Statement [31] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [32] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [36] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [53] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] ( main:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [55] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr 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:6::printf_uint:15::printf_number_buffer:24 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr 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_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr 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_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr 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_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [71] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte y -Statement [74] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a -Statement [75] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a -Statement [79] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [84] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 [ printf_cursor_y printf_scroll::$4 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77 [ count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120 [ count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } ) always clobbers reg byte a -Statement [85] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [89] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_cls:9::memset:172 [ count printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [90] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_cls:9::memset:172 [ count printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [91] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { 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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_cls:9::memset:172 [ count printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [93] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_cls:9::memset:172 [ count printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [95] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memset:83 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memset:83 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_cls:9::memset:172 [ count printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [99] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memcpy:81 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a -Statement [101] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::printf_char:47::printf_scroll:77::memcpy:81 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_char:47::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:44::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:51::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_uint:15::printf_number_buffer:24::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_padding:61::printf_char:68::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { 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:6::printf_str:11::printf_char:112::printf_scroll:77::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:112::printf_scroll:77::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:200::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:204::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:211::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:219::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:17::print:198::printf_str:222::printf_char:112::printf_scroll:77::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:11::printf_ln:114::printf_scroll:120::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:13::printf_ln:114::printf_scroll:120::memcpy:81 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114::printf_scroll:120::memcpy:81 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [106] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#10) [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] ( main:6::printf_str:11 [ count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::printf_str:13 [ count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56 [ count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200 [ queen::r queen::column count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::queen:17::print:198::printf_str:204 [ queen::r queen::column count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::queen:17::print:198::printf_str:211 [ queen::r queen::column count printf_buffer print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::queen:17::print:198::printf_str:219 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } main:6::queen:17::print:198::printf_str:222 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#10 printf_str::ch#0 ] { } ) always clobbers reg byte a reg byte y -Statement [115] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x [ printf_cursor_y printf_ln::$0 ] ( main:6::printf_str:11::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:13::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114 [ count 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_cursor_y printf_ln::$0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i1#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114 [ queen::r queen::column count 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } ) always clobbers reg byte a -Statement [116] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 [ printf_cursor_y printf_ln::$1 ] ( main:6::printf_str:11::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:13::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114 [ count 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_cursor_y printf_ln::$1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i1#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114 [ queen::r queen::column count 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } ) always clobbers reg byte a -Statement [117] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114 [ count 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_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i1#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114 [ queen::r queen::column count 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [118] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:114 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_uint:15::printf_number_buffer:24::printf_str:56::printf_ln:114 [ count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::printf_str:56::printf_ln:114 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::printf_str:56::printf_ln:114 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#11 printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_str:200::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:204::printf_ln:114 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:211::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:219::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:17::print:198::printf_str:222::printf_ln:114 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [124] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::strupr:54 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strupr:54 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y -Statement [126] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:6::printf_uint:15::printf_number_buffer:24::strupr:54 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strupr:54 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [130] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::strupr:54 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strupr:54 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strupr:54 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte y -Statement [134] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:6::printf_uint:15::printf_number_buffer:24::strupr:54::toupper:127 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strupr:54::toupper:127 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strupr:54::toupper:127 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strupr:54::toupper:127 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#0 = count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a -Statement [139] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:6::printf_uint:15::printf_number_buffer:24::strlen:29 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#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:6::queen:17::print:198::printf_uchar:213::printf_number_buffer:231::strlen:29 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_uchar:224::printf_number_buffer:231::strlen:29 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:17::print:198::printf_ulong:202::printf_number_buffer:264::strlen:29 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#2 ] { { printf_ulong::uvalue#0 = count } { 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 } } ) always clobbers reg byte a reg byte y -Statement [146] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a -Statement [147] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [148] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [149] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [151] (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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a -Statement [152] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [154] 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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [157] (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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [158] (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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [159] (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:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [161] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [162] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:6::printf_uint:15::utoa:22 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [166] 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:6::printf_uint:15::utoa:22::utoa_append:160 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [167] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:6::printf_uint:15::utoa:22::utoa_append:160 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [170] (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:6::printf_uint:15::utoa:22::utoa_append:160 [ count printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [173] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_cursor_ptr ] ( main:6::printf_cls:9 [ count printf_buffer printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [174] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_ptr ] ( main:6::printf_cls:9 [ count printf_buffer printf_cursor_x printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [175] (byte) printf_cursor_y ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_cls:9 [ count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [177] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::row#0 ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::row#0 ] { } ) always clobbers reg byte a reg byte x -Statement [179] (byte) queen::column ← (byte) 1 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a -Statement [180] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a -Statement [188] *((const byte*) board + (byte) queen::r) ← (byte) queen::column [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a reg byte y -Statement [189] if((byte) queen::r==(byte) 8) goto queen::@4 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:17 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a +Statement [36] (dword) printf_ulong::uvalue#0 ← (dword) count [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] ( main:6 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } } ) always clobbers reg byte a +Statement [47] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] ( main:6::printf_str:11 [ count TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_str:13 [ count TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_str:35 [ count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_str:39 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_str:43 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_string:41::printf_str:99 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301 [ queen::r queen::column count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::queen:22::print:299::printf_str:305 [ queen::r queen::column count printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::queen:22::print:299::printf_str:312 [ queen::r queen::column count printf_buffer print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::queen:22::print:299::printf_str:320 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:6::queen:22::print:299::printf_str:323 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } ) always clobbers reg byte a reg byte y +Statement [56] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x [ printf_cursor_y printf_ln::$0 ] ( main:6::printf_str:11::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:13::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:35::printf_ln:55 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:39::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_str:43::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55 [ 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55 [ queen::r queen::column count 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55 [ count TOD_ZERO 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_cursor_y printf_ln::$0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i1#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } ) always clobbers reg byte a +Statement [57] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 [ printf_cursor_y printf_ln::$1 ] ( main:6::printf_str:11::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:13::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:35::printf_ln:55 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:39::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_str:43::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55 [ 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55 [ queen::r queen::column count 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55 [ count TOD_ZERO 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_cursor_y printf_ln::$1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i1#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } ) always clobbers reg byte a +Statement [58] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:35::printf_ln:55 [ count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:39::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:43::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_string:41::printf_str:99::printf_ln:55 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55 [ 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55 [ queen::r queen::column count 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55 [ count TOD_ZERO 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_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i1#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [59] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:55 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:35::printf_ln:55 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:39::printf_ln:55 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:43::printf_ln:55 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_string:41::printf_str:99::printf_ln:55 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [63] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [68] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 [ printf_cursor_y printf_scroll::$4 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [69] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 [ printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [73] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a +Statement [74] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [75] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [77] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [79] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memset:67 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memset:67 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memset:67 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_cls:9::memset:273 [ count TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [83] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memcpy:65 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memcpy:65 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memcpy:65 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [85] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:6::printf_str:11::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:13::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:35::printf_ln:55::printf_scroll:61::memcpy:65 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:39::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:43::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_string:41::printf_str:99::printf_ln:55::printf_scroll:61::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_str:301::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:305::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:312::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:320::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::queen:22::print:299::printf_str:323::printf_ln:55::printf_scroll:61::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:6::printf_str:11::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53::printf_scroll:95::memcpy:65 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53::printf_scroll:95::memcpy:65 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129::printf_scroll:95::memcpy:65 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150::printf_scroll:95::memcpy:65 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a reg byte y +Statement [89] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte y +Statement [92] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [93] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_str:11::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:13::printf_char:53 [ count TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:35::printf_char:53 [ count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:39::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_str:43::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_string:41::printf_str:99::printf_char:53 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_str:138::printf_char:53 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_str:138::printf_char:53 [ queen::r queen::column count 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_str:138::printf_char:53 [ count TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_str:138::printf_char:53 [ queen::r queen::column count print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:301::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:305::printf_char:53 [ queen::r queen::column count printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:312::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:320::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::queen:22::print:299::printf_str:323::printf_char:53 [ queen::r queen::column count printf_buffer print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_char:129 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_char:129 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:6::printf_uint:15::printf_number_buffer:242::printf_char:129 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_char:129 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:126::printf_char:150 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:126::printf_char:150 [ queen::r queen::column count printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:126::printf_char:150 [ count TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:126::printf_char:150 [ queen::r queen::column count print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:133::printf_char:150 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:133::printf_char:150 [ queen::r queen::column count printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:133::printf_char:150 [ count TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:133::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_ulong:37::printf_number_buffer:106::printf_padding:143::printf_char:150 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::printf_padding:143::printf_char:150 [ queen::r queen::column count printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::printf_uint:15::printf_number_buffer:242::printf_padding:143::printf_char:150 [ count TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::printf_padding:143::printf_char:150 [ queen::r queen::column count print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [102] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] ( main:6::printf_ulong:37 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [103] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] ( main:6::printf_ulong:37 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [110] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { 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:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { 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:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { 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:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [112] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { 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:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { 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:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#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:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [113] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a +Statement [114] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a +Statement [118] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } ) always clobbers reg byte a +Statement [135] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [137] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] ( main:6::printf_ulong:37::printf_number_buffer:106 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [154] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strupr:136 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strupr:136 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::strupr:136 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y +Statement [156] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strupr:136 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strupr:136 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::printf_uint:15::printf_number_buffer:242::strupr:136 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y +Statement [160] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strupr:136 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strupr:136 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::printf_uint:15::printf_number_buffer:242::strupr:136 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strupr:136 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte y +Statement [164] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strupr:136::toupper:157 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strupr:136::toupper:157 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::printf_uint:15::printf_number_buffer:242::strupr:136::toupper:157 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strupr:136::toupper:157 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strupr:136::toupper:157 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a +Statement [169] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 [ strlen::len#2 strlen::str#3 ] ( main:6::printf_ulong:37::printf_number_buffer:106::strlen:111 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count } { 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:6::queen:22::print:299::printf_ulong:303::printf_number_buffer:106::strlen:111 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } { 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:6::printf_uint:15::printf_number_buffer:242::strlen:111 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { 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:6::queen:22::print:299::printf_uchar:314::printf_number_buffer:332::strlen:111 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:6::queen:22::print:299::printf_uchar:325::printf_number_buffer:332::strlen:111 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [176] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [177] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [178] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [179] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [181] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [182] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [184] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [187] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [188] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [189] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [191] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [192] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:6::printf_ulong:37::ultoa:104 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } } ) always clobbers reg byte a +Statement [196] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:6::printf_ulong:37::ultoa:104::ultoa_append:190 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104::ultoa_append:190 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [197] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:6::printf_ulong:37::ultoa:104::ultoa_append:190 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104::ultoa_append:190 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [200] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:6::printf_ulong:37::ultoa:104::ultoa_append:190 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:6::queen:22::print:299::printf_ulong:303::ultoa:104::ultoa_append:190 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [201] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [204] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [207] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [210] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [213] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [216] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [219] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [222] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:6::tod_str:33 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_str::$14 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [231] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:6::tod_init:20 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [232] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:6::tod_init:20 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [239] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] ( main:6::printf_uint:15 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a +Statement [247] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a +Statement [248] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y +Statement [249] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [250] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [252] (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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a +Statement [253] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [255] 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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [258] (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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [259] (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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [260] (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:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [262] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [263] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:6::printf_uint:15::utoa:240 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [267] 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:6::printf_uint:15::utoa:240::utoa_append:261 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [268] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:6::printf_uint:15::utoa:240::utoa_append:261 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [271] (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:6::printf_uint:15::utoa:240::utoa_append:261 [ count TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [274] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_cursor_ptr ] ( main:6::printf_cls:9 [ count TOD_ZERO printf_buffer printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [275] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_ptr ] ( main:6::printf_cls:9 [ count TOD_ZERO printf_buffer printf_cursor_x printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [276] (byte) printf_cursor_y ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:6::printf_cls:9 [ count TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [278] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::row#0 ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::row#0 ] { } ) always clobbers reg byte a reg byte x +Statement [280] (byte) queen::column ← (byte) 1 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a +Statement [281] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a +Statement [289] *((const byte*) board + (byte) queen::r) ← (byte) queen::column [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a reg byte y +Statement [290] if((byte) queen::r==(byte) 8) goto queen::@4 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] ( main:6::queen:22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column ] { } ) always clobbers reg byte a Statement asm { ldacolumn pha ldar pha } always clobbers reg byte a Statement sideeffect stackpullbytes((number) 1) always clobbers reg byte a Statement asm { pla star pla stacolumn } always clobbers reg byte a -Statement [201] (dword) printf_ulong::uvalue#0 ← (dword) count [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer printf_ulong::uvalue#0 ] ( main:6::queen:17::print:198 [ queen::r queen::column printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer printf_ulong::uvalue#0 ] { { printf_ulong::uvalue#0 = count } } ) always clobbers reg byte a -Statement [217] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer print::i1#2 print::j#2 ] ( main:6::queen:17::print:198 [ queen::r queen::column printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer print::i1#2 print::j#2 ] { } ) always clobbers reg byte a -Statement [227] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] ( main:6::queen:17::print:198::printf_uchar:213 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:17::print:198::printf_uchar:224 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a -Statement [236] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:17::print:198::printf_uchar:224::uctoa:229 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [237] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:17::print:198::printf_uchar:224::uctoa:229 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a -Statement [238] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:17::print:198::printf_uchar:224::uctoa:229 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [245] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:17::print:198::printf_uchar:224::uctoa:229 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [255] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:6::queen:17::print:198::printf_uchar:213::uctoa:229::uctoa_append:248 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:17::print:198::printf_uchar:224::uctoa:229::uctoa_append:248 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [258] (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:6::queen:17::print:198::printf_uchar:213::uctoa:229::uctoa_append:248 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:17::print:198::printf_uchar:224::uctoa:229::uctoa_append:248 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [260] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_ulong::uvalue#0 ] ( main:6::queen:17::print:198::printf_ulong:202 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_ulong::uvalue#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [261] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] ( main:6::queen:17::print:198::printf_ulong:202 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [269] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [270] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [271] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [272] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [274] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [275] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [277] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [280] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [281] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [282] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [284] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [285] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } } ) always clobbers reg byte a -Statement [289] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262::ultoa_append:283 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [290] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262::ultoa_append:283 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [293] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:6::queen:17::print:198::printf_ulong:202::ultoa:262::ultoa_append:283 [ queen::r queen::column count printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#0 = count ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [300] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return [ legal::row#0 legal::column#0 legal::i#2 ] ( main:6::queen:17::legal:184 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 ] { { legal::row#0 = queen::r } { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Statement [315] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 [ diff::return#3 ] ( main:6::queen:17::legal:184::diff:303 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 diff::return#3 ] { { legal::row#0 = queen::r } { legal::return#0 = legal::return#4 } { diff::a#0 = diff::a#2 } { diff::b#0 = diff::b#2 legal::column#0 queen::column } { diff::return#0 = diff::return#4 } } main:6::queen:17::legal:184::diff:308 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 legal::$3 diff::return#3 ] { { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } { diff::a#1 = diff::a#2 legal::i#2 } { diff::b#1 = diff::b#2 legal::row#0 queen::r } { diff::return#1 = diff::return#4 } } ) always clobbers reg byte a -Statement [318] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 [ diff::return#2 ] ( main:6::queen:17::legal:184::diff:303 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 diff::return#2 ] { { legal::row#0 = queen::r } { legal::return#0 = legal::return#4 } { diff::a#0 = diff::a#2 } { diff::b#0 = diff::b#2 legal::column#0 queen::column } { diff::return#0 = diff::return#4 } } main:6::queen:17::legal:184::diff:308 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 legal::$3 diff::return#2 ] { { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } { diff::a#1 = diff::a#2 legal::i#2 } { diff::b#1 = diff::b#2 legal::row#0 queen::r } { diff::return#1 = diff::return#4 } } ) always clobbers reg byte a -Potential registers zp[1]:2 [ printf_number_buffer::format_min_length#3 ] : 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 ] : zp[1]:4 , reg byte x , -Potential registers zp[2]:5 [ printf_number_buffer::buffer_digits#10 ] : zp[2]:5 , -Potential registers zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] : zp[1]:7 , reg byte x , -Potential registers zp[1]:8 [ printf_number_buffer::format_upper_case#10 ] : zp[1]:8 , reg byte x , -Potential registers zp[1]:9 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] : zp[1]:9 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:10 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] : zp[1]:10 , reg byte x , -Potential registers zp[1]:11 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] : zp[1]:11 , reg byte x , -Potential registers zp[1]:12 [ printf_padding::pad#5 ] : zp[1]:12 , reg byte x , -Potential registers zp[1]:13 [ printf_padding::i#2 printf_padding::i#1 ] : zp[1]:13 , reg byte x , -Potential registers zp[1]:14 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] : zp[1]:14 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:15 [ memset::num#2 ] : zp[2]:15 , -Potential registers zp[2]:17 [ memset::str#3 ] : zp[2]:17 , -Potential registers zp[1]:19 [ memset::c#4 ] : zp[1]:19 , reg byte x , -Potential registers zp[2]:20 [ memset::dst#2 memset::dst#4 memset::dst#1 ] : zp[2]:20 , -Potential registers zp[2]:22 [ memcpy::src#2 memcpy::src#1 ] : zp[2]:22 , -Potential registers zp[2]:24 [ memcpy::dst#2 memcpy::dst#1 ] : zp[2]:24 , -Potential registers zp[2]:26 [ printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] : zp[2]:26 , -Potential registers zp[2]:28 [ strupr::src#2 strupr::str#0 strupr::src#1 ] : zp[2]:28 , -Potential registers zp[1]:30 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] : zp[1]:30 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:31 [ strlen::str#2 strlen::str#1 strlen::str#0 ] : zp[2]:31 , -Potential registers zp[2]:33 [ strlen::len#2 strlen::len#1 ] : zp[2]:33 , -Potential registers zp[1]:35 [ utoa::digit#2 utoa::digit#1 ] : zp[1]:35 , reg byte x , -Potential registers zp[2]:36 [ utoa::value#2 utoa::value#6 utoa::value#0 ] : zp[2]:36 , -Potential registers zp[1]:38 [ utoa::started#2 utoa::started#4 ] : zp[1]:38 , reg byte x , reg byte y , -Potential registers zp[2]:39 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] : zp[2]:39 , -Potential registers zp[2]:41 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] : zp[2]:41 , -Potential registers zp[1]:43 [ utoa_append::digit#2 utoa_append::digit#1 ] : zp[1]:43 , reg byte x , reg byte y , -Potential registers zp[1]:44 [ print::i#2 print::i#1 ] : zp[1]:44 , reg byte x , -Potential registers zp[1]:45 [ print::i1#2 print::i1#1 ] : zp[1]:45 , reg byte x , -Potential registers zp[1]:46 [ print::j#2 print::j#1 ] : zp[1]:46 , reg byte x , -Potential registers zp[1]:47 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] : zp[1]:47 , reg byte x , reg byte y , -Potential registers zp[1]:48 [ uctoa::digit#2 uctoa::digit#1 ] : zp[1]:48 , reg byte x , -Potential registers zp[1]:49 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] : zp[1]:49 , reg byte x , reg byte y , -Potential registers zp[1]:50 [ uctoa::started#2 uctoa::started#4 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:51 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] : zp[2]:51 , -Potential registers zp[1]:53 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] : zp[1]:53 , reg byte x , -Potential registers zp[1]:54 [ uctoa_append::digit#2 uctoa_append::digit#1 ] : zp[1]:54 , reg byte x , reg byte y , -Potential registers zp[1]:55 [ ultoa::digit#2 ultoa::digit#1 ] : zp[1]:55 , reg byte x , -Potential registers zp[4]:56 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] : zp[4]:56 , -Potential registers zp[1]:60 [ ultoa::started#2 ultoa::started#4 ] : zp[1]:60 , reg byte x , reg byte y , -Potential registers zp[2]:61 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] : zp[2]:61 , -Potential registers zp[4]:63 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] : zp[4]:63 , -Potential registers zp[1]:67 [ ultoa_append::digit#2 ultoa_append::digit#1 ] : zp[1]:67 , reg byte x , reg byte y , -Potential registers zp[1]:68 [ legal::i#2 legal::i#1 ] : zp[1]:68 , reg byte x , reg byte y , -Potential registers zp[1]:69 [ legal::return#4 ] : zp[1]:69 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:70 [ diff::a#2 diff::a#0 diff::a#1 ] : zp[1]:70 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:71 [ diff::b#2 diff::b#0 diff::b#1 ] : zp[1]:71 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:72 [ diff::return#4 diff::return#2 diff::return#3 ] : zp[1]:72 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:73 [ printf_cursor_x ] : zp[1]:73 , -Potential registers zp[1]:74 [ printf_cursor_y ] : zp[1]:74 , -Potential registers zp[2]:75 [ printf_cursor_ptr ] : zp[2]:75 , -Potential registers zp[4]:77 [ count ] : zp[4]:77 , -Potential registers zp[2]:81 [ strlen::return#2 ] : zp[2]:81 , -Potential registers zp[2]:83 [ printf_number_buffer::$19 ] : zp[2]:83 , -Potential registers zp[2]:85 [ printf_scroll::$4 ] : zp[2]:85 , -Potential registers zp[2]:87 [ memset::end#0 ] : zp[2]:87 , -Potential registers zp[1]:89 [ printf_str::ch#0 ] : zp[1]:89 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:90 [ printf_ln::$0 ] : zp[2]:90 , -Potential registers zp[2]:92 [ printf_ln::$1 ] : zp[2]:92 , -Potential registers zp[1]:94 [ toupper::return#3 ] : zp[1]:94 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:95 [ strupr::$0 ] : zp[1]:95 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:96 [ utoa::$11 ] : zp[1]:96 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:97 [ utoa::buffer#3 ] : zp[2]:97 , -Potential registers zp[1]:99 [ utoa::$10 ] : zp[1]:99 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:100 [ utoa::digit_value#0 ] : zp[2]:100 , -Potential registers zp[2]:102 [ utoa_append::buffer#0 ] : zp[2]:102 , -Potential registers zp[2]:104 [ utoa_append::sub#0 ] : zp[2]:104 , -Potential registers zp[2]:106 [ utoa_append::return#0 ] : zp[2]:106 , -Potential registers zp[1]:108 [ queen::row#0 ] : zp[1]:108 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:109 [ queen::r ] : zp[1]:109 , -Potential registers zp[1]:110 [ queen::column ] : zp[1]:110 , -Potential registers zp[1]:111 [ legal::row#0 ] : zp[1]:111 , reg byte x , reg byte y , -Potential registers zp[1]:112 [ legal::column#0 ] : zp[1]:112 , reg byte x , reg byte y , -Potential registers zp[1]:113 [ legal::return#0 ] : zp[1]:113 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:114 [ queen::$1 ] : zp[1]:114 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:115 [ queen::$4 ] : zp[1]:115 , reg byte a , reg byte x , reg byte y , -Potential registers zp[4]:116 [ printf_ulong::uvalue#0 ] : zp[4]:116 , -Potential registers zp[2]:120 [ uctoa::buffer#3 ] : zp[2]:120 , -Potential registers zp[1]:122 [ uctoa::digit_value#0 ] : zp[1]:122 , reg byte x , reg byte y , -Potential registers zp[2]:123 [ uctoa_append::buffer#0 ] : zp[2]:123 , -Potential registers zp[1]:125 [ uctoa_append::sub#0 ] : zp[1]:125 , reg byte x , reg byte y , -Potential registers zp[1]:126 [ uctoa_append::return#0 ] : zp[1]:126 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:127 [ ultoa::$11 ] : zp[1]:127 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:128 [ ultoa::buffer#3 ] : zp[2]:128 , -Potential registers zp[1]:130 [ ultoa::$10 ] : zp[1]:130 , reg byte a , reg byte x , reg byte y , -Potential registers zp[4]:131 [ ultoa::digit_value#0 ] : zp[4]:131 , -Potential registers zp[2]:135 [ ultoa_append::buffer#0 ] : zp[2]:135 , -Potential registers zp[4]:137 [ ultoa_append::sub#0 ] : zp[4]:137 , -Potential registers zp[4]:141 [ ultoa_append::return#0 ] : zp[4]:141 , -Potential registers zp[1]:145 [ legal::$0 ] : zp[1]:145 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:146 [ diff::return#0 ] : zp[1]:146 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:147 [ legal::$3 ] : zp[1]:147 , reg byte x , reg byte y , -Potential registers zp[1]:148 [ diff::return#1 ] : zp[1]:148 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:149 [ legal::$4 ] : zp[1]:149 , reg byte a , reg byte x , reg byte y , +Statement [302] (dword) printf_ulong::uvalue#1 ← (dword) count [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_ulong::uvalue#1 printf_buffer ] ( main:6::queen:22::print:299 [ queen::r queen::column printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_ulong::uvalue#1 printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count } } ) always clobbers reg byte a +Statement [318] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer print::i1#2 print::j#2 ] ( main:6::queen:22::print:299 [ queen::r queen::column printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer print::i1#2 print::j#2 ] { } ) always clobbers reg byte a +Statement [328] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] ( main:6::queen:22::print:299::printf_uchar:314 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:22::print:299::printf_uchar:325 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a +Statement [337] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:22::print:299::printf_uchar:325::uctoa:330 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [338] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:22::print:299::printf_uchar:325::uctoa:330 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a +Statement [339] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:6::queen:22::print:299::printf_uchar:325::uctoa:330 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [346] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:22::print:299::printf_uchar:325::uctoa:330 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [356] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:6::queen:22::print:299::printf_uchar:314::uctoa:330::uctoa_append:349 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:22::print:299::printf_uchar:325::uctoa:330::uctoa_append:349 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [359] (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:6::queen:22::print:299::printf_uchar:314::uctoa:330::uctoa_append:349 [ queen::r queen::column count print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:6::queen:22::print:299::printf_uchar:325::uctoa:330::uctoa_append:349 [ queen::r queen::column count print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [366] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return [ legal::row#0 legal::column#0 legal::i#2 ] ( main:6::queen:22::legal:285 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 ] { { legal::row#0 = queen::r } { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Statement [381] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 [ diff::return#3 ] ( main:6::queen:22::legal:285::diff:369 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 diff::return#3 ] { { legal::row#0 = queen::r } { legal::return#0 = legal::return#4 } { diff::a#0 = diff::a#2 } { diff::b#0 = diff::b#2 legal::column#0 queen::column } { diff::return#0 = diff::return#4 } } main:6::queen:22::legal:285::diff:374 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 legal::$3 diff::return#3 ] { { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } { diff::a#1 = diff::a#2 legal::i#2 } { diff::b#1 = diff::b#2 legal::row#0 queen::r } { diff::return#1 = diff::return#4 } } ) always clobbers reg byte a +Statement [384] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 [ diff::return#2 ] ( main:6::queen:22::legal:285::diff:369 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 diff::return#2 ] { { legal::row#0 = queen::r } { legal::return#0 = legal::return#4 } { diff::a#0 = diff::a#2 } { diff::b#0 = diff::b#2 legal::column#0 queen::column } { diff::return#0 = diff::return#4 } } main:6::queen:22::legal:285::diff:374 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count printf_buffer queen::r queen::column legal::row#0 legal::column#0 legal::i#2 legal::$3 diff::return#2 ] { { legal::column#0 = queen::column } { legal::return#0 = legal::return#4 } { diff::a#1 = diff::a#2 legal::i#2 } { diff::b#1 = diff::b#2 legal::row#0 queen::r } { diff::return#1 = diff::return#4 } } ) always clobbers reg byte a +Potential registers zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] : zp[2]:2 , +Potential registers zp[2]:4 [ memset::num#2 ] : zp[2]:4 , +Potential registers zp[2]:6 [ memset::str#3 ] : zp[2]:6 , +Potential registers zp[1]:8 [ memset::c#4 ] : zp[1]:8 , reg byte x , +Potential registers zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] : zp[2]:9 , +Potential registers zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] : zp[2]:11 , +Potential registers zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] : zp[2]:13 , +Potential registers zp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] : zp[1]:15 , reg byte a , reg byte x , reg byte y , +Potential registers zp[4]:16 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] : zp[4]:16 , +Potential registers zp[1]:20 [ printf_number_buffer::format_min_length#3 ] : zp[1]:20 , reg byte x , +Potential registers zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] : zp[1]:21 , reg byte x , +Potential registers zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] : zp[1]:22 , reg byte x , +Potential registers zp[2]:23 [ printf_number_buffer::buffer_digits#10 ] : zp[2]:23 , +Potential registers zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] : zp[1]:25 , reg byte x , +Potential registers zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] : zp[1]:26 , reg byte x , +Potential registers zp[1]:27 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] : zp[1]:27 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] : zp[1]:28 , reg byte x , +Potential registers zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] : zp[1]:29 , reg byte x , +Potential registers zp[1]:30 [ printf_padding::pad#7 ] : zp[1]:30 , reg byte x , +Potential registers zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] : zp[1]:31 , reg byte x , +Potential registers zp[2]:32 [ strupr::src#2 strupr::str#0 strupr::src#1 ] : zp[2]:32 , +Potential registers zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] : zp[1]:34 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 ] : zp[2]:35 , +Potential registers zp[2]:37 [ strlen::len#2 strlen::len#1 ] : zp[2]:37 , +Potential registers zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] : zp[1]:39 , reg byte x , +Potential registers zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] : zp[4]:40 , +Potential registers zp[1]:44 [ ultoa::started#2 ultoa::started#4 ] : zp[1]:44 , reg byte x , reg byte y , +Potential registers zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] : zp[2]:45 , +Potential registers zp[4]:47 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] : zp[4]:47 , +Potential registers zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] : zp[1]:51 , reg byte x , reg byte y , +Potential registers zp[1]:52 [ utoa::digit#2 utoa::digit#1 ] : zp[1]:52 , reg byte x , +Potential registers zp[2]:53 [ utoa::value#2 utoa::value#6 utoa::value#0 ] : zp[2]:53 , +Potential registers zp[1]:55 [ utoa::started#2 utoa::started#4 ] : zp[1]:55 , reg byte x , reg byte y , +Potential registers zp[2]:56 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] : zp[2]:56 , +Potential registers zp[2]:58 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] : zp[2]:58 , +Potential registers zp[1]:60 [ utoa_append::digit#2 utoa_append::digit#1 ] : zp[1]:60 , reg byte x , reg byte y , +Potential registers zp[1]:61 [ print::i#2 print::i#1 ] : zp[1]:61 , reg byte x , +Potential registers zp[1]:62 [ print::i1#2 print::i1#1 ] : zp[1]:62 , reg byte x , +Potential registers zp[1]:63 [ print::j#2 print::j#1 ] : zp[1]:63 , reg byte x , +Potential registers zp[1]:64 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] : zp[1]:64 , reg byte x , reg byte y , +Potential registers zp[1]:65 [ uctoa::digit#2 uctoa::digit#1 ] : zp[1]:65 , reg byte x , +Potential registers zp[1]:66 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] : zp[1]:66 , reg byte x , reg byte y , +Potential registers zp[1]:67 [ uctoa::started#2 uctoa::started#4 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:68 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] : zp[2]:68 , +Potential registers zp[1]:70 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] : zp[1]:70 , reg byte x , +Potential registers zp[1]:71 [ uctoa_append::digit#2 uctoa_append::digit#1 ] : zp[1]:71 , reg byte x , reg byte y , +Potential registers zp[1]:72 [ legal::i#2 legal::i#1 ] : zp[1]:72 , reg byte x , reg byte y , +Potential registers zp[1]:73 [ legal::return#4 ] : zp[1]:73 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:74 [ diff::a#2 diff::a#0 diff::a#1 ] : zp[1]:74 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:75 [ diff::b#2 diff::b#0 diff::b#1 ] : zp[1]:75 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:76 [ diff::return#4 diff::return#2 diff::return#3 ] : zp[1]:76 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:77 [ printf_cursor_x ] : zp[1]:77 , +Potential registers zp[1]:78 [ printf_cursor_y ] : zp[1]:78 , +Potential registers zp[2]:79 [ printf_cursor_ptr ] : zp[2]:79 , +Potential registers zp[4]:81 [ count ] : zp[4]:81 , +Potential registers zp[1]:85 [ tod_init::tod_TENTHS#0 ] : zp[1]:85 , reg byte x , reg byte y , +Potential registers zp[1]:86 [ tod_init::tod_SEC#0 ] : zp[1]:86 , reg byte x , reg byte y , +Potential registers zp[1]:87 [ tod_init::tod_MIN#0 ] : zp[1]:87 , reg byte x , reg byte y , +Potential registers zp[1]:88 [ tod_init::tod_HOURS#0 ] : zp[1]:88 , reg byte x , reg byte y , +Potential registers zp[1]:89 [ tod_read::return_TENTHS#2 ] : zp[1]:89 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:90 [ tod_read::return_SEC#2 ] : zp[1]:90 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:91 [ tod_read::return_MIN#2 ] : zp[1]:91 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:92 [ tod_read::return_HOURS#2 ] : zp[1]:92 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:93 [ tod_str::tod_TENTHS#0 ] : zp[1]:93 , reg byte x , reg byte y , +Potential registers zp[1]:94 [ tod_str::tod_SEC#0 ] : zp[1]:94 , reg byte x , reg byte y , +Potential registers zp[1]:95 [ tod_str::tod_MIN#0 ] : zp[1]:95 , reg byte x , reg byte y , +Potential registers zp[1]:96 [ tod_str::tod_HOURS#0 ] : zp[1]:96 , reg byte x , reg byte y , +Potential registers zp[1]:97 [ printf_str::ch#0 ] : zp[1]:97 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:98 [ printf_ln::$0 ] : zp[2]:98 , +Potential registers zp[2]:100 [ printf_ln::$1 ] : zp[2]:100 , +Potential registers zp[2]:102 [ printf_scroll::$4 ] : zp[2]:102 , +Potential registers zp[2]:104 [ memset::end#0 ] : zp[2]:104 , +Potential registers zp[2]:106 [ strlen::return#2 ] : zp[2]:106 , +Potential registers zp[2]:108 [ printf_number_buffer::$19 ] : zp[2]:108 , +Potential registers zp[1]:110 [ toupper::return#3 ] : zp[1]:110 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:111 [ strupr::$0 ] : zp[1]:111 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:112 [ ultoa::$11 ] : zp[1]:112 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:113 [ ultoa::buffer#3 ] : zp[2]:113 , +Potential registers zp[1]:115 [ ultoa::$10 ] : zp[1]:115 , reg byte a , reg byte x , reg byte y , +Potential registers zp[4]:116 [ ultoa::digit_value#0 ] : zp[4]:116 , +Potential registers zp[2]:120 [ ultoa_append::buffer#0 ] : zp[2]:120 , +Potential registers zp[4]:122 [ ultoa_append::sub#0 ] : zp[4]:122 , +Potential registers zp[4]:126 [ ultoa_append::return#0 ] : zp[4]:126 , +Potential registers zp[1]:130 [ tod_str::$0 ] : zp[1]:130 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:131 [ tod_str::$1 ] : zp[1]:131 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:132 [ tod_str::$2 ] : zp[1]:132 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:133 [ tod_str::$3 ] : zp[1]:133 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:134 [ tod_str::$4 ] : zp[1]:134 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:135 [ tod_str::$5 ] : zp[1]:135 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:136 [ tod_str::$6 ] : zp[1]:136 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:137 [ tod_str::$7 ] : zp[1]:137 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:138 [ tod_str::$8 ] : zp[1]:138 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:139 [ tod_str::$9 ] : zp[1]:139 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:140 [ tod_str::$10 ] : zp[1]:140 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:141 [ tod_str::$11 ] : zp[1]:141 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:142 [ tod_str::$12 ] : zp[1]:142 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:143 [ tod_str::$13 ] : zp[1]:143 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:144 [ tod_str::$14 ] : zp[1]:144 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:145 [ tod_str::$15 ] : zp[1]:145 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:146 [ tod_read::return_HOURS#0 ] : zp[1]:146 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:147 [ tod_read::return_MIN#0 ] : zp[1]:147 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:148 [ tod_read::return_SEC#0 ] : zp[1]:148 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:149 [ tod_read::return_TENTHS#0 ] : zp[1]:149 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:150 [ utoa::$11 ] : zp[1]:150 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:151 [ utoa::buffer#3 ] : zp[2]:151 , +Potential registers zp[1]:153 [ utoa::$10 ] : zp[1]:153 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:154 [ utoa::digit_value#0 ] : zp[2]:154 , +Potential registers zp[2]:156 [ utoa_append::buffer#0 ] : zp[2]:156 , +Potential registers zp[2]:158 [ utoa_append::sub#0 ] : zp[2]:158 , +Potential registers zp[2]:160 [ utoa_append::return#0 ] : zp[2]:160 , +Potential registers zp[1]:162 [ queen::row#0 ] : zp[1]:162 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:163 [ queen::r ] : zp[1]:163 , +Potential registers zp[1]:164 [ queen::column ] : zp[1]:164 , +Potential registers zp[1]:165 [ legal::row#0 ] : zp[1]:165 , reg byte x , reg byte y , +Potential registers zp[1]:166 [ legal::column#0 ] : zp[1]:166 , reg byte x , reg byte y , +Potential registers zp[1]:167 [ legal::return#0 ] : zp[1]:167 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:168 [ queen::$1 ] : zp[1]:168 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:169 [ queen::$4 ] : zp[1]:169 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:170 [ uctoa::buffer#3 ] : zp[2]:170 , +Potential registers zp[1]:172 [ uctoa::digit_value#0 ] : zp[1]:172 , reg byte x , reg byte y , +Potential registers zp[2]:173 [ uctoa_append::buffer#0 ] : zp[2]:173 , +Potential registers zp[1]:175 [ uctoa_append::sub#0 ] : zp[1]:175 , reg byte x , reg byte y , +Potential registers zp[1]:176 [ uctoa_append::return#0 ] : zp[1]:176 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:177 [ legal::$0 ] : zp[1]:177 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:178 [ diff::return#0 ] : zp[1]:178 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:179 [ legal::$3 ] : zp[1]:179 , reg byte x , reg byte y , +Potential registers zp[1]:180 [ diff::return#1 ] : zp[1]:180 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:181 [ legal::$4 ] : zp[1]:181 , reg byte a , reg byte x , reg byte y , Potential registers mem[12] [ printf_buffer ] : mem[12] , +Potential registers mem[4] [ TOD_ZERO ] : mem[4] , REGISTER UPLIFT SCOPES -Uplift Scope [memcpy] 30,000,000,000,000,000,000,000,000,000,000,000,000,000,000: zp[2]:22 [ memcpy::src#2 memcpy::src#1 ] 20,000,000,000,000,000,000,000,000,000,000,000,000,000,000: zp[2]:24 [ memcpy::dst#2 memcpy::dst#1 ] -Uplift Scope [memset] 33,333,333,333,335,670,000,000,000,000,000,000,000,000,000: zp[2]:20 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 1,666,666,666,666,833,500,000,000,000,000,000,000,000,000: zp[2]:87 [ memset::end#0 ] 1,250,000,000,000,000,000,000,000,000,000,000,000,000,000: zp[1]:19 [ memset::c#4 ] 1,000,000,000,000,000,000,000,000,000,000: zp[2]:15 [ memset::num#2 ] 0: zp[2]:17 [ memset::str#3 ] -Uplift Scope [uctoa_append] 25,000,000,000,000,550,000,000,000,000,000,000,000,000: zp[1]:53 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] 20,000,000,000,000,500,000,000,000,000,000,000,000,000: zp[1]:54 [ uctoa_append::digit#2 uctoa_append::digit#1 ] 3,333,333,333,333,350,000,000,000,000,000,000,000,000: zp[1]:125 [ uctoa_append::sub#0 ] 200,000,000,000,000,000,000,000,000: zp[1]:126 [ uctoa_append::return#0 ] 137,500,000,000,000,010,000,000,000: zp[2]:123 [ uctoa_append::buffer#0 ] -Uplift Scope [printf_scroll] 200,000,000,000,000,000,000,000,000,000: zp[2]:85 [ printf_scroll::$4 ] -Uplift Scope [toupper] 47,333,333,333,333,330,000,000,000,000: zp[1]:30 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] 2,000,000,000,000,000,000,000,000,000: zp[1]:94 [ toupper::return#3 ] -Uplift Scope [printf_char] 13,300,000,000,000,300,000,000,000,000: zp[1]:14 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -Uplift Scope [ultoa_append] 2,500,000,000,000,550,000,000,000,000: zp[4]:63 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] 2,000,000,000,000,500,000,000,000,000: zp[1]:67 [ ultoa_append::digit#2 ultoa_append::digit#1 ] 333,333,333,333,350,000,000,000,000: zp[4]:137 [ ultoa_append::sub#0 ] 200,000,000,000,002: zp[4]:141 [ ultoa_append::return#0 ] 137,500,000,000,000.25: zp[2]:135 [ ultoa_append::buffer#0 ] -Uplift Scope [strupr] 2,714,285,714,286,407,300,000,000,000: zp[2]:28 [ strupr::src#2 strupr::str#0 strupr::src#1 ] 2,000,000,000,000,000,000,000,000,000: zp[1]:95 [ strupr::$0 ] -Uplift Scope [strlen] 3,000,000,000,000,883,000,000,000,000: zp[2]:31 [ strlen::str#2 strlen::str#1 strlen::str#0 ] 1,500,000,000,000,025,000,000,000,000: zp[2]:33 [ strlen::len#2 strlen::len#1 ] 200,000,000,000,002: zp[2]:81 [ strlen::return#2 ] -Uplift Scope [printf_ln] 2,000,000,000,000,000,000,000,000,000: zp[2]:90 [ printf_ln::$0 ] 2,000,000,000,000,000,000,000,000,000: zp[2]:92 [ printf_ln::$1 ] -Uplift Scope [] 2,025,157,232,704,402,300,000,000,000: zp[1]:74 [ printf_cursor_y ] 1,468,354,430,379,746,500,000,000,000: zp[2]:75 [ printf_cursor_ptr ] 283,783,783,783,783,800,000,000,000: zp[1]:73 [ printf_cursor_x ] 0.58: zp[4]:77 [ count ] 0: mem[12] [ printf_buffer ] -Uplift Scope [printf_padding] 2,750,000,000,000,000,400,000,000,000: zp[1]:13 [ printf_padding::i#2 printf_padding::i#1 ] 166,666,666,667,316,670,000,000,000: zp[1]:11 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] 166,666,666,666,666,660,000,000,000: zp[1]:12 [ printf_padding::pad#5 ] -Uplift Scope [uctoa] 383,333,333,333,350,040,000,000,000: zp[2]:51 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] 316,666,666,666,755,000,000,000,000: zp[1]:49 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] 230,769,230,769,230,770,000,000,000: zp[1]:48 [ uctoa::digit#2 uctoa::digit#1 ] 160,000,000,000,000,000,000,000,000: zp[1]:50 [ uctoa::started#2 uctoa::started#4 ] 60,000,000,000,000,010,000,000,000: zp[1]:122 [ uctoa::digit_value#0 ] 200,000,000,000,002: zp[2]:120 [ uctoa::buffer#3 ] -Uplift Scope [printf_str] 242,857,142,858,942,900,000,000,000: zp[2]:26 [ printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] 100,000,000,000,000,000,000,000,000: zp[1]:89 [ printf_str::ch#0 ] -Uplift Scope [ultoa] 378,571,428,571,575.4: zp[2]:61 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] 307,142,857,143,554.25: zp[4]:56 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] 228,571,428,571,430.84: zp[1]:55 [ ultoa::digit#2 ultoa::digit#1 ] 200,000,000,000,002: zp[1]:130 [ ultoa::$10 ] 150,000,000,000,001.5: zp[1]:60 [ ultoa::started#2 ultoa::started#4 ] 60,000,000,000,000.59: zp[4]:131 [ ultoa::digit_value#0 ] 2,002: zp[1]:127 [ ultoa::$11 ] 2,002: zp[2]:128 [ ultoa::buffer#3 ] -Uplift Scope [printf_number_buffer] 650,000,000,000,006.5: zp[1]:9 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] 119,047,619,047,620.23: zp[1]:10 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] 100,000,000,000,001: zp[2]:83 [ printf_number_buffer::$19 ] 35,500,000,000,416.3: zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] 10,344,827,586,207: zp[2]:5 [ printf_number_buffer::buffer_digits#10 ] 10,000,000,000,000.1: zp[1]:2 [ printf_number_buffer::format_min_length#3 ] 9,375,000,000,000.09: zp[1]:4 [ printf_number_buffer::format_zero_padding#10 ] 6,451,612,903,225.87: zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] 3,846,153,846,153.88: zp[1]:8 [ printf_number_buffer::format_upper_case#10 ] -Uplift Scope [diff] 45,500,000,000,005: zp[1]:72 [ diff::return#4 diff::return#2 diff::return#3 ] 20,000,000,000,006.5: zp[1]:71 [ diff::b#2 diff::b#0 diff::b#1 ] 18,000,000,000,004.5: zp[1]:70 [ diff::a#2 diff::a#0 diff::a#1 ] 2,000,000,000,002: zp[1]:146 [ diff::return#0 ] 2,000,000,000,002: zp[1]:148 [ diff::return#1 ] -Uplift Scope [print] 25,714,285,714,288.29: zp[1]:46 [ print::j#2 print::j#1 ] 3,000,000,000,003: zp[1]:44 [ print::i#2 print::i#1 ] 3,000,000,000,002.36: zp[1]:45 [ print::i1#2 print::i1#1 ] -Uplift Scope [printf_uchar] 10,000,000,000,005.5: zp[1]:47 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] -Uplift Scope [legal] 2,400,000,000,002.4: zp[1]:68 [ legal::i#2 legal::i#1 ] 2,000,000,000,002: zp[1]:145 [ legal::$0 ] 2,000,000,000,002: zp[1]:149 [ legal::$4 ] 333,333,333,333.67: zp[1]:147 [ legal::$3 ] 200,000,000,002: zp[1]:113 [ legal::return#0 ] 116,666,666,666.83: zp[1]:112 [ legal::column#0 ] 110,526,315,789.63: zp[1]:111 [ legal::row#0 ] 33,333,333,333.67: zp[1]:69 [ legal::return#4 ] -Uplift Scope [queen] 200,000,000,002: zp[1]:114 [ queen::$1 ] 200,000,000,002: zp[1]:115 [ queen::$4 ] 29,411,764,706.82: zp[1]:110 [ queen::column ] 21,052,631,579.74: zp[1]:109 [ queen::r ] 22: zp[1]:108 [ queen::row#0 ] -Uplift Scope [utoa_append] 25,055,003.5: zp[2]:41 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] 20,050,002.5: zp[1]:43 [ utoa_append::digit#2 utoa_append::digit#1 ] 3,335,000.5: zp[2]:104 [ utoa_append::sub#0 ] 20,002: zp[2]:106 [ utoa_append::return#0 ] 13,750.25: zp[2]:102 [ utoa_append::buffer#0 ] -Uplift Scope [utoa] 38,003.93: zp[2]:39 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] 30,717.36: zp[2]:36 [ utoa::value#2 utoa::value#6 utoa::value#0 ] 22,859.43: zp[1]:35 [ utoa::digit#2 utoa::digit#1 ] 20,002: zp[1]:99 [ utoa::$10 ] 15,001.5: zp[1]:38 [ utoa::started#2 utoa::started#4 ] 6,000.6: zp[2]:100 [ utoa::digit_value#0 ] 2,002: zp[1]:96 [ utoa::$11 ] 2,002: zp[2]:97 [ utoa::buffer#3 ] -Uplift Scope [printf_ulong] 37.33: zp[4]:116 [ printf_ulong::uvalue#0 ] +Uplift Scope [memcpy] 30,000,000,000,000,000,000,000,000,000,000,000,000,000,000: zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] 20,000,000,000,000,000,000,000,000,000,000,000,000,000,000: zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] +Uplift Scope [memset] 33,333,333,333,335,670,000,000,000,000,000,000,000,000,000: zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 1,666,666,666,666,833,500,000,000,000,000,000,000,000,000: zp[2]:104 [ memset::end#0 ] 1,250,000,000,000,000,000,000,000,000,000,000,000,000,000: zp[1]:8 [ memset::c#4 ] 1,000,000,000,000,000,000,000,000,000,000: zp[2]:4 [ memset::num#2 ] 0: zp[2]:6 [ memset::str#3 ] +Uplift Scope [uctoa_append] 25,000,000,000,000,550,000,000,000,000,000,000,000,000: zp[1]:70 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] 20,000,000,000,000,500,000,000,000,000,000,000,000,000: zp[1]:71 [ uctoa_append::digit#2 uctoa_append::digit#1 ] 3,333,333,333,333,350,000,000,000,000,000,000,000,000: zp[1]:175 [ uctoa_append::sub#0 ] 200,000,000,000,000,000,000,000,000: zp[1]:176 [ uctoa_append::return#0 ] 137,500,000,000,000,010,000,000,000: zp[2]:173 [ uctoa_append::buffer#0 ] +Uplift Scope [printf_scroll] 200,000,000,000,000,000,000,000,000,000: zp[2]:102 [ printf_scroll::$4 ] +Uplift Scope [toupper] 47,333,333,333,333,330,000,000,000,000: zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] 2,000,000,000,000,000,000,000,000,000: zp[1]:110 [ toupper::return#3 ] +Uplift Scope [printf_char] 13,300,000,000,000,300,000,000,000,000: zp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +Uplift Scope [ultoa_append] 2,500,000,000,000,550,000,000,000,000: zp[4]:47 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] 2,000,000,000,000,500,000,000,000,000: zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] 333,333,333,333,350,000,000,000,000: zp[4]:122 [ ultoa_append::sub#0 ] 200,000,000,000,002: zp[4]:126 [ ultoa_append::return#0 ] 137,500,000,000,000.25: zp[2]:120 [ ultoa_append::buffer#0 ] +Uplift Scope [strupr] 2,714,285,714,286,407,300,000,000,000: zp[2]:32 [ strupr::src#2 strupr::str#0 strupr::src#1 ] 2,000,000,000,000,000,000,000,000,000: zp[1]:111 [ strupr::$0 ] +Uplift Scope [strlen] 3,000,000,000,000,883,000,000,000,000: zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 ] 1,500,000,000,000,025,000,000,000,000: zp[2]:37 [ strlen::len#2 strlen::len#1 ] 200,000,000,000,002: zp[2]:106 [ strlen::return#2 ] +Uplift Scope [printf_ln] 2,000,000,000,000,000,000,000,000,000: zp[2]:98 [ printf_ln::$0 ] 2,000,000,000,000,000,000,000,000,000: zp[2]:100 [ printf_ln::$1 ] +Uplift Scope [] 1,703,703,703,703,703,700,000,000,000: zp[1]:78 [ printf_cursor_y ] 1,234,042,553,191,489,200,000,000,000: zp[2]:79 [ printf_cursor_ptr ] 235,955,056,179,775,300,000,000,000: zp[1]:77 [ printf_cursor_x ] 2,531,645,569.95: zp[4]:81 [ count ] 0: mem[12] [ printf_buffer ] 0: mem[4] [ TOD_ZERO ] +Uplift Scope [printf_padding] 2,750,000,000,000,000,400,000,000,000: zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] 166,666,666,667,316,670,000,000,000: zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] 166,666,666,666,666,660,000,000,000: zp[1]:30 [ printf_padding::pad#7 ] +Uplift Scope [uctoa] 383,333,333,333,350,040,000,000,000: zp[2]:68 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] 316,666,666,666,755,000,000,000,000: zp[1]:66 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] 230,769,230,769,230,770,000,000,000: zp[1]:65 [ uctoa::digit#2 uctoa::digit#1 ] 160,000,000,000,000,000,000,000,000: zp[1]:67 [ uctoa::started#2 uctoa::started#4 ] 60,000,000,000,000,010,000,000,000: zp[1]:172 [ uctoa::digit_value#0 ] 200,000,000,000,002: zp[2]:170 [ uctoa::buffer#3 ] +Uplift Scope [printf_str] 242,857,142,858,942,900,000,000,000: zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] 100,000,000,000,000,000,000,000,000: zp[1]:97 [ printf_str::ch#0 ] +Uplift Scope [ultoa] 378,571,428,571,575.4: zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] 307,142,857,143,554.25: zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] 228,571,428,571,430.84: zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] 200,000,000,000,002: zp[1]:115 [ ultoa::$10 ] 150,000,000,000,001.5: zp[1]:44 [ ultoa::started#2 ultoa::started#4 ] 60,000,000,000,000.59: zp[4]:116 [ ultoa::digit_value#0 ] 2,002: zp[1]:112 [ ultoa::$11 ] 2,002: zp[2]:113 [ ultoa::buffer#3 ] +Uplift Scope [printf_number_buffer] 650,000,000,000,006.5: zp[1]:27 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] 119,047,619,047,620.23: zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] 100,000,000,000,001: zp[2]:108 [ printf_number_buffer::$19 ] 35,500,000,000,416.3: zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] 10,344,827,586,207: zp[2]:23 [ printf_number_buffer::buffer_digits#10 ] 10,000,000,000,000.1: zp[1]:20 [ printf_number_buffer::format_min_length#3 ] 9,375,000,000,000.09: zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] 6,451,612,903,225.87: zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] 3,846,153,846,153.88: zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Uplift Scope [diff] 45,500,000,000,005: zp[1]:76 [ diff::return#4 diff::return#2 diff::return#3 ] 20,000,000,000,006.5: zp[1]:75 [ diff::b#2 diff::b#0 diff::b#1 ] 18,000,000,000,004.5: zp[1]:74 [ diff::a#2 diff::a#0 diff::a#1 ] 2,000,000,000,002: zp[1]:178 [ diff::return#0 ] 2,000,000,000,002: zp[1]:180 [ diff::return#1 ] +Uplift Scope [print] 25,714,285,714,288.29: zp[1]:63 [ print::j#2 print::j#1 ] 3,000,000,000,003: zp[1]:61 [ print::i#2 print::i#1 ] 3,000,000,000,002.36: zp[1]:62 [ print::i1#2 print::i1#1 ] +Uplift Scope [printf_uchar] 10,000,000,000,005.5: zp[1]:64 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +Uplift Scope [legal] 2,400,000,000,002.4: zp[1]:72 [ legal::i#2 legal::i#1 ] 2,000,000,000,002: zp[1]:177 [ legal::$0 ] 2,000,000,000,002: zp[1]:181 [ legal::$4 ] 333,333,333,333.67: zp[1]:179 [ legal::$3 ] 200,000,000,002: zp[1]:167 [ legal::return#0 ] 116,666,666,666.83: zp[1]:166 [ legal::column#0 ] 110,526,315,789.63: zp[1]:165 [ legal::row#0 ] 33,333,333,333.67: zp[1]:73 [ legal::return#4 ] +Uplift Scope [queen] 200,000,000,002: zp[1]:168 [ queen::$1 ] 200,000,000,002: zp[1]:169 [ queen::$4 ] 29,411,764,706.82: zp[1]:164 [ queen::column ] 21,052,631,579.74: zp[1]:163 [ queen::r ] 22: zp[1]:162 [ queen::row#0 ] +Uplift Scope [utoa_append] 25,055,003.5: zp[2]:58 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] 20,050,002.5: zp[1]:60 [ utoa_append::digit#2 utoa_append::digit#1 ] 3,335,000.5: zp[2]:158 [ utoa_append::sub#0 ] 20,002: zp[2]:160 [ utoa_append::return#0 ] 13,750.25: zp[2]:156 [ utoa_append::buffer#0 ] +Uplift Scope [utoa] 38,003.93: zp[2]:56 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] 30,717.36: zp[2]:53 [ utoa::value#2 utoa::value#6 utoa::value#0 ] 22,859.43: zp[1]:52 [ utoa::digit#2 utoa::digit#1 ] 20,002: zp[1]:153 [ utoa::$10 ] 15,001.5: zp[1]:55 [ utoa::started#2 utoa::started#4 ] 6,000.6: zp[2]:154 [ utoa::digit_value#0 ] 2,002: zp[1]:150 [ utoa::$11 ] 2,002: zp[2]:151 [ utoa::buffer#3 ] +Uplift Scope [tod_str] 202: zp[1]:130 [ tod_str::$0 ] 202: zp[1]:131 [ tod_str::$1 ] 202: zp[1]:132 [ tod_str::$2 ] 202: zp[1]:133 [ tod_str::$3 ] 202: zp[1]:134 [ tod_str::$4 ] 202: zp[1]:135 [ tod_str::$5 ] 202: zp[1]:136 [ tod_str::$6 ] 202: zp[1]:137 [ tod_str::$7 ] 202: zp[1]:138 [ tod_str::$8 ] 202: zp[1]:139 [ tod_str::$9 ] 202: zp[1]:140 [ tod_str::$10 ] 202: zp[1]:141 [ tod_str::$11 ] 202: zp[1]:142 [ tod_str::$12 ] 202: zp[1]:143 [ tod_str::$13 ] 202: zp[1]:144 [ tod_str::$14 ] 202: zp[1]:145 [ tod_str::$15 ] 53.25: zp[1]:96 [ tod_str::tod_HOURS#0 ] 19.36: zp[1]:95 [ tod_str::tod_MIN#0 ] 11.83: zp[1]:94 [ tod_str::tod_SEC#0 ] 8.52: zp[1]:93 [ tod_str::tod_TENTHS#0 ] +Uplift Scope [tod_read] 37.33: zp[1]:149 [ tod_read::return_TENTHS#0 ] 22.4: zp[1]:148 [ tod_read::return_SEC#0 ] 16: zp[1]:147 [ tod_read::return_MIN#0 ] 12.44: zp[1]:146 [ tod_read::return_HOURS#0 ] 5.5: zp[1]:89 [ tod_read::return_TENTHS#2 ] 5.5: zp[1]:90 [ tod_read::return_SEC#2 ] 5.5: zp[1]:91 [ tod_read::return_MIN#2 ] 5.5: zp[1]:92 [ tod_read::return_HOURS#2 ] +Uplift Scope [printf_ulong] 105.5: zp[4]:16 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] +Uplift Scope [tod_init] 37.33: zp[1]:88 [ tod_init::tod_HOURS#0 ] 22.4: zp[1]:87 [ tod_init::tod_MIN#0 ] 16: zp[1]:86 [ tod_init::tod_SEC#0 ] 12.44: zp[1]:85 [ tod_init::tod_TENTHS#0 ] Uplift Scope [RADIX] Uplift Scope [printf_format_number] Uplift Scope [printf_buffer_number] Uplift Scope [printf_format_string] Uplift Scope [printf_cls] Uplift Scope [printf_uint] +Uplift Scope [printf_string] +Uplift Scope [TIME_OF_DAY] +Uplift Scope [MOS6526_CIA] Uplift Scope [main] Limited combination testing to 100 combinations of 256 possible. Limited combination testing to 100 combinations of 1024 possible. Limited combination testing to 100 combinations of 20736 possible. -Attempting to uplift remaining variables inzp[1]:19 [ memset::c#4 ] -Attempting to uplift remaining variables inzp[1]:53 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Attempting to uplift remaining variables inzp[1]:54 [ uctoa_append::digit#2 uctoa_append::digit#1 ] -Attempting to uplift remaining variables inzp[1]:125 [ uctoa_append::sub#0 ] -Attempting to uplift remaining variables inzp[1]:30 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -Attempting to uplift remaining variables inzp[1]:14 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -Attempting to uplift remaining variables inzp[1]:13 [ printf_padding::i#2 printf_padding::i#1 ] -Attempting to uplift remaining variables inzp[1]:74 [ printf_cursor_y ] -Attempting to uplift remaining variables inzp[1]:67 [ ultoa_append::digit#2 ultoa_append::digit#1 ] -Attempting to uplift remaining variables inzp[1]:94 [ toupper::return#3 ] -Attempting to uplift remaining variables inzp[1]:95 [ strupr::$0 ] -Attempting to uplift remaining variables inzp[1]:49 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -Attempting to uplift remaining variables inzp[1]:73 [ printf_cursor_x ] -Attempting to uplift remaining variables inzp[1]:48 [ uctoa::digit#2 uctoa::digit#1 ] -Attempting to uplift remaining variables inzp[1]:126 [ uctoa_append::return#0 ] -Attempting to uplift remaining variables inzp[1]:11 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Attempting to uplift remaining variables inzp[1]:12 [ printf_padding::pad#5 ] -Attempting to uplift remaining variables inzp[1]:50 [ uctoa::started#2 uctoa::started#4 ] -Attempting to uplift remaining variables inzp[1]:89 [ printf_str::ch#0 ] -Attempting to uplift remaining variables inzp[1]:122 [ uctoa::digit_value#0 ] -Attempting to uplift remaining variables inzp[1]:9 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -Attempting to uplift remaining variables inzp[1]:55 [ ultoa::digit#2 ultoa::digit#1 ] -Attempting to uplift remaining variables inzp[1]:130 [ ultoa::$10 ] -Attempting to uplift remaining variables inzp[1]:60 [ ultoa::started#2 ultoa::started#4 ] -Attempting to uplift remaining variables inzp[1]:10 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Attempting to uplift remaining variables inzp[1]:72 [ diff::return#4 diff::return#2 diff::return#3 ] -Attempting to uplift remaining variables inzp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Attempting to uplift remaining variables inzp[1]:46 [ print::j#2 print::j#1 ] -Attempting to uplift remaining variables inzp[1]:71 [ diff::b#2 diff::b#0 diff::b#1 ] -Attempting to uplift remaining variables inzp[1]:70 [ diff::a#2 diff::a#0 diff::a#1 ] -Attempting to uplift remaining variables inzp[1]:47 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] -Attempting to uplift remaining variables inzp[1]:2 [ printf_number_buffer::format_min_length#3 ] -Attempting to uplift remaining variables inzp[1]:4 [ printf_number_buffer::format_zero_padding#10 ] -Attempting to uplift remaining variables inzp[1]:3 [ printf_number_buffer::format_justify_left#10 ] -Attempting to uplift remaining variables inzp[1]:8 [ printf_number_buffer::format_upper_case#10 ] -Attempting to uplift remaining variables inzp[1]:44 [ print::i#2 print::i#1 ] -Attempting to uplift remaining variables inzp[1]:45 [ print::i1#2 print::i1#1 ] -Attempting to uplift remaining variables inzp[1]:68 [ legal::i#2 legal::i#1 ] -Attempting to uplift remaining variables inzp[1]:145 [ legal::$0 ] -Attempting to uplift remaining variables inzp[1]:146 [ diff::return#0 ] -Attempting to uplift remaining variables inzp[1]:148 [ diff::return#1 ] -Attempting to uplift remaining variables inzp[1]:149 [ legal::$4 ] -Attempting to uplift remaining variables inzp[1]:147 [ legal::$3 ] -Attempting to uplift remaining variables inzp[1]:113 [ legal::return#0 ] -Attempting to uplift remaining variables inzp[1]:114 [ queen::$1 ] -Attempting to uplift remaining variables inzp[1]:115 [ queen::$4 ] -Attempting to uplift remaining variables inzp[1]:112 [ legal::column#0 ] -Attempting to uplift remaining variables inzp[1]:111 [ legal::row#0 ] -Attempting to uplift remaining variables inzp[1]:69 [ legal::return#4 ] -Attempting to uplift remaining variables inzp[1]:110 [ queen::column ] -Attempting to uplift remaining variables inzp[1]:109 [ queen::r ] -Attempting to uplift remaining variables inzp[1]:43 [ utoa_append::digit#2 utoa_append::digit#1 ] -Attempting to uplift remaining variables inzp[1]:35 [ utoa::digit#2 utoa::digit#1 ] -Attempting to uplift remaining variables inzp[1]:99 [ utoa::$10 ] -Attempting to uplift remaining variables inzp[1]:38 [ utoa::started#2 utoa::started#4 ] -Attempting to uplift remaining variables inzp[1]:96 [ utoa::$11 ] -Attempting to uplift remaining variables inzp[1]:127 [ ultoa::$11 ] -Attempting to uplift remaining variables inzp[1]:108 [ queen::row#0 ] -Coalescing zero page register [ zp[1]:70 [ diff::a#2 diff::a#0 diff::a#1 ] ] with [ zp[1]:72 [ diff::return#4 diff::return#2 diff::return#3 ] ] - score: 2 -Coalescing zero page register [ zp[2]:75 [ printf_cursor_ptr ] ] with [ zp[2]:85 [ printf_scroll::$4 ] ] - score: 2 -Coalescing zero page register [ zp[1]:2 [ printf_number_buffer::format_min_length#3 ] ] with [ zp[1]:10 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:5 [ printf_number_buffer::buffer_digits#10 ] ] with [ zp[2]:26 [ printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:12 [ printf_padding::pad#5 ] ] with [ zp[1]:14 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:15 [ memset::num#2 ] ] with [ zp[2]:87 [ memset::end#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:17 [ memset::str#3 ] ] with [ zp[2]:20 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 -Coalescing zero page register [ zp[1]:30 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] ] with [ zp[1]:94 [ toupper::return#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:33 [ strlen::len#2 strlen::len#1 ] ] with [ zp[2]:81 [ strlen::return#2 ] ] - score: 1 -Coalescing zero page register [ zp[2]:36 [ utoa::value#2 utoa::value#6 utoa::value#0 ] ] with [ zp[2]:41 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:36 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] with [ zp[2]:106 [ utoa_append::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:39 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] ] with [ zp[2]:97 [ utoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:39 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 ] ] with [ zp[2]:102 [ utoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:44 [ print::i#2 print::i#1 ] ] with [ zp[1]:47 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:49 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] ] with [ zp[1]:53 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] ] - score: 1 -Coalescing zero page register [ zp[1]:49 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] ] with [ zp[1]:126 [ uctoa_append::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:51 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] ] with [ zp[2]:120 [ uctoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:51 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 ] ] with [ zp[2]:123 [ uctoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:56 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] ] with [ zp[4]:63 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] - score: 1 -Coalescing zero page register [ zp[4]:56 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] with [ zp[4]:116 [ printf_ulong::uvalue#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:56 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ] ] with [ zp[4]:141 [ ultoa_append::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:61 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] ] with [ zp[2]:128 [ ultoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:61 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ] ] with [ zp[2]:135 [ ultoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:69 [ legal::return#4 ] ] with [ zp[1]:113 [ legal::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:75 [ printf_cursor_ptr printf_scroll::$4 ] ] with [ zp[2]:90 [ printf_ln::$0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:75 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 ] ] with [ zp[2]:92 [ printf_ln::$1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:100 [ utoa::digit_value#0 ] ] with [ zp[2]:104 [ utoa_append::sub#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:108 [ queen::row#0 ] ] with [ zp[1]:109 [ queen::r ] ] - score: 1 -Coalescing zero page register [ zp[1]:110 [ queen::column ] ] with [ zp[1]:112 [ legal::column#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:122 [ uctoa::digit_value#0 ] ] with [ zp[1]:125 [ uctoa_append::sub#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:131 [ ultoa::digit_value#0 ] ] with [ zp[4]:137 [ ultoa_append::sub#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:146 [ diff::return#0 ] ] with [ zp[1]:147 [ legal::$3 ] ] - score: 1 -Coalescing zero page register [ zp[1]:148 [ diff::return#1 ] ] with [ zp[1]:149 [ legal::$4 ] ] - score: 1 -Coalescing zero page register [ zp[1]:12 [ printf_padding::pad#5 printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] ] with [ zp[1]:89 [ printf_str::ch#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:30 [ toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 ] ] with [ zp[1]:95 [ strupr::$0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:33 [ strlen::len#2 strlen::len#1 strlen::return#2 ] ] with [ zp[2]:83 [ printf_number_buffer::$19 ] ] - score: 1 -Coalescing zero page register [ zp[1]:44 [ print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] ] with [ zp[1]:45 [ print::i1#2 print::i1#1 ] ] - score: 1 -Coalescing zero page register [ zp[1]:69 [ legal::return#4 legal::return#0 ] ] with [ zp[1]:114 [ queen::$1 ] ] - score: 1 -Coalescing zero page register [ zp[1]:70 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 ] ] with [ zp[1]:148 [ diff::return#1 legal::$4 ] ] - score: 1 -Coalescing zero page register [ zp[1]:108 [ queen::row#0 queen::r ] ] with [ zp[1]:111 [ legal::row#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:108 [ queen::row#0 queen::r legal::row#0 ] ] with [ zp[1]:115 [ queen::$4 ] ] - score: 1 -Coalescing zero page register [ zp[2]:22 [ memcpy::src#2 memcpy::src#1 ] ] with [ zp[2]:15 [ memset::num#2 memset::end#0 ] ] -Coalescing zero page register [ zp[2]:24 [ memcpy::dst#2 memcpy::dst#1 ] ] with [ zp[2]:17 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] -Coalescing zero page register [ zp[1]:30 [ toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 ] ] with [ zp[1]:11 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] ] -Coalescing zero page register [ zp[2]:31 [ strlen::str#2 strlen::str#1 strlen::str#0 ] ] with [ zp[2]:28 [ strupr::src#2 strupr::str#0 strupr::src#1 ] ] -Coalescing zero page register [ zp[1]:35 [ utoa::digit#2 utoa::digit#1 ] ] with [ zp[1]:2 [ printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] -Coalescing zero page register [ zp[2]:36 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 ] ] with [ zp[2]:5 [ printf_number_buffer::buffer_digits#10 printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] ] -Coalescing zero page register [ zp[1]:38 [ utoa::started#2 utoa::started#4 ] ] with [ zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] ] -Coalescing zero page register [ zp[2]:39 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ] ] with [ zp[2]:33 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] -Coalescing zero page register [ zp[1]:43 [ utoa_append::digit#2 utoa_append::digit#1 ] ] with [ zp[1]:4 [ printf_number_buffer::format_zero_padding#10 ] ] -Coalescing zero page register [ zp[1]:46 [ print::j#2 print::j#1 ] ] with [ zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] ] -Coalescing zero page register [ zp[1]:48 [ uctoa::digit#2 uctoa::digit#1 ] ] with [ zp[1]:8 [ printf_number_buffer::format_upper_case#10 ] ] -Coalescing zero page register [ zp[1]:49 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 ] ] with [ zp[1]:9 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] ] -Coalescing zero page register [ zp[1]:50 [ uctoa::started#2 uctoa::started#4 ] ] with [ zp[1]:12 [ printf_padding::pad#5 printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_str::ch#0 ] ] -Coalescing zero page register [ zp[1]:54 [ uctoa_append::digit#2 uctoa_append::digit#1 ] ] with [ zp[1]:13 [ printf_padding::i#2 printf_padding::i#1 ] ] -Coalescing zero page register [ zp[1]:55 [ ultoa::digit#2 ultoa::digit#1 ] ] with [ zp[1]:19 [ memset::c#4 ] ] -Coalescing zero page register [ zp[2]:61 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 ] ] with [ zp[2]:51 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] ] -Coalescing zero page register [ zp[1]:68 [ legal::i#2 legal::i#1 ] ] with [ zp[1]:44 [ print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 print::i1#2 print::i1#1 ] ] -Coalescing zero page register [ zp[1]:69 [ legal::return#4 legal::return#0 queen::$1 ] ] with [ zp[1]:60 [ ultoa::started#2 ultoa::started#4 ] ] -Coalescing zero page register [ zp[1]:70 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 ] ] with [ zp[1]:67 [ ultoa_append::digit#2 ultoa_append::digit#1 ] ] -Coalescing zero page register [ zp[1]:96 [ utoa::$11 ] ] with [ zp[1]:71 [ diff::b#2 diff::b#0 diff::b#1 ] ] -Coalescing zero page register [ zp[1]:108 [ queen::row#0 queen::r legal::row#0 queen::$4 ] ] with [ zp[1]:99 [ utoa::$10 ] ] -Coalescing zero page register [ zp[1]:127 [ ultoa::$11 ] ] with [ zp[1]:122 [ uctoa::digit_value#0 uctoa_append::sub#0 ] ] -Coalescing zero page register [ zp[1]:145 [ legal::$0 ] ] with [ zp[1]:130 [ ultoa::$10 ] ] -Coalescing zero page register [ zp[2]:31 [ strlen::str#2 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 ] ] with [ zp[2]:22 [ memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] ] -Coalescing zero page register [ zp[2]:39 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] with [ zp[2]:24 [ memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] -Coalescing zero page register [ zp[1]:49 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] ] with [ zp[1]:30 [ toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] ] -Coalescing zero page register [ zp[2]:61 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] ] with [ zp[2]:36 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 printf_number_buffer::buffer_digits#10 printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] ] -Coalescing zero page register [ zp[1]:69 [ legal::return#4 legal::return#0 queen::$1 ultoa::started#2 ultoa::started#4 ] ] with [ zp[1]:35 [ utoa::digit#2 utoa::digit#1 printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] -Coalescing zero page register [ zp[1]:70 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 ultoa_append::digit#2 ultoa_append::digit#1 ] ] with [ zp[1]:38 [ utoa::started#2 utoa::started#4 printf_number_buffer::format_justify_left#10 ] ] -Coalescing zero page register [ zp[1]:96 [ utoa::$11 diff::b#2 diff::b#0 diff::b#1 ] ] with [ zp[1]:43 [ utoa_append::digit#2 utoa_append::digit#1 printf_number_buffer::format_zero_padding#10 ] ] -Coalescing zero page register [ zp[1]:145 [ legal::$0 ultoa::$10 ] ] with [ zp[1]:48 [ uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_upper_case#10 ] ] -Coalescing zero page register [ zp[1]:146 [ diff::return#0 legal::$3 ] ] with [ zp[1]:46 [ print::j#2 print::j#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] ] -Coalescing zero page register [ zp[2]:100 [ utoa::digit_value#0 utoa_append::sub#0 ] ] with [ zp[2]:31 [ strlen::str#2 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] ] -Coalescing zero page register [ zp[1]:127 [ ultoa::$11 uctoa::digit_value#0 uctoa_append::sub#0 ] ] with [ zp[1]:70 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 ultoa_append::digit#2 ultoa_append::digit#1 utoa::started#2 utoa::started#4 printf_number_buffer::format_justify_left#10 ] ] -Allocated (was zp[2]:39) zp[2]:2 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] -Allocated (was zp[1]:49) zp[1]:4 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Allocated (was zp[1]:50) zp[1]:5 [ uctoa::started#2 uctoa::started#4 printf_padding::pad#5 printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_str::ch#0 ] -Allocated (was zp[1]:54) zp[1]:6 [ uctoa_append::digit#2 uctoa_append::digit#1 printf_padding::i#2 printf_padding::i#1 ] -Allocated (was zp[1]:55) zp[1]:7 [ ultoa::digit#2 ultoa::digit#1 memset::c#4 ] -Allocated (was zp[4]:56) zp[4]:8 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ultoa_append::return#0 ] -Allocated (was zp[2]:61) zp[2]:12 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 printf_number_buffer::buffer_digits#10 printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] -Allocated (was zp[1]:68) zp[1]:14 [ legal::i#2 legal::i#1 print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 print::i1#2 print::i1#1 ] -Allocated (was zp[1]:69) zp[1]:15 [ legal::return#4 legal::return#0 queen::$1 ultoa::started#2 ultoa::started#4 utoa::digit#2 utoa::digit#1 printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Allocated (was zp[1]:73) zp[1]:16 [ printf_cursor_x ] -Allocated (was zp[1]:74) zp[1]:17 [ printf_cursor_y ] -Allocated (was zp[2]:75) zp[2]:18 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] -Allocated (was zp[4]:77) zp[4]:20 [ count ] -Allocated (was zp[1]:96) zp[1]:24 [ utoa::$11 diff::b#2 diff::b#0 diff::b#1 utoa_append::digit#2 utoa_append::digit#1 printf_number_buffer::format_zero_padding#10 ] -Allocated (was zp[2]:100) zp[2]:25 [ utoa::digit_value#0 utoa_append::sub#0 strlen::str#2 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] -Allocated (was zp[1]:108) zp[1]:27 [ queen::row#0 queen::r legal::row#0 queen::$4 utoa::$10 ] -Allocated (was zp[1]:110) zp[1]:28 [ queen::column legal::column#0 ] -Allocated (was zp[1]:127) zp[1]:29 [ ultoa::$11 uctoa::digit_value#0 uctoa_append::sub#0 diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 ultoa_append::digit#2 ultoa_append::digit#1 utoa::started#2 utoa::started#4 printf_number_buffer::format_justify_left#10 ] -Allocated (was zp[4]:131) zp[4]:30 [ ultoa::digit_value#0 ultoa_append::sub#0 ] -Allocated (was zp[1]:145) zp[1]:34 [ legal::$0 ultoa::$10 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_upper_case#10 ] -Allocated (was zp[1]:146) zp[1]:35 [ diff::return#0 legal::$3 print::j#2 print::j#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Limited combination testing to 100 combinations of 65536 possible. +Attempting to uplift remaining variables inzp[1]:8 [ memset::c#4 ] +Attempting to uplift remaining variables inzp[1]:70 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] +Attempting to uplift remaining variables inzp[1]:71 [ uctoa_append::digit#2 uctoa_append::digit#1 ] +Attempting to uplift remaining variables inzp[1]:175 [ uctoa_append::sub#0 ] +Attempting to uplift remaining variables inzp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] +Attempting to uplift remaining variables inzp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +Attempting to uplift remaining variables inzp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] +Attempting to uplift remaining variables inzp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] +Attempting to uplift remaining variables inzp[1]:110 [ toupper::return#3 ] +Attempting to uplift remaining variables inzp[1]:111 [ strupr::$0 ] +Attempting to uplift remaining variables inzp[1]:78 [ printf_cursor_y ] +Attempting to uplift remaining variables inzp[1]:66 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] +Attempting to uplift remaining variables inzp[1]:77 [ printf_cursor_x ] +Attempting to uplift remaining variables inzp[1]:65 [ uctoa::digit#2 uctoa::digit#1 ] +Attempting to uplift remaining variables inzp[1]:176 [ uctoa_append::return#0 ] +Attempting to uplift remaining variables inzp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Attempting to uplift remaining variables inzp[1]:30 [ printf_padding::pad#7 ] +Attempting to uplift remaining variables inzp[1]:67 [ uctoa::started#2 uctoa::started#4 ] +Attempting to uplift remaining variables inzp[1]:97 [ printf_str::ch#0 ] +Attempting to uplift remaining variables inzp[1]:172 [ uctoa::digit_value#0 ] +Attempting to uplift remaining variables inzp[1]:27 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] +Attempting to uplift remaining variables inzp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] +Attempting to uplift remaining variables inzp[1]:115 [ ultoa::$10 ] +Attempting to uplift remaining variables inzp[1]:44 [ ultoa::started#2 ultoa::started#4 ] +Attempting to uplift remaining variables inzp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Attempting to uplift remaining variables inzp[1]:76 [ diff::return#4 diff::return#2 diff::return#3 ] +Attempting to uplift remaining variables inzp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Attempting to uplift remaining variables inzp[1]:63 [ print::j#2 print::j#1 ] +Attempting to uplift remaining variables inzp[1]:75 [ diff::b#2 diff::b#0 diff::b#1 ] +Attempting to uplift remaining variables inzp[1]:74 [ diff::a#2 diff::a#0 diff::a#1 ] +Attempting to uplift remaining variables inzp[1]:64 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +Attempting to uplift remaining variables inzp[1]:20 [ printf_number_buffer::format_min_length#3 ] +Attempting to uplift remaining variables inzp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] +Attempting to uplift remaining variables inzp[1]:21 [ printf_number_buffer::format_justify_left#10 ] +Attempting to uplift remaining variables inzp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Attempting to uplift remaining variables inzp[1]:61 [ print::i#2 print::i#1 ] +Attempting to uplift remaining variables inzp[1]:62 [ print::i1#2 print::i1#1 ] +Attempting to uplift remaining variables inzp[1]:72 [ legal::i#2 legal::i#1 ] +Attempting to uplift remaining variables inzp[1]:177 [ legal::$0 ] +Attempting to uplift remaining variables inzp[1]:178 [ diff::return#0 ] +Attempting to uplift remaining variables inzp[1]:180 [ diff::return#1 ] +Attempting to uplift remaining variables inzp[1]:181 [ legal::$4 ] +Attempting to uplift remaining variables inzp[1]:179 [ legal::$3 ] +Attempting to uplift remaining variables inzp[1]:167 [ legal::return#0 ] +Attempting to uplift remaining variables inzp[1]:168 [ queen::$1 ] +Attempting to uplift remaining variables inzp[1]:169 [ queen::$4 ] +Attempting to uplift remaining variables inzp[1]:166 [ legal::column#0 ] +Attempting to uplift remaining variables inzp[1]:165 [ legal::row#0 ] +Attempting to uplift remaining variables inzp[1]:73 [ legal::return#4 ] +Attempting to uplift remaining variables inzp[1]:164 [ queen::column ] +Attempting to uplift remaining variables inzp[1]:163 [ queen::r ] +Attempting to uplift remaining variables inzp[1]:60 [ utoa_append::digit#2 utoa_append::digit#1 ] +Attempting to uplift remaining variables inzp[1]:52 [ utoa::digit#2 utoa::digit#1 ] +Attempting to uplift remaining variables inzp[1]:153 [ utoa::$10 ] +Attempting to uplift remaining variables inzp[1]:55 [ utoa::started#2 utoa::started#4 ] +Attempting to uplift remaining variables inzp[1]:112 [ ultoa::$11 ] +Attempting to uplift remaining variables inzp[1]:150 [ utoa::$11 ] +Attempting to uplift remaining variables inzp[1]:130 [ tod_str::$0 ] +Attempting to uplift remaining variables inzp[1]:131 [ tod_str::$1 ] +Attempting to uplift remaining variables inzp[1]:132 [ tod_str::$2 ] +Attempting to uplift remaining variables inzp[1]:133 [ tod_str::$3 ] +Attempting to uplift remaining variables inzp[1]:134 [ tod_str::$4 ] +Attempting to uplift remaining variables inzp[1]:135 [ tod_str::$5 ] +Attempting to uplift remaining variables inzp[1]:136 [ tod_str::$6 ] +Attempting to uplift remaining variables inzp[1]:137 [ tod_str::$7 ] +Attempting to uplift remaining variables inzp[1]:138 [ tod_str::$8 ] +Attempting to uplift remaining variables inzp[1]:139 [ tod_str::$9 ] +Attempting to uplift remaining variables inzp[1]:140 [ tod_str::$10 ] +Attempting to uplift remaining variables inzp[1]:141 [ tod_str::$11 ] +Attempting to uplift remaining variables inzp[1]:142 [ tod_str::$12 ] +Attempting to uplift remaining variables inzp[1]:143 [ tod_str::$13 ] +Attempting to uplift remaining variables inzp[1]:144 [ tod_str::$14 ] +Attempting to uplift remaining variables inzp[1]:145 [ tod_str::$15 ] +Attempting to uplift remaining variables inzp[1]:96 [ tod_str::tod_HOURS#0 ] +Attempting to uplift remaining variables inzp[1]:88 [ tod_init::tod_HOURS#0 ] +Attempting to uplift remaining variables inzp[1]:149 [ tod_read::return_TENTHS#0 ] +Attempting to uplift remaining variables inzp[1]:87 [ tod_init::tod_MIN#0 ] +Attempting to uplift remaining variables inzp[1]:148 [ tod_read::return_SEC#0 ] +Attempting to uplift remaining variables inzp[1]:162 [ queen::row#0 ] +Attempting to uplift remaining variables inzp[1]:95 [ tod_str::tod_MIN#0 ] +Attempting to uplift remaining variables inzp[1]:86 [ tod_init::tod_SEC#0 ] +Attempting to uplift remaining variables inzp[1]:147 [ tod_read::return_MIN#0 ] +Attempting to uplift remaining variables inzp[1]:85 [ tod_init::tod_TENTHS#0 ] +Attempting to uplift remaining variables inzp[1]:146 [ tod_read::return_HOURS#0 ] +Attempting to uplift remaining variables inzp[1]:94 [ tod_str::tod_SEC#0 ] +Attempting to uplift remaining variables inzp[1]:93 [ tod_str::tod_TENTHS#0 ] +Attempting to uplift remaining variables inzp[1]:89 [ tod_read::return_TENTHS#2 ] +Attempting to uplift remaining variables inzp[1]:90 [ tod_read::return_SEC#2 ] +Attempting to uplift remaining variables inzp[1]:91 [ tod_read::return_MIN#2 ] +Attempting to uplift remaining variables inzp[1]:92 [ tod_read::return_HOURS#2 ] +Coalescing zero page register [ zp[4]:16 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] ] with [ zp[4]:81 [ count ] ] - score: 2 +Coalescing zero page register [ zp[1]:74 [ diff::a#2 diff::a#0 diff::a#1 ] ] with [ zp[1]:76 [ diff::return#4 diff::return#2 diff::return#3 ] ] - score: 2 +Coalescing zero page register [ zp[2]:79 [ printf_cursor_ptr ] ] with [ zp[2]:102 [ printf_scroll::$4 ] ] - score: 2 +Coalescing zero page register [ zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] ] with [ zp[2]:23 [ printf_number_buffer::buffer_digits#10 ] ] - score: 1 +Coalescing zero page register [ zp[2]:4 [ memset::num#2 ] ] with [ zp[2]:104 [ memset::end#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:6 [ memset::str#3 ] ] with [ zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 +Coalescing zero page register [ zp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] ] with [ zp[1]:30 [ printf_padding::pad#7 ] ] - score: 1 +Coalescing zero page register [ zp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_padding::pad#7 ] ] with [ zp[1]:97 [ printf_str::ch#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:20 [ printf_number_buffer::format_min_length#3 ] ] with [ zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] - score: 1 +Coalescing zero page register [ zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] ] with [ zp[1]:110 [ toupper::return#3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:37 [ strlen::len#2 strlen::len#1 ] ] with [ zp[2]:106 [ strlen::return#2 ] ] - score: 1 +Coalescing zero page register [ zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] ] with [ zp[4]:47 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] - score: 1 +Coalescing zero page register [ zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] with [ zp[4]:126 [ ultoa_append::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] ] with [ zp[2]:113 [ ultoa::buffer#3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ] ] with [ zp[2]:120 [ ultoa_append::buffer#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:53 [ utoa::value#2 utoa::value#6 utoa::value#0 ] ] with [ zp[2]:58 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] - score: 1 +Coalescing zero page register [ zp[2]:53 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] with [ zp[2]:160 [ utoa_append::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:56 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] ] with [ zp[2]:151 [ utoa::buffer#3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:56 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 ] ] with [ zp[2]:156 [ utoa_append::buffer#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:61 [ print::i#2 print::i#1 ] ] with [ zp[1]:64 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:66 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] ] with [ zp[1]:70 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] ] - score: 1 +Coalescing zero page register [ zp[1]:66 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] ] with [ zp[1]:176 [ uctoa_append::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:68 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] ] with [ zp[2]:170 [ uctoa::buffer#3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:68 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 ] ] with [ zp[2]:173 [ uctoa_append::buffer#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:73 [ legal::return#4 ] ] with [ zp[1]:167 [ legal::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:79 [ printf_cursor_ptr printf_scroll::$4 ] ] with [ zp[2]:98 [ printf_ln::$0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:79 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 ] ] with [ zp[2]:100 [ printf_ln::$1 ] ] - score: 1 +Coalescing zero page register [ zp[1]:89 [ tod_read::return_TENTHS#2 ] ] with [ zp[1]:93 [ tod_str::tod_TENTHS#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:89 [ tod_read::return_TENTHS#2 tod_str::tod_TENTHS#0 ] ] with [ zp[1]:149 [ tod_read::return_TENTHS#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:90 [ tod_read::return_SEC#2 ] ] with [ zp[1]:94 [ tod_str::tod_SEC#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:90 [ tod_read::return_SEC#2 tod_str::tod_SEC#0 ] ] with [ zp[1]:148 [ tod_read::return_SEC#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:91 [ tod_read::return_MIN#2 ] ] with [ zp[1]:95 [ tod_str::tod_MIN#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:91 [ tod_read::return_MIN#2 tod_str::tod_MIN#0 ] ] with [ zp[1]:147 [ tod_read::return_MIN#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:92 [ tod_read::return_HOURS#2 ] ] with [ zp[1]:96 [ tod_str::tod_HOURS#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:92 [ tod_read::return_HOURS#2 tod_str::tod_HOURS#0 ] ] with [ zp[1]:146 [ tod_read::return_HOURS#0 ] ] - score: 1 +Coalescing zero page register [ zp[4]:116 [ ultoa::digit_value#0 ] ] with [ zp[4]:122 [ ultoa_append::sub#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:130 [ tod_str::$0 ] ] with [ zp[1]:131 [ tod_str::$1 ] ] - score: 1 +Coalescing zero page register [ zp[1]:132 [ tod_str::$2 ] ] with [ zp[1]:133 [ tod_str::$3 ] ] - score: 1 +Coalescing zero page register [ zp[1]:134 [ tod_str::$4 ] ] with [ zp[1]:135 [ tod_str::$5 ] ] - score: 1 +Coalescing zero page register [ zp[1]:136 [ tod_str::$6 ] ] with [ zp[1]:137 [ tod_str::$7 ] ] - score: 1 +Coalescing zero page register [ zp[1]:138 [ tod_str::$8 ] ] with [ zp[1]:139 [ tod_str::$9 ] ] - score: 1 +Coalescing zero page register [ zp[1]:140 [ tod_str::$10 ] ] with [ zp[1]:141 [ tod_str::$11 ] ] - score: 1 +Coalescing zero page register [ zp[1]:142 [ tod_str::$12 ] ] with [ zp[1]:143 [ tod_str::$13 ] ] - score: 1 +Coalescing zero page register [ zp[1]:144 [ tod_str::$14 ] ] with [ zp[1]:145 [ tod_str::$15 ] ] - score: 1 +Coalescing zero page register [ zp[2]:154 [ utoa::digit_value#0 ] ] with [ zp[2]:158 [ utoa_append::sub#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:162 [ queen::row#0 ] ] with [ zp[1]:163 [ queen::r ] ] - score: 1 +Coalescing zero page register [ zp[1]:164 [ queen::column ] ] with [ zp[1]:166 [ legal::column#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:172 [ uctoa::digit_value#0 ] ] with [ zp[1]:175 [ uctoa_append::sub#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:178 [ diff::return#0 ] ] with [ zp[1]:179 [ legal::$3 ] ] - score: 1 +Coalescing zero page register [ zp[1]:180 [ diff::return#1 ] ] with [ zp[1]:181 [ legal::$4 ] ] - score: 1 +Coalescing zero page register [ zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 ] ] with [ zp[1]:111 [ strupr::$0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:37 [ strlen::len#2 strlen::len#1 strlen::return#2 ] ] with [ zp[2]:108 [ printf_number_buffer::$19 ] ] - score: 1 +Coalescing zero page register [ zp[1]:61 [ print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] ] with [ zp[1]:62 [ print::i1#2 print::i1#1 ] ] - score: 1 +Coalescing zero page register [ zp[1]:73 [ legal::return#4 legal::return#0 ] ] with [ zp[1]:168 [ queen::$1 ] ] - score: 1 +Coalescing zero page register [ zp[1]:74 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 ] ] with [ zp[1]:180 [ diff::return#1 legal::$4 ] ] - score: 1 +Coalescing zero page register [ zp[1]:89 [ tod_read::return_TENTHS#2 tod_str::tod_TENTHS#0 tod_read::return_TENTHS#0 ] ] with [ zp[1]:144 [ tod_str::$14 tod_str::$15 ] ] - score: 1 +Coalescing zero page register [ zp[1]:90 [ tod_read::return_SEC#2 tod_str::tod_SEC#0 tod_read::return_SEC#0 ] ] with [ zp[1]:140 [ tod_str::$10 tod_str::$11 ] ] - score: 1 +Coalescing zero page register [ zp[1]:91 [ tod_read::return_MIN#2 tod_str::tod_MIN#0 tod_read::return_MIN#0 ] ] with [ zp[1]:136 [ tod_str::$6 tod_str::$7 ] ] - score: 1 +Coalescing zero page register [ zp[1]:92 [ tod_read::return_HOURS#2 tod_str::tod_HOURS#0 tod_read::return_HOURS#0 ] ] with [ zp[1]:132 [ tod_str::$2 tod_str::$3 ] ] - score: 1 +Coalescing zero page register [ zp[1]:162 [ queen::row#0 queen::r ] ] with [ zp[1]:165 [ legal::row#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:162 [ queen::row#0 queen::r legal::row#0 ] ] with [ zp[1]:169 [ queen::$4 ] ] - score: 1 +Coalescing zero page register [ zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] ] with [ zp[2]:4 [ memset::num#2 memset::end#0 ] ] +Coalescing zero page register [ zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] ] with [ zp[2]:6 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] +Coalescing zero page register [ zp[1]:27 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] ] with [ zp[1]:8 [ memset::c#4 ] ] +Coalescing zero page register [ zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 ] ] with [ zp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_padding::pad#7 printf_str::ch#0 ] ] +Coalescing zero page register [ zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 ] ] with [ zp[2]:32 [ strupr::src#2 strupr::str#0 strupr::src#1 ] ] +Coalescing zero page register [ zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] ] with [ zp[1]:20 [ printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] +Coalescing zero page register [ zp[1]:44 [ ultoa::started#2 ultoa::started#4 ] ] with [ zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] ] +Coalescing zero page register [ zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 ] ] with [ zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] ] +Coalescing zero page register [ zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] ] with [ zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] ] +Coalescing zero page register [ zp[1]:52 [ utoa::digit#2 utoa::digit#1 ] ] with [ zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] ] +Coalescing zero page register [ zp[2]:53 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 ] ] with [ zp[2]:37 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] +Coalescing zero page register [ zp[1]:55 [ utoa::started#2 utoa::started#4 ] ] with [ zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] ] +Coalescing zero page register [ zp[1]:60 [ utoa_append::digit#2 utoa_append::digit#1 ] ] with [ zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] ] +Coalescing zero page register [ zp[1]:63 [ print::j#2 print::j#1 ] ] with [ zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] ] +Coalescing zero page register [ zp[2]:68 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] ] with [ zp[2]:56 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ] ] +Coalescing zero page register [ zp[1]:72 [ legal::i#2 legal::i#1 ] ] with [ zp[1]:61 [ print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 print::i1#2 print::i1#1 ] ] +Coalescing zero page register [ zp[1]:73 [ legal::return#4 legal::return#0 queen::$1 ] ] with [ zp[1]:65 [ uctoa::digit#2 uctoa::digit#1 ] ] +Coalescing zero page register [ zp[1]:74 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 ] ] with [ zp[1]:66 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 ] ] +Coalescing zero page register [ zp[1]:75 [ diff::b#2 diff::b#0 diff::b#1 ] ] with [ zp[1]:67 [ uctoa::started#2 uctoa::started#4 ] ] +Coalescing zero page register [ zp[1]:85 [ tod_init::tod_TENTHS#0 ] ] with [ zp[1]:71 [ uctoa_append::digit#2 uctoa_append::digit#1 ] ] +Coalescing zero page register [ zp[1]:89 [ tod_read::return_TENTHS#2 tod_str::tod_TENTHS#0 tod_read::return_TENTHS#0 tod_str::$14 tod_str::$15 ] ] with [ zp[1]:86 [ tod_init::tod_SEC#0 ] ] +Coalescing zero page register [ zp[1]:90 [ tod_read::return_SEC#2 tod_str::tod_SEC#0 tod_read::return_SEC#0 tod_str::$10 tod_str::$11 ] ] with [ zp[1]:87 [ tod_init::tod_MIN#0 ] ] +Coalescing zero page register [ zp[1]:91 [ tod_read::return_MIN#2 tod_str::tod_MIN#0 tod_read::return_MIN#0 tod_str::$6 tod_str::$7 ] ] with [ zp[1]:88 [ tod_init::tod_HOURS#0 ] ] +Coalescing zero page register [ zp[1]:112 [ ultoa::$11 ] ] with [ zp[1]:92 [ tod_read::return_HOURS#2 tod_str::tod_HOURS#0 tod_read::return_HOURS#0 tod_str::$2 tod_str::$3 ] ] +Coalescing zero page register [ zp[1]:130 [ tod_str::$0 tod_str::$1 ] ] with [ zp[1]:115 [ ultoa::$10 ] ] +Coalescing zero page register [ zp[1]:150 [ utoa::$11 ] ] with [ zp[1]:134 [ tod_str::$4 tod_str::$5 ] ] +Coalescing zero page register [ zp[1]:153 [ utoa::$10 ] ] with [ zp[1]:138 [ tod_str::$8 tod_str::$9 ] ] +Coalescing zero page register [ zp[1]:162 [ queen::row#0 queen::r legal::row#0 queen::$4 ] ] with [ zp[1]:142 [ tod_str::$12 tod_str::$13 ] ] +Coalescing zero page register [ zp[1]:177 [ legal::$0 ] ] with [ zp[1]:172 [ uctoa::digit_value#0 uctoa_append::sub#0 ] ] +Coalescing zero page register [ zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 ] ] with [ zp[2]:11 [ memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] ] +Coalescing zero page register [ zp[2]:53 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] with [ zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] +Coalescing zero page register [ zp[2]:68 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ] ] with [ zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] ] +Coalescing zero page register [ zp[1]:73 [ legal::return#4 legal::return#0 queen::$1 uctoa::digit#2 uctoa::digit#1 ] ] with [ zp[1]:27 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 memset::c#4 ] ] +Coalescing zero page register [ zp[1]:74 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 ] ] with [ zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_padding::pad#7 printf_str::ch#0 ] ] +Coalescing zero page register [ zp[1]:75 [ diff::b#2 diff::b#0 diff::b#1 uctoa::started#2 uctoa::started#4 ] ] with [ zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] +Coalescing zero page register [ zp[1]:85 [ tod_init::tod_TENTHS#0 uctoa_append::digit#2 uctoa_append::digit#1 ] ] with [ zp[1]:44 [ ultoa::started#2 ultoa::started#4 printf_number_buffer::format_justify_left#10 ] ] +Coalescing zero page register [ zp[1]:89 [ tod_read::return_TENTHS#2 tod_str::tod_TENTHS#0 tod_read::return_TENTHS#0 tod_str::$14 tod_str::$15 tod_init::tod_SEC#0 ] ] with [ zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 printf_number_buffer::format_zero_padding#10 ] ] +Coalescing zero page register [ zp[1]:90 [ tod_read::return_SEC#2 tod_str::tod_SEC#0 tod_read::return_SEC#0 tod_str::$10 tod_str::$11 tod_init::tod_MIN#0 ] ] with [ zp[1]:52 [ utoa::digit#2 utoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] ] +Coalescing zero page register [ zp[1]:91 [ tod_read::return_MIN#2 tod_str::tod_MIN#0 tod_read::return_MIN#0 tod_str::$6 tod_str::$7 tod_init::tod_HOURS#0 ] ] with [ zp[1]:55 [ utoa::started#2 utoa::started#4 printf_number_buffer::format_upper_case#10 ] ] +Coalescing zero page register [ zp[1]:112 [ ultoa::$11 tod_read::return_HOURS#2 tod_str::tod_HOURS#0 tod_read::return_HOURS#0 tod_str::$2 tod_str::$3 ] ] with [ zp[1]:60 [ utoa_append::digit#2 utoa_append::digit#1 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] ] +Coalescing zero page register [ zp[1]:150 [ utoa::$11 tod_str::$4 tod_str::$5 ] ] with [ zp[1]:63 [ print::j#2 print::j#1 printf_padding::i#2 printf_padding::i#1 ] ] +Coalescing zero page register [ zp[1]:153 [ utoa::$10 tod_str::$8 tod_str::$9 ] ] with [ zp[1]:72 [ legal::i#2 legal::i#1 print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 print::i1#2 print::i1#1 ] ] +Coalescing zero page register [ zp[1]:177 [ legal::$0 uctoa::digit_value#0 uctoa_append::sub#0 ] ] with [ zp[1]:130 [ tod_str::$0 tod_str::$1 ultoa::$10 ] ] +Coalescing zero page register [ zp[2]:154 [ utoa::digit_value#0 utoa_append::sub#0 ] ] with [ zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] ] +Coalescing zero page register [ zp[1]:178 [ diff::return#0 legal::$3 ] ] with [ zp[1]:85 [ tod_init::tod_TENTHS#0 uctoa_append::digit#2 uctoa_append::digit#1 ultoa::started#2 ultoa::started#4 printf_number_buffer::format_justify_left#10 ] ] +Allocated (was zp[4]:16) zp[4]:2 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 count ] +Allocated (was zp[4]:40) zp[4]:6 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ] +Allocated (was zp[2]:53) zp[2]:10 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] +Allocated (was zp[2]:68) zp[2]:12 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] +Allocated (was zp[1]:73) zp[1]:14 [ legal::return#4 legal::return#0 queen::$1 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 memset::c#4 ] +Allocated (was zp[1]:74) zp[1]:15 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_padding::pad#7 printf_str::ch#0 ] +Allocated (was zp[1]:75) zp[1]:16 [ diff::b#2 diff::b#0 diff::b#1 uctoa::started#2 uctoa::started#4 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Allocated (was zp[1]:77) zp[1]:17 [ printf_cursor_x ] +Allocated (was zp[1]:78) zp[1]:18 [ printf_cursor_y ] +Allocated (was zp[2]:79) zp[2]:19 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] +Allocated (was zp[1]:89) zp[1]:21 [ tod_read::return_TENTHS#2 tod_str::tod_TENTHS#0 tod_read::return_TENTHS#0 tod_str::$14 tod_str::$15 tod_init::tod_SEC#0 ultoa_append::digit#2 ultoa_append::digit#1 printf_number_buffer::format_zero_padding#10 ] +Allocated (was zp[1]:90) zp[1]:22 [ tod_read::return_SEC#2 tod_str::tod_SEC#0 tod_read::return_SEC#0 tod_str::$10 tod_str::$11 tod_init::tod_MIN#0 utoa::digit#2 utoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Allocated (was zp[1]:91) zp[1]:23 [ tod_read::return_MIN#2 tod_str::tod_MIN#0 tod_read::return_MIN#0 tod_str::$6 tod_str::$7 tod_init::tod_HOURS#0 utoa::started#2 utoa::started#4 printf_number_buffer::format_upper_case#10 ] +Allocated (was zp[1]:112) zp[1]:24 [ ultoa::$11 tod_read::return_HOURS#2 tod_str::tod_HOURS#0 tod_read::return_HOURS#0 tod_str::$2 tod_str::$3 utoa_append::digit#2 utoa_append::digit#1 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Allocated (was zp[4]:116) zp[4]:25 [ ultoa::digit_value#0 ultoa_append::sub#0 ] +Allocated (was zp[1]:150) zp[1]:29 [ utoa::$11 tod_str::$4 tod_str::$5 print::j#2 print::j#1 printf_padding::i#2 printf_padding::i#1 ] +Allocated (was zp[1]:153) zp[1]:30 [ utoa::$10 tod_str::$8 tod_str::$9 legal::i#2 legal::i#1 print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 print::i1#2 print::i1#1 ] +Allocated (was zp[2]:154) zp[2]:31 [ utoa::digit_value#0 utoa_append::sub#0 strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] +Allocated (was zp[1]:162) zp[1]:33 [ queen::row#0 queen::r legal::row#0 queen::$4 tod_str::$12 tod_str::$13 ] +Allocated (was zp[1]:164) zp[1]:34 [ queen::column legal::column#0 ] +Allocated (was zp[1]:177) zp[1]:35 [ legal::$0 uctoa::digit_value#0 uctoa_append::sub#0 tod_str::$0 tod_str::$1 ultoa::$10 ] +Allocated (was zp[1]:178) zp[1]:36 [ diff::return#0 legal::$3 tod_init::tod_TENTHS#0 uctoa_append::digit#2 uctoa_append::digit#1 ultoa::started#2 ultoa::started#4 printf_number_buffer::format_justify_left#10 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -8816,13 +10454,24 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(__bbegin) .pc = $80d "Program" // Global Constants & labels + // The CIA#1: keyboard matrix, joystick #1/#2 + .label CIA1 = $dc00 .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 + .const OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 + .const OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 + .const OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 + .const OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e + .const OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f + .const OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b + .const OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a + .const OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 + .const OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 .const STACK_BASE = $103 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - .label printf_cursor_x = $10 - .label printf_cursor_y = $11 - .label printf_cursor_ptr = $12 - .label count = $14 + .label printf_cursor_x = $11 + .label printf_cursor_y = $12 + .label printf_cursor_ptr = $13 + .label count = 2 // @begin __bbegin: jmp __b1 @@ -8872,7 +10521,7 @@ __bend: // main main: { // [9] call printf_cls - // [171] phi from main to printf_cls [phi:main->printf_cls] + // [272] phi from main to printf_cls [phi:main->printf_cls] printf_cls_from_main: jsr printf_cls // [10] phi from main to main::@1 [phi:main->main::@1] @@ -8881,9 +10530,9 @@ main: { // main::@1 __b1: // [11] call printf_str - // [104] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [45] phi from main::@1 to printf_str [phi:main::@1->printf_str] printf_str_from___b1: - // [104] phi (byte*) printf_str::str#11 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 lda #str @@ -8895,9 +10544,9 @@ main: { // main::@2 __b2: // [13] call printf_str - // [104] phi from main::@2 to printf_str [phi:main::@2->printf_str] + // [45] phi from main::@2 to printf_str [phi:main::@2->printf_str] printf_str_from___b2: - // [104] phi (byte*) printf_str::str#11 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 lda #str1 @@ -8909,426 +10558,257 @@ main: { // main::@3 __b3: // [15] call printf_uint - // [20] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] + // [238] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] printf_uint_from___b3: jsr printf_uint jmp __b4 // main::@4 __b4: - // [16] stackpush(byte) ← (byte) 1 -- _stackpushbyte_=vbuc1 + // [16] (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO + sta.z tod_init.tod_TENTHS + // [17] (byte) tod_init::tod_SEC#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC + sta.z tod_init.tod_SEC + // [18] (byte) tod_init::tod_MIN#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN + sta.z tod_init.tod_MIN + // [19] (byte) tod_init::tod_HOURS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS + sta.z tod_init.tod_HOURS + // [20] call tod_init + jsr tod_init + jmp __b5 + // main::@5 + __b5: + // [21] stackpush(byte) ← (byte) 1 -- _stackpushbyte_=vbuc1 lda #1 pha - // [17] callexecute queen -- jsr + // [22] callexecute queen -- jsr jsr queen // sideeffect stackpullbytes((number) 1) -- _stackpullbyte_1 pla + // [24] call tod_read + jsr tod_read + // [25] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 + // [26] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 + // [27] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 + // [28] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 + jmp __b6 + // main::@6 + __b6: + // [29] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 + // [30] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 + // [31] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 + // [32] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 + // [33] call tod_str + jsr tod_str + // [34] phi from main::@6 to main::@7 [phi:main::@6->main::@7] + __b7_from___b6: + jmp __b7 + // main::@7 + __b7: + // [35] call printf_str + // [45] phi from main::@7 to printf_str [phi:main::@7->printf_str] + printf_str_from___b7: + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str2 [phi:main::@7->printf_str#0] -- pbuz1=pbuc1 + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + jmp __b8 + // main::@8 + __b8: + // [36] (dword) printf_ulong::uvalue#0 ← (dword) count + // [37] call printf_ulong + // [101] phi from main::@8 to printf_ulong [phi:main::@8->printf_ulong] + printf_ulong_from___b8: + // [101] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#0 [phi:main::@8->printf_ulong#0] -- register_copy + jsr printf_ulong + // [38] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + __b9_from___b8: + jmp __b9 + // main::@9 + __b9: + // [39] call printf_str + // [45] phi from main::@9 to printf_str [phi:main::@9->printf_str] + printf_str_from___b9: + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str3 [phi:main::@9->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + // [40] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + __b10_from___b9: + jmp __b10 + // main::@10 + __b10: + // [41] call printf_string + // [97] phi from main::@10 to printf_string [phi:main::@10->printf_string] + printf_string_from___b10: + jsr printf_string + // [42] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + __b11_from___b10: + jmp __b11 + // main::@11 + __b11: + // [43] call printf_str + // [45] phi from main::@11 to printf_str [phi:main::@11->printf_str] + printf_str_from___b11: + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str4 [phi:main::@11->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str jmp __breturn // main::@return __breturn: - // [19] return + // [44] return rts str: .text " - n queens problem using backtracking -" .byte 0 - str1: .text @"\nNumber of queens:" + str1: .text @"\nnumber of queens:" + .byte 0 + str2: .text @"\nsolutions: " + .byte 0 + str3: .text " time: " + .byte 0 + str4: .text @".\n" .byte 0 } - // printf_uint -// Print an unsigned int using a specific format -printf_uint: { - .label uvalue = 8 - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 + // printf_str +// Print a zero-terminated string +// Handles escape codes such as newline +// printf_str(byte* zp($c) str) +printf_str: { + .label ch = $f + .label str = $c + // [46] 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___b4: + __b1_from___b5: + // [46] phi (byte*) printf_str::str#13 = (byte*) printf_str::str#15 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy jmp __b1 - // printf_uint::@1 + // printf_str::@1 __b1: - // [21] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [22] call utoa - // Format number into buffer - // [143] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] - utoa_from___b1: - jsr utoa jmp __b2 - // printf_uint::@2 + // printf_str::@2 __b2: - // [23] (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 - // [24] call printf_number_buffer - // Print using format - // [26] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [26] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [26] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy - // [26] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [26] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [26] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [26] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_uint::@return - __breturn: - // [25] return - rts -} - // printf_number_buffer -// Print the contents of the number buffer using a specific format. -// This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($23) buffer_sign, byte* zp($c) buffer_digits, byte zp($f) format_min_length, byte zp($1d) format_justify_left, byte zp($18) format_zero_padding, byte zp($22) format_upper_case) -printf_number_buffer: { - .label __19 = 2 - .label buffer_sign = $23 - .label len = 4 - .label padding = $f - .label format_min_length = $f - .label format_zero_padding = $18 - .label format_justify_left = $1d - .label buffer_digits = $c - .label format_upper_case = $22 - // [27] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_min_length - beq __b1_from_printf_number_buffer - jmp __b6 - // printf_number_buffer::@6 - __b6: - // [28] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 - lda.z buffer_digits - sta.z strlen.str - lda.z buffer_digits+1 - sta.z strlen.str+1 - // [29] call strlen - // [137] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] - strlen_from___b6: - jsr strlen - // [30] (word) strlen::return#2 ← (word) strlen::len#2 - jmp __b14 - // printf_number_buffer::@14 - __b14: - // [31] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - // [32] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsz1=_sbyte_vwuz2 - // There is a minimum length - work out the padding - lda.z __19 - sta.z len - // [33] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b13_from___b14 - jmp __b7 - // printf_number_buffer::@7 - __b7: - // [34] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsz1=_inc_vbsz1 - inc.z len - // [35] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] - __b13_from___b14: - __b13_from___b7: - // [35] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy - jmp __b13 - // printf_number_buffer::@13 - __b13: - // [36] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsz1_minus_vbsz2 - lda.z padding - sec - sbc.z len - sta.z padding - // [37] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 - lda.z padding - cmp #0 - bpl __b21_from___b13 - // [39] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] - __b1_from_printf_number_buffer: - __b1_from___b13: - // [39] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 - lda #0 - sta.z padding - jmp __b1 - // [38] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] - __b21_from___b13: - jmp __b21 - // printf_number_buffer::@21 - __b21: - // [39] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] - __b1_from___b21: - // [39] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy - jmp __b1 - // printf_number_buffer::@1 - __b1: - // [40] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - bne __b2 - jmp __b17 - // printf_number_buffer::@17 - __b17: - // [41] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - bne __b2 - jmp __b16 - // printf_number_buffer::@16 - __b16: - // [42] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b8 - jmp __b2 - // printf_number_buffer::@8 - __b8: - // [43] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [44] call printf_padding - // [63] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] - printf_padding_from___b8: - // [63] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [63] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy - jsr printf_padding - jmp __b2 - // printf_number_buffer::@2 - __b2: - // [45] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b3 - jmp __b9 - // printf_number_buffer::@9 - __b9: - // [46] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuz1=vbuz2 - lda.z buffer_sign - sta.z printf_char.ch - // [47] call printf_char - // [70] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] - printf_char_from___b9: - // [70] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy - jsr printf_char - jmp __b3 - // printf_number_buffer::@3 - __b3: - // [48] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - beq __b4 - jmp __b18 - // printf_number_buffer::@18 - __b18: - // [49] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b10 - jmp __b4 - // printf_number_buffer::@10 - __b10: - // [50] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [51] call printf_padding - // [63] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] - printf_padding_from___b10: - // [63] phi (byte) printf_padding::pad#5 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 - lda #'0' - sta.z printf_padding.pad - // [63] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy - jsr printf_padding - jmp __b4 - // printf_number_buffer::@4 - __b4: - // [52] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_upper_case - beq __b5 - jmp __b11 - // printf_number_buffer::@11 - __b11: - // [53] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 - lda.z buffer_digits - sta.z strupr.str - lda.z buffer_digits+1 - sta.z strupr.str+1 - // [54] call strupr - // [122] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] - strupr_from___b11: - jsr strupr - jmp __b5 - // printf_number_buffer::@5 - __b5: - // [55] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - // [56] call printf_str - // [104] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] - printf_str_from___b5: - // [104] phi (byte*) printf_str::str#11 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy - jsr printf_str - jmp __b15 - // printf_number_buffer::@15 - __b15: - // [57] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - beq __breturn - jmp __b20 - // printf_number_buffer::@20 - __b20: - // [58] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - bne __breturn - jmp __b19 - // printf_number_buffer::@19 - __b19: - // [59] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 - lda #0 - cmp.z padding - bne __b12 - jmp __breturn - // printf_number_buffer::@12 - __b12: - // [60] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [61] call printf_padding - // [63] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] - printf_padding_from___b12: - // [63] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [63] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy - jsr printf_padding - jmp __breturn - // printf_number_buffer::@return - __breturn: - // [62] return - rts -} - // printf_padding -// Print a padding char a number of times -// printf_padding(byte zp(5) pad, byte zp(4) length) -printf_padding: { - .label i = 6 - .label length = 4 - .label pad = 5 - // [64] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] - __b1_from_printf_padding: - // [64] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z i - jmp __b1 - // printf_padding::@1 - __b1: - // [65] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 - lda.z i - cmp.z length - bcc __b2 - jmp __breturn - // printf_padding::@return - __breturn: - // [66] return - rts - // printf_padding::@2 - __b2: - // [67] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#5 - // [68] call printf_char - // [70] phi from printf_padding::@2 to printf_char [phi:printf_padding::@2->printf_char] - printf_char_from___b2: - // [70] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy - jsr printf_char - jmp __b3 - // printf_padding::@3 - __b3: - // [69] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [64] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] - __b1_from___b3: - // [64] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy - jmp __b1 -} - // printf_char -// Print a single char -// If the end of the screen is reached scroll it up one char and place the cursor at the -// printf_char(byte zp(5) ch) -printf_char: { - .label ch = 5 - // [71] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuz2 - lda.z ch + // [47] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) -- vbuz1=_deref_pbuz2 ldy #0 - sta (printf_cursor_ptr),y - // [72] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 - inc.z printf_cursor_ptr + lda (str),y + sta.z ch + // [48] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 -- pbuz1=_inc_pbuz1 + inc.z str bne !+ - inc.z printf_cursor_ptr+1 + inc.z str+1 !: - // [73] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 - inc.z printf_cursor_x - // [74] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 + // [49] 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: + // [50] return + rts + // printf_str::@3 + __b3: + // [51] 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: + // [52] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + // [53] call printf_char + // [88] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + printf_char_from___b5: + // [88] 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 + // [54] 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: + // [55] call printf_ln + jsr printf_ln + jmp __b1_from___b4 +} + // printf_ln +// Print a newline +printf_ln: { + .label __0 = $13 + .label __1 = $13 + // [56] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz1_minus_vbuz2 + sec + lda.z __0 + sbc.z printf_cursor_x + sta.z __0 + bcs !+ + dec.z __0+1 + !: + // [57] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 - cmp.z printf_cursor_x - bne __breturn - jmp __b1 - // printf_char::@1 - __b1: - // [75] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + clc + adc.z __1 + sta.z __1 + bcc !+ + inc.z __1+1 + !: + // [58] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 + // [59] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [76] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [60] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y - // [77] call printf_scroll + // [61] call printf_scroll jsr printf_scroll jmp __breturn - // printf_char::@return + // printf_ln::@return __breturn: - // [78] return + // [62] return rts } // printf_scroll // Scroll the entire screen if the cursor is on the last line printf_scroll: { - .label __4 = $12 - // [79] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 + .label __4 = $13 + // [63] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z printf_cursor_y bne __breturn - // [80] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] + // [64] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] __b1_from_printf_scroll: jmp __b1 // printf_scroll::@1 __b1: - // [81] call memcpy - // [97] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] + // [65] call memcpy + // [81] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] memcpy_from___b1: jsr memcpy - // [82] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] + // [66] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] __b2_from___b1: jmp __b2 // printf_scroll::@2 __b2: - // [83] call memset - // [88] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] + // [67] call memset + // [72] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] memset_from___b2: - // [88] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuz1=vbuc1 + // [72] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuz1=vbuc1 lda #' ' sta.z memset.c - // [88] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 + // [72] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 lda #<$400+$28*$19-$28 sta.z memset.str lda #>$400+$28*$19-$28 sta.z memset.str+1 - // [88] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 + // [72] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 lda #<$28 sta.z memset.num lda #>$28 @@ -9337,7 +10817,7 @@ printf_scroll: { jmp __b3 // printf_scroll::@3 __b3: - // [84] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 + // [68] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 lda.z __4 sec sbc #<$28 @@ -9345,25 +10825,25 @@ printf_scroll: { lda.z __4+1 sbc #>$28 sta.z __4+1 - // [85] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 - // [86] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 + // [69] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 + // [70] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 dec.z printf_cursor_y jmp __breturn // printf_scroll::@return __breturn: - // [87] return + // [71] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(2) str, byte zp(7) c, word zp($19) num) +// memset(void* zp($a) str, byte zp($e) c, word zp($1f) num) memset: { - .label end = $19 - .label dst = 2 - .label num = $19 - .label str = 2 - .label c = 7 - // [89] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 + .label end = $1f + .label dst = $a + .label num = $1f + .label str = $a + .label c = $e + // [73] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -9372,7 +10852,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [90] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [74] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 lda.z end clc adc.z str @@ -9380,15 +10860,15 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [91] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 - // [92] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [75] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 + // [76] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: - // [92] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [76] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: - // [93] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [77] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -9398,15 +10878,15 @@ memset: { jmp __breturn // memset::@return __breturn: - // [94] return + // [78] return rts // memset::@3 __b3: - // [95] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuz2 + // [79] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuz2 lda.z c ldy #0 sta (dst),y - // [96] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + // [80] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -9421,16 +10901,16 @@ memcpy: { .label source = $400+$28 .const num = $28*$19-$28 .label src_end = source+num - .label dst = 2 - .label src = $19 - // [98] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] + .label dst = $a + .label src = $1f + // [82] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] __b1_from_memcpy: - // [98] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 + // [82] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 lda #destination sta.z dst+1 - // [98] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 + // [82] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 lda #source @@ -9438,7 +10918,7 @@ memcpy: { jmp __b1 // memcpy::@1 __b1: - // [99] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 + // [83] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z src+1 cmp #>src_end bne __b2 @@ -9448,142 +10928,439 @@ memcpy: { jmp __breturn // memcpy::@return __breturn: - // [100] return + // [84] return rts // memcpy::@2 __b2: - // [101] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 + // [85] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y ldy #0 sta (dst),y - // [102] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 + // [86] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [103] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 + // [87] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [98] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] + // [82] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] __b1_from___b2: - // [98] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy - // [98] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy + // [82] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy + // [82] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy jmp __b1 } - // printf_str -// Print a zero-terminated string -// Handles escape codes such as newline -// printf_str(byte* zp($c) str) -printf_str: { - .label ch = 5 - .label str = $c - // [105] 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___b4: - __b1_from___b5: - // [105] phi (byte*) printf_str::str#10 = (byte*) printf_str::str#11 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy - jmp __b1 - // printf_str::@1 - __b1: - jmp __b2 - // printf_str::@2 - __b2: - // [106] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#10) -- vbuz1=_deref_pbuz2 - ldy #0 - lda (str),y - sta.z ch - // [107] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#10 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - // [108] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuz1_neq_0_then_la1 + // printf_char +// Print a single char +// If the end of the screen is reached scroll it up one char and place the cursor at the +// printf_char(byte zp($f) ch) +printf_char: { + .label ch = $f + // [89] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuz2 lda.z ch - cmp #0 - bne __b3 - jmp __breturn - // printf_str::@return - __breturn: - // [109] return - rts - // printf_str::@3 - __b3: - // [110] 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: - // [111] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 - // [112] call printf_char - // [70] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] - printf_char_from___b5: - // [70] 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 - // [113] 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: - // [114] call printf_ln - jsr printf_ln - jmp __b1_from___b4 -} - // printf_ln -// Print a newline -printf_ln: { - .label __0 = $12 - .label __1 = $12 - // [115] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz1_minus_vbuz2 - sec - lda.z __0 - sbc.z printf_cursor_x - sta.z __0 - bcs !+ - dec.z __0+1 + ldy #0 + sta (printf_cursor_ptr),y + // [90] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 + inc.z printf_cursor_ptr + bne !+ + inc.z printf_cursor_ptr+1 !: - // [116] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [91] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 + inc.z printf_cursor_x + // [92] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 - clc - adc.z __1 - sta.z __1 - bcc !+ - inc.z __1+1 - !: - // [117] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 - // [118] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + cmp.z printf_cursor_x + bne __breturn + jmp __b1 + // printf_char::@1 + __b1: + // [93] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [119] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [94] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y - // [120] call printf_scroll + // [95] call printf_scroll jsr printf_scroll jmp __breturn - // printf_ln::@return + // printf_char::@return __breturn: - // [121] return + // [96] return rts +} + // printf_string +// Print a string value using a specific format +// Handles justification and min length +printf_string: { + // [98] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + __b1_from_printf_string: + jmp __b1 + // printf_string::@1 + __b1: + // [99] call printf_str + // [45] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + printf_str_from___b1: + // [45] phi (byte*) printf_str::str#15 = (const byte*) tod_buffer [phi:printf_string::@1->printf_str#0] -- pbuz1=pbuc1 + lda #tod_buffer + sta.z printf_str.str+1 + jsr printf_str + jmp __breturn + // printf_string::@return + __breturn: + // [100] return + rts +} + // printf_ulong +// Print an unsigned int using a specific format +// printf_ulong(dword zp(2) uvalue) +printf_ulong: { + .label uvalue = 2 + jmp __b1 + // printf_ulong::@1 + __b1: + // [102] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // [103] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 -- vduz1=vduz2 + lda.z uvalue + sta.z ultoa.value + lda.z uvalue+1 + sta.z ultoa.value+1 + lda.z uvalue+2 + sta.z ultoa.value+2 + lda.z uvalue+3 + sta.z ultoa.value+3 + // [104] call ultoa + // Format number into buffer + // [173] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] + ultoa_from___b1: + jsr ultoa + jmp __b2 + // printf_ulong::@2 + __b2: + // [105] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // [106] call printf_number_buffer + // Print using format + // [108] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] + printf_number_buffer_from___b2: + // [108] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_upper_case + // [108] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy + // [108] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [108] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + // [108] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_justify_left + // [108] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + jmp __breturn + // printf_ulong::@return + __breturn: + // [107] return + rts +} + // printf_number_buffer +// Print the contents of the number buffer using a specific format. +// This handles minimum length, zero-filling, and left/right justification from the format +// printf_number_buffer(byte zp($16) buffer_sign, byte* zp($c) buffer_digits, byte zp($10) format_min_length, byte zp($24) format_justify_left, byte zp($15) format_zero_padding, byte zp($17) format_upper_case) +printf_number_buffer: { + .label __19 = $a + .label buffer_sign = $16 + .label len = $e + .label padding = $10 + .label format_min_length = $10 + .label format_zero_padding = $15 + .label format_justify_left = $24 + .label buffer_digits = $c + .label format_upper_case = $17 + // [109] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_min_length + beq __b1_from_printf_number_buffer + jmp __b6 + // printf_number_buffer::@6 + __b6: + // [110] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + lda.z buffer_digits + sta.z strlen.str + lda.z buffer_digits+1 + sta.z strlen.str+1 + // [111] call strlen + // [167] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + strlen_from___b6: + jsr strlen + // [112] (word) strlen::return#2 ← (word) strlen::len#2 + jmp __b14 + // printf_number_buffer::@14 + __b14: + // [113] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 + // [114] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsz1=_sbyte_vwuz2 + // There is a minimum length - work out the padding + lda.z __19 + sta.z len + // [115] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z buffer_sign + beq __b13_from___b14 + jmp __b7 + // printf_number_buffer::@7 + __b7: + // [116] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsz1=_inc_vbsz1 + inc.z len + // [117] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + __b13_from___b14: + __b13_from___b7: + // [117] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + jmp __b13 + // printf_number_buffer::@13 + __b13: + // [118] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsz1_minus_vbsz2 + lda.z padding + sec + sbc.z len + sta.z padding + // [119] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + lda.z padding + cmp #0 + bpl __b21_from___b13 + // [121] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + __b1_from_printf_number_buffer: + __b1_from___b13: + // [121] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + lda #0 + sta.z padding + jmp __b1 + // [120] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + __b21_from___b13: + jmp __b21 + // printf_number_buffer::@21 + __b21: + // [121] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + __b1_from___b21: + // [121] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + jmp __b1 + // printf_number_buffer::@1 + __b1: + // [122] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z format_justify_left + bne __b2 + jmp __b17 + // printf_number_buffer::@17 + __b17: + // [123] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z format_zero_padding + bne __b2 + jmp __b16 + // printf_number_buffer::@16 + __b16: + // [124] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 + lda #0 + cmp.z padding + bne __b8 + jmp __b2 + // printf_number_buffer::@8 + __b8: + // [125] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + lda.z padding + sta.z printf_padding.length + // [126] call printf_padding + // [145] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + printf_padding_from___b8: + // [145] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 + lda #' ' + sta.z printf_padding.pad + // [145] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy + jsr printf_padding + jmp __b2 + // printf_number_buffer::@2 + __b2: + // [127] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z buffer_sign + beq __b3 + jmp __b9 + // printf_number_buffer::@9 + __b9: + // [128] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuz1=vbuz2 + lda.z buffer_sign + sta.z printf_char.ch + // [129] call printf_char + // [88] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] + printf_char_from___b9: + // [88] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy + jsr printf_char + jmp __b3 + // printf_number_buffer::@3 + __b3: + // [130] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_zero_padding + beq __b4 + jmp __b18 + // printf_number_buffer::@18 + __b18: + // [131] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 + lda #0 + cmp.z padding + bne __b10 + jmp __b4 + // printf_number_buffer::@10 + __b10: + // [132] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + lda.z padding + sta.z printf_padding.length + // [133] call printf_padding + // [145] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + printf_padding_from___b10: + // [145] phi (byte) printf_padding::pad#7 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 + lda #'0' + sta.z printf_padding.pad + // [145] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy + jsr printf_padding + jmp __b4 + // printf_number_buffer::@4 + __b4: + // [134] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_upper_case + beq __b5 + jmp __b11 + // printf_number_buffer::@11 + __b11: + // [135] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + lda.z buffer_digits + sta.z strupr.str + lda.z buffer_digits+1 + sta.z strupr.str+1 + // [136] call strupr + // [152] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + strupr_from___b11: + jsr strupr + jmp __b5 + // printf_number_buffer::@5 + __b5: + // [137] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + // [138] call printf_str + // [45] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + printf_str_from___b5: + // [45] phi (byte*) printf_str::str#15 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + jsr printf_str + jmp __b15 + // printf_number_buffer::@15 + __b15: + // [139] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_justify_left + beq __breturn + jmp __b20 + // printf_number_buffer::@20 + __b20: + // [140] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z format_zero_padding + bne __breturn + jmp __b19 + // printf_number_buffer::@19 + __b19: + // [141] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 + lda #0 + cmp.z padding + bne __b12 + jmp __breturn + // printf_number_buffer::@12 + __b12: + // [142] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + lda.z padding + sta.z printf_padding.length + // [143] call printf_padding + // [145] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + printf_padding_from___b12: + // [145] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 + lda #' ' + sta.z printf_padding.pad + // [145] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy + jsr printf_padding + jmp __breturn + // printf_number_buffer::@return + __breturn: + // [144] return + rts +} + // printf_padding +// Print a padding char a number of times +// printf_padding(byte zp($f) pad, byte zp($18) length) +printf_padding: { + .label i = $1d + .label length = $18 + .label pad = $f + // [146] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + __b1_from_printf_padding: + // [146] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z i + jmp __b1 + // printf_padding::@1 + __b1: + // [147] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 + lda.z i + cmp.z length + bcc __b2 + jmp __breturn + // printf_padding::@return + __breturn: + // [148] return + rts + // printf_padding::@2 + __b2: + // [149] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 + // [150] call printf_char + // [88] phi from printf_padding::@2 to printf_char [phi:printf_padding::@2->printf_char] + printf_char_from___b2: + // [88] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy + jsr printf_char + jmp __b3 + // printf_padding::@3 + __b3: + // [151] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 + inc.z i + // [146] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] + __b1_from___b3: + // [146] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + jmp __b1 } // strupr // Converts a string to uppercase. -// strupr(byte* zp($19) str) +// strupr(byte* zp($1f) str) strupr: { - .label __0 = 4 - .label src = $19 - .label str = $19 - // [123] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] + .label __0 = $f + .label src = $1f + .label str = $1f + // [153] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] __b1_from_strupr: __b1_from___b3: - // [123] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy + // [153] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy jmp __b1 // strupr::@1 __b1: - // [124] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [154] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 @@ -9591,26 +11368,26 @@ strupr: { jmp __breturn // strupr::@return __breturn: - // [125] return + // [155] return rts // strupr::@2 __b2: - // [126] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuz1=_deref_pbuz2 + // [156] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuz1=_deref_pbuz2 ldy #0 lda (src),y sta.z toupper.ch - // [127] call toupper + // [157] call toupper jsr toupper - // [128] (byte) toupper::return#3 ← (byte) toupper::return#2 + // [158] (byte) toupper::return#3 ← (byte) toupper::return#2 jmp __b3 // strupr::@3 __b3: - // [129] (byte~) strupr::$0 ← (byte) toupper::return#3 - // [130] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuz2 + // [159] (byte~) strupr::$0 ← (byte) toupper::return#3 + // [160] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuz2 lda.z __0 ldy #0 sta (src),y - // [131] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 + // [161] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 @@ -9620,58 +11397,58 @@ strupr: { // toupper // Convert lowercase alphabet to uppercase // Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte zp(4) ch) +// toupper(byte zp($f) ch) toupper: { - .label return = 4 - .label ch = 4 - // [132] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuz1_lt_vbuc1_then_la1 + .label return = $f + .label ch = $f + // [162] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuz1_lt_vbuc1_then_la1 lda.z ch cmp #'a' bcc __breturn_from_toupper jmp __b2 // toupper::@2 __b2: - // [133] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuz1_le_vbuc1_then_la1 + // [163] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuz1_le_vbuc1_then_la1 lda #'z' cmp.z ch bcs __b1 - // [135] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [165] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] __breturn_from_toupper: __breturn_from___b1: __breturn_from___b2: - // [135] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [165] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy jmp __breturn // toupper::@1 __b1: - // [134] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuz1=vbuz1_plus_vbuc1 + // [164] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuz1=vbuz1_plus_vbuc1 lax.z return axs #-['A'-'a'] stx.z return jmp __breturn_from___b1 // toupper::@return __breturn: - // [136] return + // [166] return rts } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($19) str) +// strlen(byte* zp($1f) str) strlen: { - .label len = 2 - .label str = $19 - .label return = 2 - // [138] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + .label len = $a + .label str = $1f + .label return = $a + // [168] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] __b1_from_strlen: - // [138] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [168] 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 - // [138] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // [168] phi (byte*) strlen::str#3 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy jmp __b1 // strlen::@1 __b1: - // [139] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [169] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -9679,859 +11456,25 @@ strlen: { jmp __breturn // strlen::@return __breturn: - // [140] return + // [170] return rts // strlen::@2 __b2: - // [141] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + // [171] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: - // [142] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 + // [172] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [138] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [168] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] __b1_from___b2: - // [138] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [138] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [168] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [168] phi (byte*) strlen::str#3 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 -} - // utoa -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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($c) value, byte* zp(2) buffer) -utoa: { - .const max_digits = 5 - .label __10 = $1b - .label __11 = $18 - .label digit_value = $19 - .label buffer = 2 - .label digit = $f - .label value = $c - .label started = $1d - // [144] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] - __b1_from_utoa: - // [144] 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 - // [144] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [144] 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 - // [144] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // utoa::@1 - __b1: - // [145] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #max_digits-1 - bcc __b2 - jmp __b3 - // utoa::@3 - __b3: - // [146] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuz1=_byte_vwuz2 - lda.z value - sta.z __11 - // [147] *((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),y - // [148] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [149] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // utoa::@return - __breturn: - // [150] return - rts - // utoa::@2 - __b2: - // [151] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 - lda.z digit - asl - sta.z __10 - // [152] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuz2 - ldy.z __10 - lda RADIX_DECIMAL_VALUES,y - sta.z digit_value - lda RADIX_DECIMAL_VALUES+1,y - sta.z digit_value+1 - // [153] 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: - // [154] 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 !+ - lda.z digit_value - cmp.z value - beq __b5 - !: - bcc __b5 - // [155] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] - __b4_from___b7: - // [155] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy - // [155] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy - // [155] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy - jmp __b4 - // utoa::@4 - __b4: - // [156] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [144] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] - __b1_from___b4: - // [144] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy - // [144] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy - // [144] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy - // [144] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy - jmp __b1 - // utoa::@5 - __b5: - // [157] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - // [158] (word) utoa_append::value#0 ← (word) utoa::value#2 - // [159] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - // [160] call utoa_append - // [164] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] - utoa_append_from___b5: - jsr utoa_append - // [161] (word) utoa_append::return#0 ← (word) utoa_append::value#2 - jmp __b6 - // utoa::@6 - __b6: - // [162] (word) utoa::value#0 ← (word) utoa_append::return#0 - // [163] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [155] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] - __b4_from___b6: - // [155] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy - // [155] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [155] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy - jmp __b4 -} - // utoa_append -// Used to convert a single digit of an unsigned number value to a string representation -// Counts a single digit up from '0' as long as the value is larger than sub. -// Each time the digit is increased sub is subtracted from value. -// - buffer : pointer to the char that receives the digit -// - value : The value where the digit will be derived from -// - 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(2) buffer, word zp($c) value, word zp($19) sub) -utoa_append: { - .label buffer = 2 - .label value = $c - .label sub = $19 - .label return = $c - .label digit = $18 - // [165] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] - __b1_from_utoa_append: - // [165] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // [165] 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: - // [166] 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 !+ - lda.z sub - cmp.z value - beq __b2 - !: - bcc __b2 - jmp __b3 - // utoa_append::@3 - __b3: - // [167] *((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 - sta (buffer),y - jmp __breturn - // utoa_append::@return - __breturn: - // [168] return - rts - // utoa_append::@2 - __b2: - // [169] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [170] (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 - sta.z value - lda.z value+1 - sbc.z sub+1 - sta.z value+1 - // [165] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] - __b1_from___b2: - // [165] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [165] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_cls -// Clear the screen. Also resets current line/char cursor. -printf_cls: { - // [172] call memset - // [88] phi from printf_cls to memset [phi:printf_cls->memset] - memset_from_printf_cls: - // [88] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 - lda #' ' - sta.z memset.c - // [88] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 - lda #<$400 - sta.z memset.str - lda #>$400 - sta.z memset.str+1 - // [88] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 - lda #<$28*$19 - sta.z memset.num - lda #>$28*$19 - sta.z memset.num+1 - jsr memset - jmp __b1 - // printf_cls::@1 - __b1: - // [173] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 - lda #<$400 - sta.z printf_cursor_ptr - lda #>$400 - sta.z printf_cursor_ptr+1 - // [174] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z printf_cursor_x - // [175] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z printf_cursor_y - jmp __breturn - // printf_cls::@return - __breturn: - // [176] return - rts -} - // queen -// Generates all valid placements of queens on a NxN board recursively -// Works by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below -// and then recursively generating all legal placements on the rows above. -// queen(byte zp($1b) row) -queen: { - .const OFFSET_STACK_ROW = 0 - .label r = $1b - .label column = $1c - .label __1 = $f - .label __4 = $1b - .label row = $1b - // [177] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) -- vbuz1=_stackidxbyte_vbuc1 - tsx - lda STACK_BASE+OFFSET_STACK_ROW,x - sta.z row - // [178] (byte) queen::r ← (byte) queen::row#0 - // [179] (byte) queen::column ← (byte) 1 -- vbuz1=vbuc1 - lda #1 - sta.z column - jmp __b1 - // queen::@1 - __b1: - // [180] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z column - cmp #8+1 - bcc __b2 - jmp __breturn - // queen::@return - __breturn: - // [181] return - rts - // queen::@2 - __b2: - // [182] (byte) legal::row#0 ← (byte) queen::r - // [183] (byte) legal::column#0 ← (byte) queen::column - // [184] call legal - // [294] phi from queen::@2 to legal [phi:queen::@2->legal] - legal_from___b2: - jsr legal - // [185] (byte) legal::return#0 ← (byte) legal::return#4 - jmp __b7 - // queen::@7 - __b7: - // [186] (byte~) queen::$1 ← (byte) legal::return#0 - // [187] if((byte) 0==(byte~) queen::$1) goto queen::@3 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z __1 - beq __b3 - jmp __b5 - // queen::@5 - __b5: - // [188] *((const byte*) board + (byte) queen::r) ← (byte) queen::column -- pbuc1_derefidx_vbuz1=vbuz2 - //no conflicts so place queen - lda.z column - ldy.z r - sta board,y - // [189] if((byte) queen::r==(byte) 8) goto queen::@4 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z r - beq __b4_from___b5 - jmp __b6 - // queen::@6 - __b6: - // asm { ldacolumn pha ldar pha } - // Perform recussive placement on rows above - // Push the local vars on the stack (waiting for proper recursion support) - lda column - pha - lda r - pha - // [191] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 -- vbuz1=vbuz1_plus_1 - inc.z __4 - // [192] stackpush(byte) ← (byte~) queen::$4 -- _stackpushbyte_=vbuz1 - // Do recursion - lda.z __4 - pha - // [193] callexecute queen -- jsr - jsr queen - // sideeffect stackpullbytes((number) 1) -- _stackpullbyte_1 - pla - // asm { pla star pla stacolumn } - // Pop the local vars on the stack (waiting for proper recursion support) - pla - sta r - pla - sta column - jmp __b3 - // queen::@3 - __b3: - // [196] (byte) queen::column ← ++ (byte) queen::column -- vbuz1=_inc_vbuz1 - inc.z column - jmp __b1 - // [197] phi from queen::@5 to queen::@4 [phi:queen::@5->queen::@4] - __b4_from___b5: - jmp __b4 - // queen::@4 - __b4: - // [198] call print - // we are done! Print the board configuration - jsr print - jmp __b3 -} - // print -// Print the board with a legal placement. Also increments the solution count. -print: { - .label i = $e - .label i1 = $e - .label j = $23 - // [199] (dword) count ← ++ (dword) count -- vduz1=_inc_vduz1 - inc.z count - bne !+ - inc.z count+1 - bne !+ - inc.z count+2 - bne !+ - inc.z count+3 - !: - // [200] call printf_str - // [104] phi from print to printf_str [phi:print->printf_str] - printf_str_from_print: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 - lda #str - sta.z printf_str.str+1 - jsr printf_str - jmp __b11 - // print::@11 - __b11: - // [201] (dword) printf_ulong::uvalue#0 ← (dword) count -- vduz1=vduz2 - lda.z count - sta.z printf_ulong.uvalue - lda.z count+1 - sta.z printf_ulong.uvalue+1 - lda.z count+2 - sta.z printf_ulong.uvalue+2 - lda.z count+3 - sta.z printf_ulong.uvalue+3 - // [202] call printf_ulong - // [259] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] - printf_ulong_from___b11: - jsr printf_ulong - // [203] phi from print::@11 to print::@12 [phi:print::@11->print::@12] - __b12_from___b11: - jmp __b12 - // print::@12 - __b12: - // [204] call printf_str - // [104] phi from print::@12 to printf_str [phi:print::@12->printf_str] - printf_str_from___b12: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 - lda #str1 - sta.z printf_str.str+1 - jsr printf_str - // [205] phi from print::@12 to print::@1 [phi:print::@12->print::@1] - __b1_from___b12: - // [205] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z i - jmp __b1 - // print::@1 - __b1: - // [206] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z i - cmp #8+1 - bcc __b2 - // [207] phi from print::@1 to print::@3 [phi:print::@1->print::@3] - __b3_from___b1: - // [207] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 - lda #1 - sta.z i1 - jmp __b3 - // print::@3 - __b3: - // [208] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 - lda.z i1 - cmp #8+1 - bcc __b4_from___b3 - jmp __breturn - // print::@return - __breturn: - // [209] return - rts - // [210] phi from print::@3 to print::@4 [phi:print::@3->print::@4] - __b4_from___b3: - jmp __b4 - // print::@4 - __b4: - // [211] call printf_str - // [104] phi from print::@4 to printf_str [phi:print::@4->printf_str] - printf_str_from___b4: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 - lda #str2 - sta.z printf_str.str+1 - jsr printf_str - jmp __b14 - // print::@14 - __b14: - // [212] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 - // [213] call printf_uchar - // [226] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] - printf_uchar_from___b14: - // [226] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy - jsr printf_uchar - // [214] phi from print::@14 to print::@5 [phi:print::@14->print::@5] - __b5_from___b14: - // [214] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 - lda #1 - sta.z j - jmp __b5 - // print::@5 - __b5: - // [215] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 - lda.z j - cmp #8+1 - bcc __b6 - jmp __b7 - // print::@7 - __b7: - // [216] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 - inc.z i1 - // [207] phi from print::@7 to print::@3 [phi:print::@7->print::@3] - __b3_from___b7: - // [207] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy - jmp __b3 - // print::@6 - __b6: - // [217] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 - ldy.z i1 - lda board,y - cmp.z j - beq __b8_from___b6 - // [218] phi from print::@6 to print::@10 [phi:print::@6->print::@10] - __b10_from___b6: - jmp __b10 - // print::@10 - __b10: - // [219] call printf_str - // [104] phi from print::@10 to printf_str [phi:print::@10->printf_str] - printf_str_from___b10: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 - lda #str4 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@9 - __b9: - // [220] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 - inc.z j - // [214] phi from print::@9 to print::@5 [phi:print::@9->print::@5] - __b5_from___b9: - // [214] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy - jmp __b5 - // [221] phi from print::@6 to print::@8 [phi:print::@6->print::@8] - __b8_from___b6: - jmp __b8 - // print::@8 - __b8: - // [222] call printf_str - // [104] phi from print::@8 to printf_str [phi:print::@8->printf_str] - printf_str_from___b8: - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 - lda #str3 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@2 - __b2: - // [223] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 - // [224] call printf_uchar - // [226] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] - printf_uchar_from___b2: - // [226] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy - jsr printf_uchar - jmp __b13 - // print::@13 - __b13: - // [225] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [205] phi from print::@13 to print::@1 [phi:print::@13->print::@1] - __b1_from___b13: - // [205] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy - jmp __b1 - str: .text @"\n#" - .byte 0 - str1: .text @":\n " - .byte 0 - str2: .text @"\n" - .byte 0 - str3: .text "Q" - .byte 0 - str4: .text "-" - .byte 0 -} - // printf_uchar -// Print an unsigned char using a specific format -// printf_uchar(byte zp($e) uvalue) -printf_uchar: { - .label uvalue = $e - jmp __b1 - // printf_uchar::@1 - __b1: - // [227] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [228] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 -- vbuz1=vbuz2 - lda.z uvalue - sta.z uctoa.value - // [229] call uctoa - // Format number into buffer - // [233] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] - uctoa_from___b1: - jsr uctoa - jmp __b2 - // printf_uchar::@2 - __b2: - // [230] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [231] call printf_number_buffer - // Print using format - // [26] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [26] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_upper_case - // [26] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy - // [26] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [26] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_zero_padding - // [26] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_justify_left - // [26] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_uchar::@return - __breturn: - // [232] return - rts -} - // uctoa -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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(4) value, byte* zp($c) buffer) -uctoa: { - .label digit_value = $1d - .label buffer = $c - .label digit = $22 - .label value = 4 - .label started = 5 - // [234] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - __b1_from_uctoa: - // [234] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - // [234] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [234] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy - // [234] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // uctoa::@1 - __b1: - // [235] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #2-1 - bcc __b2 - jmp __b3 - // uctoa::@3 - __b3: - // [236] *((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),y - // [237] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [238] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // uctoa::@return - __breturn: - // [239] return - rts - // uctoa::@2 - __b2: - // [240] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z digit - lda RADIX_HEXADECIMAL_VALUES_CHAR,y - sta.z digit_value - // [241] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - jmp __b7 - // uctoa::@7 - __b7: - // [242] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuz1_ge_vbuz2_then_la1 - lda.z value - cmp.z digit_value - bcs __b5 - // [243] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] - __b4_from___b7: - // [243] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy - // [243] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy - // [243] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy - jmp __b4 - // uctoa::@4 - __b4: - // [244] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [234] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] - __b1_from___b4: - // [234] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy - // [234] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy - // [234] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy - // [234] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy - jmp __b1 - // uctoa::@5 - __b5: - // [245] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - // [246] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - // [247] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - // [248] call uctoa_append - // [252] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] - uctoa_append_from___b5: - jsr uctoa_append - // [249] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - jmp __b6 - // uctoa::@6 - __b6: - // [250] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - // [251] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [243] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] - __b4_from___b6: - // [243] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy - // [243] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [243] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy - jmp __b4 -} - // uctoa_append -// Used to convert a single digit of an unsigned number value to a string representation -// Counts a single digit up from '0' as long as the value is larger than sub. -// Each time the digit is increased sub is subtracted from value. -// - buffer : pointer to the char that receives the digit -// - value : The value where the digit will be derived from -// - 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($c) buffer, byte zp(4) value, byte zp($1d) sub) -uctoa_append: { - .label buffer = $c - .label value = 4 - .label sub = $1d - .label return = 4 - .label digit = 6 - // [253] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - __b1_from_uctoa_append: - // [253] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // [253] 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: - // [254] 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: - // [255] *((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 - sta (buffer),y - jmp __breturn - // uctoa_append::@return - __breturn: - // [256] return - rts - // uctoa_append::@2 - __b2: - // [257] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [258] (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 - // [253] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - __b1_from___b2: - // [253] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [253] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_ulong -// Print an unsigned int using a specific format -// printf_ulong(dword zp(8) uvalue) -printf_ulong: { - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = 8 - jmp __b1 - // printf_ulong::@1 - __b1: - // [260] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [261] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - // [262] call ultoa - // Format number into buffer - // [266] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] - ultoa_from___b1: - jsr ultoa - jmp __b2 - // printf_ulong::@2 - __b2: - // [263] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [264] call printf_number_buffer - // Print using format - // [26] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [26] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_ulong::format_upper_case#0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [26] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy - // [26] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [26] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_ulong::format_zero_padding#0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [26] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_ulong::format_justify_left#0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [26] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_ulong::format_min_length#0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_ulong::@return - __breturn: - // [265] return - rts } // ultoa // Converts unsigned number value to a string representing it in RADIX format. @@ -10539,70 +11482,69 @@ printf_ulong: { // - 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) -// ultoa(dword zp(8) value, byte* zp($c) buffer) +// ultoa(dword zp(6) value, byte* zp($c) buffer) ultoa: { - .const max_digits = $a - .label __10 = $22 - .label __11 = $1d - .label digit_value = $1e + .label __10 = $23 + .label __11 = $18 + .label digit_value = $19 .label buffer = $c - .label digit = 7 - .label value = 8 - .label started = $f - // [267] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] + .label digit = $10 + .label value = 6 + .label started = $24 + // [174] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] __b1_from_ultoa: - // [267] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 + // [174] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [267] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuz1=vbuc1 + // [174] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuz1=vbuc1 lda #0 sta.z started - // [267] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy - // [267] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 + // [174] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy + // [174] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // ultoa::@1 __b1: - // [268] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 + // [175] if((byte) ultoa::digit#2<(byte) $a-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z digit - cmp #max_digits-1 + cmp #$a-1 bcc __b2 jmp __b3 // ultoa::@3 __b3: - // [269] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuz1=_byte_vduz2 + // [176] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuz1=_byte_vduz2 lda.z value sta.z __11 - // [270] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [177] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z __11 lda DIGITS,y ldy #0 sta (buffer),y - // [271] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [178] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [272] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [179] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // ultoa::@return __breturn: - // [273] return + // [180] return rts // ultoa::@2 __b2: - // [274] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 + // [181] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 lda.z digit asl asl sta.z __10 - // [275] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuz2 + // [182] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuz2 ldy.z __10 lda RADIX_DECIMAL_VALUES_LONG,y sta.z digit_value @@ -10612,14 +11554,14 @@ ultoa: { sta.z digit_value+2 lda RADIX_DECIMAL_VALUES_LONG+3,y sta.z digit_value+3 - // [276] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuz1_then_la1 + // [183] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z started bne __b5 jmp __b7 // ultoa::@7 __b7: - // [277] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 + // [184] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z digit_value+3 bcc !+ @@ -10636,49 +11578,49 @@ ultoa: { cmp.z digit_value bcs __b5 !: - // [278] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] + // [185] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] __b4_from___b7: - // [278] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [278] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [278] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy + // [185] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy + // [185] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy + // [185] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy jmp __b4 // ultoa::@4 __b4: - // [279] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 + // [186] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [267] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] + // [174] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] __b1_from___b4: - // [267] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [267] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [267] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [267] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy + // [174] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy + // [174] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy + // [174] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy + // [174] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy jmp __b1 // ultoa::@5 __b5: - // [280] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - // [281] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - // [282] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - // [283] call ultoa_append - // [287] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] + // [187] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 + // [188] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 + // [189] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 + // [190] call ultoa_append + // [194] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] ultoa_append_from___b5: jsr ultoa_append - // [284] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 + // [191] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 jmp __b6 // ultoa::@6 __b6: - // [285] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - // [286] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [192] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 + // [193] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [278] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] + // [185] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] __b4_from___b6: - // [278] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [278] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuz1=vbuc1 + // [185] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy + // [185] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuz1=vbuc1 lda #1 sta.z started - // [278] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy + // [185] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy jmp __b4 } // ultoa_append @@ -10690,23 +11632,23 @@ ultoa: { // - 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. -// ultoa_append(byte* zp($c) buffer, dword zp(8) value, dword zp($1e) sub) +// ultoa_append(byte* zp($c) buffer, dword zp(6) value, dword zp($19) sub) ultoa_append: { .label buffer = $c - .label value = 8 - .label sub = $1e - .label return = 8 - .label digit = $1d - // [288] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] + .label value = 6 + .label sub = $19 + .label return = 6 + .label digit = $15 + // [195] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] __b1_from_ultoa_append: - // [288] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuz1=vbuc1 + // [195] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuz1=vbuc1 lda #0 sta.z digit - // [288] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy + // [195] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy jmp __b1 // ultoa_append::@1 __b1: - // [289] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 + // [196] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z sub+3 bcc !+ @@ -10726,7 +11668,7 @@ ultoa_append: { jmp __b3 // ultoa_append::@3 __b3: - // [290] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [197] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z digit lda DIGITS,y ldy #0 @@ -10734,13 +11676,13 @@ ultoa_append: { jmp __breturn // ultoa_append::@return __breturn: - // [291] return + // [198] return rts // ultoa_append::@2 __b2: - // [292] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuz1=_inc_vbuz1 + // [199] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [293] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 + // [200] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 lda.z value sec sbc.z sub @@ -10754,64 +11696,1082 @@ ultoa_append: { lda.z value+3 sbc.z sub+3 sta.z value+3 - // [288] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] + // [195] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] __b1_from___b2: - // [288] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [288] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + // [195] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy + // [195] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + jmp __b1 +} + // tod_str +// Convert time of day to a human-readable string "hh:mm:ss:10" +// tod_str(byte zp($15) tod_TENTHS, byte zp($16) tod_SEC, byte zp($17) tod_MIN, byte zp($18) tod_HOURS) +tod_str: { + .label __0 = $23 + .label __1 = $23 + .label __2 = $18 + .label __3 = $18 + .label __4 = $1d + .label __5 = $1d + .label __6 = $17 + .label __7 = $17 + .label __8 = $1e + .label __9 = $1e + .label __10 = $16 + .label __11 = $16 + .label __12 = $21 + .label __13 = $21 + .label __14 = $15 + .label __15 = $15 + .label tod_TENTHS = $15 + .label tod_SEC = $16 + .label tod_MIN = $17 + .label tod_HOURS = $18 + // [201] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_HOURS + lsr + lsr + lsr + lsr + sta.z __0 + // [202] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __1 + axs #-['0'] + stx.z __1 + // [203] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuz1 + lda.z __1 + sta tod_buffer + // [204] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuz1=vbuz1_band_vbuc1 + lda #$f + and.z __2 + sta.z __2 + // [205] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __3 + axs #-['0'] + stx.z __3 + // [206] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuz1 + lda.z __3 + sta tod_buffer+1 + // [207] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_MIN + lsr + lsr + lsr + lsr + sta.z __4 + // [208] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __5 + axs #-['0'] + stx.z __5 + // [209] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuz1 + lda.z __5 + sta tod_buffer+3 + // [210] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuz1=vbuz1_band_vbuc1 + lda #$f + and.z __6 + sta.z __6 + // [211] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __7 + axs #-['0'] + stx.z __7 + // [212] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuz1 + lda.z __7 + sta tod_buffer+4 + // [213] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_SEC + lsr + lsr + lsr + lsr + sta.z __8 + // [214] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __9 + axs #-['0'] + stx.z __9 + // [215] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuz1 + lda.z __9 + sta tod_buffer+6 + // [216] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuz1=vbuz1_band_vbuc1 + lda #$f + and.z __10 + sta.z __10 + // [217] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __11 + axs #-['0'] + stx.z __11 + // [218] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuz1 + lda.z __11 + sta tod_buffer+7 + // [219] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_TENTHS + lsr + lsr + lsr + lsr + sta.z __12 + // [220] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __13 + axs #-['0'] + stx.z __13 + // [221] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuz1 + lda.z __13 + sta tod_buffer+9 + // [222] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuz1=vbuz1_band_vbuc1 + lda #$f + and.z __14 + sta.z __14 + // [223] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __15 + axs #-['0'] + stx.z __15 + // [224] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuz1 + lda.z __15 + sta tod_buffer+$a + jmp __breturn + // tod_str::@return + __breturn: + // [225] return + rts +} + // tod_read +// Read time of day +tod_read: { + .label return_TENTHS = $15 + .label return_SEC = $16 + .label return_MIN = $17 + .label return_HOURS = $18 + // [226] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // Reading sequence is important. TOD latches on reading hours until 10ths is read. + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + sta.z return_HOURS + // [227] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + sta.z return_MIN + // [228] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + sta.z return_SEC + // [229] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + sta.z return_TENTHS + jmp __breturn + // tod_read::@return + __breturn: + // [230] return + rts +} + // tod_init +// Initialize time-of-day clock +// This uses the MOS6526 CIA#1 +// tod_init(byte zp($24) tod_TENTHS, byte zp($15) tod_SEC, byte zp($16) tod_MIN, byte zp($17) tod_HOURS) +tod_init: { + .label tod_TENTHS = $24 + .label tod_SEC = $15 + .label tod_MIN = $16 + .label tod_HOURS = $17 + // [231] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 + // Set 50hz (this assumes PAL!) (bit7=1) + lda #$80 + ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL + // [232] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 + // Writing TOD clock (bit7=0) + lda #$7f + and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL + // [233] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuz1 + // Reset TOD clock + // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. + lda.z tod_HOURS + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + // [234] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuz1 + lda.z tod_MIN + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + // [235] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + lda.z tod_SEC + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + // [236] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + lda.z tod_TENTHS + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + jmp __breturn + // tod_init::@return + __breturn: + // [237] return + rts +} + // printf_uint +// Print an unsigned int using a specific format +printf_uint: { + .label uvalue = 8 + .const format_min_length = 0 + .const format_justify_left = 0 + .const format_zero_padding = 0 + .const format_upper_case = 0 + jmp __b1 + // printf_uint::@1 + __b1: + // [239] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // [240] call utoa + // Format number into buffer + // [244] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + utoa_from___b1: + jsr utoa + jmp __b2 + // printf_uint::@2 + __b2: + // [241] (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 + // [242] call printf_number_buffer + // Print using format + // [108] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + printf_number_buffer_from___b2: + // [108] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #format_upper_case + sta.z printf_number_buffer.format_upper_case + // [108] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy + // [108] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [108] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #format_zero_padding + sta.z printf_number_buffer.format_zero_padding + // [108] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + lda #format_justify_left + sta.z printf_number_buffer.format_justify_left + // [108] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + lda #format_min_length + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + jmp __breturn + // printf_uint::@return + __breturn: + // [243] return + rts +} + // utoa +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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($a) value, byte* zp($c) buffer) +utoa: { + .const max_digits = 5 + .label __10 = $1e + .label __11 = $1d + .label digit_value = $1f + .label buffer = $c + .label digit = $16 + .label value = $a + .label started = $17 + // [245] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + __b1_from_utoa: + // [245] 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 + // [245] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 + lda #0 + sta.z started + // [245] 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 + // [245] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 + lda #0 + sta.z digit + jmp __b1 + // utoa::@1 + __b1: + // [246] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z digit + cmp #max_digits-1 + bcc __b2 + jmp __b3 + // utoa::@3 + __b3: + // [247] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuz1=_byte_vwuz2 + lda.z value + sta.z __11 + // [248] *((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),y + // [249] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer + bne !+ + inc.z buffer+1 + !: + // [250] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + lda #0 + ldy #0 + sta (buffer),y + jmp __breturn + // utoa::@return + __breturn: + // [251] return + rts + // utoa::@2 + __b2: + // [252] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 + lda.z digit + asl + sta.z __10 + // [253] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuz2 + ldy.z __10 + lda RADIX_DECIMAL_VALUES,y + sta.z digit_value + lda RADIX_DECIMAL_VALUES+1,y + sta.z digit_value+1 + // [254] 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: + // [255] 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 !+ + lda.z digit_value + cmp.z value + beq __b5 + !: + bcc __b5 + // [256] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] + __b4_from___b7: + // [256] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy + // [256] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy + // [256] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy + jmp __b4 + // utoa::@4 + __b4: + // [257] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [245] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + __b1_from___b4: + // [245] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy + // [245] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy + // [245] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy + // [245] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy + jmp __b1 + // utoa::@5 + __b5: + // [258] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + // [259] (word) utoa_append::value#0 ← (word) utoa::value#2 + // [260] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + // [261] call utoa_append + // [265] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] + utoa_append_from___b5: + jsr utoa_append + // [262] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + jmp __b6 + // utoa::@6 + __b6: + // [263] (word) utoa::value#0 ← (word) utoa_append::return#0 + // [264] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer + bne !+ + inc.z buffer+1 + !: + // [256] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] + __b4_from___b6: + // [256] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy + // [256] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 + lda #1 + sta.z started + // [256] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy + jmp __b4 +} + // utoa_append +// Used to convert a single digit of an unsigned number value to a string representation +// Counts a single digit up from '0' as long as the value is larger than sub. +// Each time the digit is increased sub is subtracted from value. +// - buffer : pointer to the char that receives the digit +// - value : The value where the digit will be derived from +// - 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($c) buffer, word zp($a) value, word zp($1f) sub) +utoa_append: { + .label buffer = $c + .label value = $a + .label sub = $1f + .label return = $a + .label digit = $18 + // [266] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + __b1_from_utoa_append: + // [266] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z digit + // [266] 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: + // [267] 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 !+ + lda.z sub + cmp.z value + beq __b2 + !: + bcc __b2 + jmp __b3 + // utoa_append::@3 + __b3: + // [268] *((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 + sta (buffer),y + jmp __breturn + // utoa_append::@return + __breturn: + // [269] return + rts + // utoa_append::@2 + __b2: + // [270] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [271] (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 + sta.z value + lda.z value+1 + sbc.z sub+1 + sta.z value+1 + // [266] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + __b1_from___b2: + // [266] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [266] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + jmp __b1 +} + // printf_cls +// Clear the screen. Also resets current line/char cursor. +printf_cls: { + // [273] call memset + // [72] phi from printf_cls to memset [phi:printf_cls->memset] + memset_from_printf_cls: + // [72] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 + lda #' ' + sta.z memset.c + // [72] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 + lda #<$400 + sta.z memset.str + lda #>$400 + sta.z memset.str+1 + // [72] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 + lda #<$28*$19 + sta.z memset.num + lda #>$28*$19 + sta.z memset.num+1 + jsr memset + jmp __b1 + // printf_cls::@1 + __b1: + // [274] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 + lda #<$400 + sta.z printf_cursor_ptr + lda #>$400 + sta.z printf_cursor_ptr+1 + // [275] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + lda #0 + sta.z printf_cursor_x + // [276] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 + lda #0 + sta.z printf_cursor_y + jmp __breturn + // printf_cls::@return + __breturn: + // [277] return + rts +} + // queen +// Generates all valid placements of queens on a NxN board recursively +// Works by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below +// and then recursively generating all legal placements on the rows above. +// queen(byte zp($21) row) +queen: { + .const OFFSET_STACK_ROW = 0 + .label r = $21 + .label column = $22 + .label __1 = $e + .label __4 = $21 + .label row = $21 + // [278] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) -- vbuz1=_stackidxbyte_vbuc1 + tsx + lda STACK_BASE+OFFSET_STACK_ROW,x + sta.z row + // [279] (byte) queen::r ← (byte) queen::row#0 + // [280] (byte) queen::column ← (byte) 1 -- vbuz1=vbuc1 + lda #1 + sta.z column + jmp __b1 + // queen::@1 + __b1: + // [281] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z column + cmp #8+1 + bcc __b2 + jmp __breturn + // queen::@return + __breturn: + // [282] return + rts + // queen::@2 + __b2: + // [283] (byte) legal::row#0 ← (byte) queen::r + // [284] (byte) legal::column#0 ← (byte) queen::column + // [285] call legal + // [360] phi from queen::@2 to legal [phi:queen::@2->legal] + legal_from___b2: + jsr legal + // [286] (byte) legal::return#0 ← (byte) legal::return#4 + jmp __b7 + // queen::@7 + __b7: + // [287] (byte~) queen::$1 ← (byte) legal::return#0 + // [288] if((byte) 0==(byte~) queen::$1) goto queen::@3 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z __1 + beq __b3 + jmp __b5 + // queen::@5 + __b5: + // [289] *((const byte*) board + (byte) queen::r) ← (byte) queen::column -- pbuc1_derefidx_vbuz1=vbuz2 + //no conflicts so place queen + lda.z column + ldy.z r + sta board,y + // [290] if((byte) queen::r==(byte) 8) goto queen::@4 -- vbuz1_eq_vbuc1_then_la1 + lda #8 + cmp.z r + beq __b4 + jmp __b6 + // queen::@6 + __b6: + // asm { ldacolumn pha ldar pha } + // Perform recussive placement on rows above + // Push the local vars on the stack (waiting for proper recursion support) + lda column + pha + lda r + pha + // [292] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 -- vbuz1=vbuz1_plus_1 + inc.z __4 + // [293] stackpush(byte) ← (byte~) queen::$4 -- _stackpushbyte_=vbuz1 + // Do recursion + lda.z __4 + pha + // [294] callexecute queen -- jsr + jsr queen + // sideeffect stackpullbytes((number) 1) -- _stackpullbyte_1 + pla + // asm { pla star pla stacolumn } + // Pop the local vars on the stack (waiting for proper recursion support) + pla + sta r + pla + sta column + jmp __b3 + // queen::@3 + __b3: + // [297] (byte) queen::column ← ++ (byte) queen::column -- vbuz1=_inc_vbuz1 + inc.z column + jmp __b1 + // queen::@4 + __b4: + // [298] (dword) count ← ++ (dword) count -- vduz1=_inc_vduz1 + inc.z count + bne !+ + inc.z count+1 + bne !+ + inc.z count+2 + bne !+ + inc.z count+3 + !: + // [299] call print + // [300] phi from queen::@4 to print [phi:queen::@4->print] + print_from___b4: + jsr print + jmp __b3 +} + // print +// Print the board with a legal placement. Also increments the solution count. +print: { + .label i = $1e + .label i1 = $1e + .label j = $1d + // [301] call printf_str + // [45] phi from print to printf_str [phi:print->printf_str] + printf_str_from_print: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 + lda #str + sta.z printf_str.str+1 + jsr printf_str + jmp __b11 + // print::@11 + __b11: + // [302] (dword) printf_ulong::uvalue#1 ← (dword) count + // [303] call printf_ulong + // [101] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] + printf_ulong_from___b11: + // [101] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#1 [phi:print::@11->printf_ulong#0] -- register_copy + jsr printf_ulong + // [304] phi from print::@11 to print::@12 [phi:print::@11->print::@12] + __b12_from___b11: + jmp __b12 + // print::@12 + __b12: + // [305] call printf_str + // [45] phi from print::@12 to printf_str [phi:print::@12->printf_str] + printf_str_from___b12: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 + lda #str1 + sta.z printf_str.str+1 + jsr printf_str + // [306] phi from print::@12 to print::@1 [phi:print::@12->print::@1] + __b1_from___b12: + // [306] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 + lda #1 + sta.z i + jmp __b1 + // print::@1 + __b1: + // [307] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z i + cmp #8+1 + bcc __b2 + // [308] phi from print::@1 to print::@3 [phi:print::@1->print::@3] + __b3_from___b1: + // [308] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 + lda #1 + sta.z i1 + jmp __b3 + // print::@3 + __b3: + // [309] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 + lda.z i1 + cmp #8+1 + bcc __b4_from___b3 + jmp __breturn + // print::@return + __breturn: + // [310] return + rts + // [311] phi from print::@3 to print::@4 [phi:print::@3->print::@4] + __b4_from___b3: + jmp __b4 + // print::@4 + __b4: + // [312] call printf_str + // [45] phi from print::@4 to printf_str [phi:print::@4->printf_str] + printf_str_from___b4: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + jmp __b14 + // print::@14 + __b14: + // [313] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 + // [314] call printf_uchar + // [327] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] + printf_uchar_from___b14: + // [327] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy + jsr printf_uchar + // [315] phi from print::@14 to print::@5 [phi:print::@14->print::@5] + __b5_from___b14: + // [315] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 + lda #1 + sta.z j + jmp __b5 + // print::@5 + __b5: + // [316] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 + lda.z j + cmp #8+1 + bcc __b6 + jmp __b7 + // print::@7 + __b7: + // [317] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 + inc.z i1 + // [308] phi from print::@7 to print::@3 [phi:print::@7->print::@3] + __b3_from___b7: + // [308] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy + jmp __b3 + // print::@6 + __b6: + // [318] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + ldy.z i1 + lda board,y + cmp.z j + beq __b8_from___b6 + // [319] phi from print::@6 to print::@10 [phi:print::@6->print::@10] + __b10_from___b6: + jmp __b10 + // print::@10 + __b10: + // [320] call printf_str + // [45] phi from print::@10 to printf_str [phi:print::@10->printf_str] + printf_str_from___b10: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@9 + __b9: + // [321] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 + inc.z j + // [315] phi from print::@9 to print::@5 [phi:print::@9->print::@5] + __b5_from___b9: + // [315] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy + jmp __b5 + // [322] phi from print::@6 to print::@8 [phi:print::@6->print::@8] + __b8_from___b6: + jmp __b8 + // print::@8 + __b8: + // [323] call printf_str + // [45] phi from print::@8 to printf_str [phi:print::@8->printf_str] + printf_str_from___b8: + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@2 + __b2: + // [324] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 + // [325] call printf_uchar + // [327] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] + printf_uchar_from___b2: + // [327] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy + jsr printf_uchar + jmp __b13 + // print::@13 + __b13: + // [326] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 + inc.z i + // [306] phi from print::@13 to print::@1 [phi:print::@13->print::@1] + __b1_from___b13: + // [306] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy + jmp __b1 + str: .text @"\n#" + .byte 0 + str1: .text @":\n " + .byte 0 + str2: .text @"\n" + .byte 0 + str3: .text "Q" + .byte 0 + str4: .text "-" + .byte 0 +} + // printf_uchar +// Print an unsigned char using a specific format +// printf_uchar(byte zp($1e) uvalue) +printf_uchar: { + .label uvalue = $1e + jmp __b1 + // printf_uchar::@1 + __b1: + // [328] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // [329] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 -- vbuz1=vbuz2 + lda.z uvalue + sta.z uctoa.value + // [330] call uctoa + // Format number into buffer + // [334] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] + uctoa_from___b1: + jsr uctoa + jmp __b2 + // printf_uchar::@2 + __b2: + // [331] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // [332] call printf_number_buffer + // Print using format + // [108] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] + printf_number_buffer_from___b2: + // [108] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_upper_case + // [108] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy + // [108] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [108] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + // [108] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_justify_left + // [108] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + jmp __breturn + // printf_uchar::@return + __breturn: + // [333] return + rts +} + // uctoa +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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($f) value, byte* zp($c) buffer) +uctoa: { + .label digit_value = $23 + .label buffer = $c + .label digit = $e + .label value = $f + .label started = $10 + // [335] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] + __b1_from_uctoa: + // [335] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z buffer+1 + // [335] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 + lda #0 + sta.z started + // [335] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy + // [335] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 + lda #0 + sta.z digit + jmp __b1 + // uctoa::@1 + __b1: + // [336] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z digit + cmp #2-1 + bcc __b2 + jmp __b3 + // uctoa::@3 + __b3: + // [337] *((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),y + // [338] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer + bne !+ + inc.z buffer+1 + !: + // [339] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + lda #0 + ldy #0 + sta (buffer),y + jmp __breturn + // uctoa::@return + __breturn: + // [340] return + rts + // uctoa::@2 + __b2: + // [341] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy.z digit + lda RADIX_HEXADECIMAL_VALUES_CHAR,y + sta.z digit_value + // [342] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z started + bne __b5 + jmp __b7 + // uctoa::@7 + __b7: + // [343] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuz1_ge_vbuz2_then_la1 + lda.z value + cmp.z digit_value + bcs __b5 + // [344] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] + __b4_from___b7: + // [344] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy + // [344] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy + // [344] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy + jmp __b4 + // uctoa::@4 + __b4: + // [345] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [335] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] + __b1_from___b4: + // [335] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy + // [335] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy + // [335] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy + // [335] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy + jmp __b1 + // uctoa::@5 + __b5: + // [346] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + // [347] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + // [348] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + // [349] call uctoa_append + // [353] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] + uctoa_append_from___b5: + jsr uctoa_append + // [350] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + jmp __b6 + // uctoa::@6 + __b6: + // [351] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + // [352] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer + bne !+ + inc.z buffer+1 + !: + // [344] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] + __b4_from___b6: + // [344] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy + // [344] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 + lda #1 + sta.z started + // [344] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy + jmp __b4 +} + // uctoa_append +// Used to convert a single digit of an unsigned number value to a string representation +// Counts a single digit up from '0' as long as the value is larger than sub. +// Each time the digit is increased sub is subtracted from value. +// - buffer : pointer to the char that receives the digit +// - value : The value where the digit will be derived from +// - 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($c) buffer, byte zp($f) value, byte zp($23) sub) +uctoa_append: { + .label buffer = $c + .label value = $f + .label sub = $23 + .label return = $f + .label digit = $24 + // [354] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] + __b1_from_uctoa_append: + // [354] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z digit + // [354] 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: + // [355] 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: + // [356] *((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 + sta (buffer),y + jmp __breturn + // uctoa_append::@return + __breturn: + // [357] return + rts + // uctoa_append::@2 + __b2: + // [358] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [359] (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 + // [354] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] + __b1_from___b2: + // [354] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy + // [354] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy jmp __b1 } // legal // Checks is a placement of the queen on the board is legal. // Checks the passed (row, column) against all queens placed on the board on lower rows. // If no conflict for desired position returns 1 otherwise returns 0 -// legal(byte zp($1b) row, byte zp($1c) column) +// legal(byte zp($21) row, byte zp($22) column) legal: { - .label __0 = $22 - .label __3 = $23 - .label __4 = $1d - .label row = $1b - .label column = $1c + .label __0 = $23 + .label __3 = $24 + .label __4 = $f + .label row = $21 + .label column = $22 // Placement is legal // The same column is a conflict. // The same diagonal is a conflict. - .label return = $f - .label i = $e - // [295] phi from legal to legal::@1 [phi:legal->legal::@1] + .label return = $e + .label i = $1e + // [361] phi from legal to legal::@1 [phi:legal->legal::@1] __b1_from_legal: - // [295] phi (byte) legal::i#2 = (byte) 1 [phi:legal->legal::@1#0] -- vbuz1=vbuc1 + // [361] phi (byte) legal::i#2 = (byte) 1 [phi:legal->legal::@1#0] -- vbuz1=vbuc1 lda #1 sta.z i jmp __b1 // legal::@1 __b1: - // [296] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuz1=vbuz2_minus_1 + // [362] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuz1=vbuz2_minus_1 ldx.z row dex stx.z __0 - // [297] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 -- vbuz1_le_vbuz2_then_la1 + // [363] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 -- vbuz1_le_vbuz2_then_la1 lda.z __0 cmp.z i bcs __b2 - // [298] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] + // [364] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] __breturn_from___b1: - // [298] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuz1=vbuc1 + // [364] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuz1=vbuc1 lda #1 sta.z return jmp __breturn - // [298] phi from legal::@2 legal::@6 to legal::@return [phi:legal::@2/legal::@6->legal::@return] + // [364] phi from legal::@2 legal::@6 to legal::@return [phi:legal::@2/legal::@6->legal::@return] __breturn_from___b2: __breturn_from___b6: - // [298] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@6->legal::@return#0] -- vbuz1=vbuc1 + // [364] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@6->legal::@return#0] -- vbuz1=vbuc1 lda #0 sta.z return jmp __breturn // legal::@return __breturn: - // [299] return + // [365] return rts // legal::@2 __b2: - // [300] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + // [366] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 ldy.z i lda board,y cmp.z column @@ -10819,89 +12779,89 @@ legal: { jmp __b4 // legal::@4 __b4: - // [301] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [367] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z i lda board,y sta.z diff.a - // [302] (byte) diff::b#0 ← (byte) legal::column#0 -- vbuz1=vbuz2 + // [368] (byte) diff::b#0 ← (byte) legal::column#0 -- vbuz1=vbuz2 lda.z column sta.z diff.b - // [303] call diff - // [313] phi from legal::@4 to diff [phi:legal::@4->diff] + // [369] call diff + // [379] phi from legal::@4 to diff [phi:legal::@4->diff] diff_from___b4: - // [313] phi (byte) diff::b#2 = (byte) diff::b#0 [phi:legal::@4->diff#0] -- register_copy - // [313] phi (byte) diff::a#2 = (byte) diff::a#0 [phi:legal::@4->diff#1] -- register_copy + // [379] phi (byte) diff::b#2 = (byte) diff::b#0 [phi:legal::@4->diff#0] -- register_copy + // [379] phi (byte) diff::a#2 = (byte) diff::a#0 [phi:legal::@4->diff#1] -- register_copy jsr diff - // [304] (byte) diff::return#0 ← (byte) diff::return#4 -- vbuz1=vbuz2 + // [370] (byte) diff::return#0 ← (byte) diff::return#4 -- vbuz1=vbuz2 lda.z diff.return_1 sta.z diff.return jmp __b5 // legal::@5 __b5: - // [305] (byte~) legal::$3 ← (byte) diff::return#0 - // [306] (byte) diff::a#1 ← (byte) legal::i#2 -- vbuz1=vbuz2 + // [371] (byte~) legal::$3 ← (byte) diff::return#0 + // [372] (byte) diff::a#1 ← (byte) legal::i#2 -- vbuz1=vbuz2 lda.z i sta.z diff.a - // [307] (byte) diff::b#1 ← (byte) legal::row#0 -- vbuz1=vbuz2 + // [373] (byte) diff::b#1 ← (byte) legal::row#0 -- vbuz1=vbuz2 lda.z row sta.z diff.b - // [308] call diff - // [313] phi from legal::@5 to diff [phi:legal::@5->diff] + // [374] call diff + // [379] phi from legal::@5 to diff [phi:legal::@5->diff] diff_from___b5: - // [313] phi (byte) diff::b#2 = (byte) diff::b#1 [phi:legal::@5->diff#0] -- register_copy - // [313] phi (byte) diff::a#2 = (byte) diff::a#1 [phi:legal::@5->diff#1] -- register_copy + // [379] phi (byte) diff::b#2 = (byte) diff::b#1 [phi:legal::@5->diff#0] -- register_copy + // [379] phi (byte) diff::a#2 = (byte) diff::a#1 [phi:legal::@5->diff#1] -- register_copy jsr diff - // [309] (byte) diff::return#1 ← (byte) diff::return#4 + // [375] (byte) diff::return#1 ← (byte) diff::return#4 jmp __b6 // legal::@6 __b6: - // [310] (byte~) legal::$4 ← (byte) diff::return#1 - // [311] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 -- vbuz1_neq_vbuz2_then_la1 + // [376] (byte~) legal::$4 ← (byte) diff::return#1 + // [377] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 -- vbuz1_neq_vbuz2_then_la1 lda.z __3 cmp.z __4 bne __b3 jmp __breturn_from___b6 // legal::@3 __b3: - // [312] (byte) legal::i#1 ← ++ (byte) legal::i#2 -- vbuz1=_inc_vbuz1 + // [378] (byte) legal::i#1 ← ++ (byte) legal::i#2 -- vbuz1=_inc_vbuz1 inc.z i - // [295] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] + // [361] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] __b1_from___b3: - // [295] phi (byte) legal::i#2 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy + // [361] phi (byte) legal::i#2 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy jmp __b1 } // diff // Find the absolute difference between two unsigned chars -// diff(byte zp($1d) a, byte zp($18) b) +// diff(byte zp($f) a, byte zp($10) b) diff: { - .label a = $1d - .label b = $18 - .label return = $23 - .label return_1 = $1d - // [314] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 -- vbuz1_lt_vbuz2_then_la1 + .label a = $f + .label b = $10 + .label return = $24 + .label return_1 = $f + // [380] if((byte) diff::a#2<(byte) diff::b#2) goto diff::@1 -- vbuz1_lt_vbuz2_then_la1 lda.z a cmp.z b bcc __b1 jmp __b2 // diff::@2 __b2: - // [315] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 -- vbuz1=vbuz1_minus_vbuz2 + // [381] (byte) diff::return#3 ← (byte) diff::a#2 - (byte) diff::b#2 -- vbuz1=vbuz1_minus_vbuz2 lda.z return_1 sec sbc.z b sta.z return_1 - // [316] phi from diff::@1 diff::@2 to diff::@return [phi:diff::@1/diff::@2->diff::@return] + // [382] phi from diff::@1 diff::@2 to diff::@return [phi:diff::@1/diff::@2->diff::@return] __breturn_from___b1: __breturn_from___b2: - // [316] phi (byte) diff::return#4 = (byte) diff::return#2 [phi:diff::@1/diff::@2->diff::@return#0] -- register_copy + // [382] phi (byte) diff::return#4 = (byte) diff::return#2 [phi:diff::@1/diff::@2->diff::@return#0] -- register_copy jmp __breturn // diff::@return __breturn: - // [317] return + // [383] return rts // diff::@1 __b1: - // [318] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 -- vbuz1=vbuz2_minus_vbuz1 + // [384] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 -- vbuz1=vbuz2_minus_vbuz1 lda.z b sec sbc.z return_1 @@ -10917,10 +12877,15 @@ diff: { RADIX_DECIMAL_VALUES: .word $2710, $3e8, $64, $a // Values of decimal digits RADIX_DECIMAL_VALUES_LONG: .dword $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a + // The buffer used by tod_str() + tod_buffer: .text "00:00:00:00" + .byte 0 // The board. board[i] holds the column position of the queen on row i. board: .fill $14, 0 // Buffer used for stringified number being printed printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 + // Time of Day 00:00:00:00 + TOD_ZERO: .byte 0, 0, 0, 0 ASSEMBLER OPTIMIZATIONS Removing instruction jmp __b1 @@ -10931,6 +12896,32 @@ Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __b4 +Removing instruction jmp __b5 +Removing instruction jmp __b6 +Removing instruction jmp __b7 +Removing instruction jmp __b8 +Removing instruction jmp __b9 +Removing instruction jmp __b10 +Removing instruction jmp __b11 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __b2 +Removing instruction jmp __breturn +Removing instruction jmp __b5 +Removing instruction jmp __b4 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __b2 +Removing instruction jmp __b3 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __b2 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b2 @@ -10959,26 +12950,24 @@ Removing instruction jmp __breturn Removing instruction jmp __b3 Removing instruction jmp __b1 Removing instruction jmp __breturn -Removing instruction jmp __b1 +Removing instruction jmp __b3 Removing instruction jmp __b2 +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Removing instruction jmp __b1 Removing instruction jmp __b3 Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b5 +Removing instruction jmp __b7 Removing instruction jmp __b4 -Removing instruction jmp __breturn +Removing instruction jmp __b6 Removing instruction jmp __b1 -Removing instruction jmp __breturn Removing instruction jmp __b3 -Removing instruction jmp __b2 +Removing instruction jmp __breturn +Removing instruction jmp __breturn +Removing instruction jmp __breturn +Removing instruction jmp __breturn Removing instruction jmp __b1 +Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b3 @@ -10997,7 +12986,6 @@ Removing instruction jmp __b7 Removing instruction jmp __b5 Removing instruction jmp __b6 Removing instruction jmp __b3 -Removing instruction jmp __b4 Removing instruction jmp __b11 Removing instruction jmp __b12 Removing instruction jmp __b1 @@ -11024,18 +13012,6 @@ Removing instruction jmp __b1 Removing instruction jmp __b3 Removing instruction jmp __breturn Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b7 -Removing instruction jmp __b4 -Removing instruction jmp __b6 -Removing instruction jmp __b1 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b4 Removing instruction jmp __b5 @@ -11045,9 +13021,23 @@ Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #0 Removing instruction lda #>0 -Removing instruction lda.z padding Removing instruction ldy #0 +Removing instruction lda #0 +Removing instruction lda #0 +Removing instruction lda.z padding Removing instruction lda #>0 +Removing instruction lda #0 +Replacing instruction ldy.z __11 with TAY +Replacing instruction ldy #0 with TAY +Replacing instruction ldy.z __10 with TAY +Replacing instruction lda.z __1 with TXA +Replacing instruction lda.z __3 with TXA +Replacing instruction lda.z __5 with TXA +Replacing instruction lda.z __7 with TXA +Replacing instruction lda.z __9 with TXA +Replacing instruction lda.z __11 with TXA +Replacing instruction lda.z __13 with TXA +Replacing instruction lda.z __15 with TXA Replacing instruction ldy.z __11 with TAY Replacing instruction ldy #0 with TAY Replacing instruction ldy.z __10 with TAY @@ -11056,23 +13046,18 @@ Removing instruction lda #0 Removing instruction lda #0 Removing instruction lda #0 Replacing instruction ldy #0 with TAY -Removing instruction lda #0 -Replacing instruction ldy.z __11 with TAY -Replacing instruction ldy #0 with TAY -Replacing instruction ldy.z __10 with TAY Replacing instruction lda.z __0 with TXA Succesful ASM optimization Pass5UnnecesaryLoadElimination -Replacing label __b1_from_printf_number_buffer with __b1_from___b13 -Replacing label __b13_from___b14 with __b13 -Replacing label __b21_from___b13 with __b1 -Replacing label __b2_from___b3 with __b2 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 __b1_from_printf_number_buffer with __b1_from___b13 +Replacing label __b13_from___b14 with __b13 +Replacing label __b21_from___b13 with __b1 Replacing label __b1_from___b3 with __b1 Replacing label __breturn_from_toupper with __breturn_from___b2 Replacing label __breturn_from___b1 with __breturn_from___b2 -Replacing label __b4_from___b5 with __b4 Replacing label __b4_from___b3 with __b4 Replacing label __b8_from___b6 with __b8 Replacing label __breturn_from___b2 with __breturn_from___b6 @@ -11087,6 +13072,29 @@ Removing instruction __b2_from___b1: Removing instruction printf_str_from___b2: Removing instruction __b3_from___b2: Removing instruction printf_uint_from___b3: +Removing instruction __b7_from___b6: +Removing instruction printf_str_from___b7: +Removing instruction printf_ulong_from___b8: +Removing instruction __b9_from___b8: +Removing instruction printf_str_from___b9: +Removing instruction __b10_from___b9: +Removing instruction printf_string_from___b10: +Removing instruction __b11_from___b10: +Removing instruction printf_str_from___b11: +Removing instruction __b1_from_printf_str: +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 __b1_from_printf_scroll: +Removing instruction memcpy_from___b1: +Removing instruction __b2_from___b1: +Removing instruction memset_from___b2: +Removing instruction __b2_from___b1: +Removing instruction __b2_from___b3: +Removing instruction __b1_from_printf_string: +Removing instruction printf_str_from___b1: Removing instruction __b13_from___b14: Removing instruction __b13_from___b7: Removing instruction __b1_from_printf_number_buffer: @@ -11095,26 +13103,16 @@ Removing instruction __b21: Removing instruction __b1_from___b21: Removing instruction printf_str_from___b5: Removing instruction printf_char_from___b2: -Removing instruction __b1_from_printf_scroll: -Removing instruction memcpy_from___b1: -Removing instruction __b2_from___b1: -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___b4: -Removing instruction __b1_from___b5: -Removing instruction __b1: -Removing instruction printf_char_from___b5: -Removing instruction __b4_from___b3: Removing instruction __b1_from_strupr: Removing instruction __b1_from___b3: Removing instruction __breturn_from_toupper: Removing instruction __breturn_from___b1: Removing instruction __b4_from___b7: +Removing instruction ultoa_append_from___b5: +Removing instruction __b4_from___b7: Removing instruction utoa_append_from___b5: Removing instruction legal_from___b2: -Removing instruction __b4_from___b5: +Removing instruction printf_ulong_from___b11: Removing instruction __b12_from___b11: Removing instruction printf_str_from___b12: Removing instruction __b4_from___b3: @@ -11127,8 +13125,6 @@ Removing instruction printf_str_from___b8: Removing instruction printf_uchar_from___b2: Removing instruction __b4_from___b7: Removing instruction uctoa_append_from___b5: -Removing instruction __b4_from___b7: -Removing instruction ultoa_append_from___b5: Removing instruction __breturn_from___b2: Removing instruction __breturn_from___b1: Removing instruction __breturn_from___b2: @@ -11141,9 +13137,29 @@ Removing instruction __b1: Removing instruction __b2: Removing instruction __b3: Removing instruction __b4: +Removing instruction __b5: +Removing instruction __b6: +Removing instruction __b7: +Removing instruction __b8: +Removing instruction __b9: +Removing instruction __b10: +Removing instruction __b11: +Removing instruction __breturn: +Removing instruction __breturn: +Removing instruction __b5: Removing instruction __breturn: Removing instruction __b1: -Removing instruction utoa_from___b1: +Removing instruction __b2: +Removing instruction __b3: +Removing instruction __b1: +Removing instruction __b1_from_memcpy: +Removing instruction __breturn: +Removing instruction __b1_from___b2: +Removing instruction __b1: +Removing instruction __b1: +Removing instruction __breturn: +Removing instruction __b1: +Removing instruction ultoa_from___b1: Removing instruction __b2: Removing instruction printf_number_buffer_from___b2: Removing instruction __breturn: @@ -11168,23 +13184,31 @@ Removing instruction __b1_from_printf_padding: Removing instruction __breturn: Removing instruction __b3: Removing instruction __b1_from___b3: -Removing instruction __b1: -Removing instruction __b1: -Removing instruction __b2: -Removing instruction __b3: -Removing instruction __b1: -Removing instruction __b1_from_memcpy: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __breturn: -Removing instruction __b5: -Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b3: Removing instruction __b2: Removing instruction __b1_from_strlen: Removing instruction __breturn: Removing instruction __b1_from___b2: +Removing instruction __b1_from_ultoa: +Removing instruction __b3: +Removing instruction __breturn: +Removing instruction __b7: +Removing instruction __b1_from___b4: +Removing instruction __b6: +Removing instruction __b4_from___b6: +Removing instruction __b1_from_ultoa_append: +Removing instruction __b3: +Removing instruction __breturn: +Removing instruction __b1_from___b2: +Removing instruction __breturn: +Removing instruction __breturn: +Removing instruction __breturn: +Removing instruction __b1: +Removing instruction utoa_from___b1: +Removing instruction __b2: +Removing instruction printf_number_buffer_from___b2: +Removing instruction __breturn: Removing instruction __b1_from_utoa: Removing instruction __b3: Removing instruction __breturn: @@ -11203,9 +13227,9 @@ Removing instruction __breturn: Removing instruction __b7: Removing instruction __b5: Removing instruction __b6: +Removing instruction print_from___b4: Removing instruction printf_str_from_print: Removing instruction __b11: -Removing instruction printf_ulong_from___b11: Removing instruction __b12: Removing instruction __b1_from___b12: Removing instruction __b3_from___b1: @@ -11234,22 +13258,6 @@ Removing instruction __b1_from_uctoa_append: Removing instruction __b3: Removing instruction __breturn: Removing instruction __b1_from___b2: -Removing instruction __b1: -Removing instruction ultoa_from___b1: -Removing instruction __b2: -Removing instruction printf_number_buffer_from___b2: -Removing instruction __breturn: -Removing instruction __b1_from_ultoa: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b7: -Removing instruction __b1_from___b4: -Removing instruction __b6: -Removing instruction __b4_from___b6: -Removing instruction __b1_from_ultoa_append: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b1_from___b2: Removing instruction __b1_from_legal: Removing instruction __breturn_from___b1: Removing instruction __b4: @@ -11295,8 +13303,32 @@ FINAL SYMBOL TABLE (label) @3 (label) @begin (label) @end +(const nomodify struct MOS6526_CIA*) CIA1 = (struct MOS6526_CIA*) 56320 (const byte*) DIGITS[] = (byte*) "0123456789abcdef"z +(byte) MOS6526_CIA::INTERRUPT +(byte) MOS6526_CIA::PORT_A +(byte) MOS6526_CIA::PORT_A_DDR +(byte) MOS6526_CIA::PORT_B +(byte) MOS6526_CIA::PORT_B_DDR +(byte) MOS6526_CIA::SERIAL_DATA +(word) MOS6526_CIA::TIMER_A +(byte) MOS6526_CIA::TIMER_A_CONTROL +(word) MOS6526_CIA::TIMER_B +(byte) MOS6526_CIA::TIMER_B_CONTROL +(byte) MOS6526_CIA::TOD_10THS +(byte) MOS6526_CIA::TOD_HOURS +(byte) MOS6526_CIA::TOD_MIN +(byte) MOS6526_CIA::TOD_SEC +(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = (byte) $e +(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = (byte) $f +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = (byte) 8 +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = (byte) $b +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = (byte) $a +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = (byte) 9 (const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = (byte) 1 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS = (byte) 3 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN = (byte) 2 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC = (byte) 1 (const byte) RADIX::BINARY = (number) 2 (const byte) RADIX::DECIMAL = (number) $a (const byte) RADIX::HEXADECIMAL = (number) $10 @@ -11306,30 +13338,35 @@ FINAL SYMBOL TABLE (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR[] = { (byte) $10 } (const byte) SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = (byte) $c (const word) STACK_BASE = (word) $103 +(byte) TIME_OF_DAY::HOURS +(byte) TIME_OF_DAY::MIN +(byte) TIME_OF_DAY::SEC +(byte) TIME_OF_DAY::TENTHS +(struct TIME_OF_DAY) TOD_ZERO loadstore mem[4] = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } (const byte*) board[(number) $14] = { fill( $14, 0) } -(dword) count loadstore zp[4]:20 0.5833333333333333 +(dword) count loadstore zp[4]:2 2.5316455699493675E9 (byte()) diff((byte) diff::a , (byte) diff::b) (label) diff::@1 (label) diff::@2 (label) diff::@return (byte) diff::a -(byte) diff::a#0 a zp[1]:29 1.000000000001E12 -(byte) diff::a#1 a zp[1]:29 1.000000000001E12 -(byte) diff::a#2 a zp[1]:29 1.60000000000025E13 +(byte) diff::a#0 a zp[1]:15 1.000000000001E12 +(byte) diff::a#1 a zp[1]:15 1.000000000001E12 +(byte) diff::a#2 a zp[1]:15 1.60000000000025E13 (byte) diff::b -(byte) diff::b#0 b zp[1]:24 2.000000000002E12 -(byte) diff::b#1 b zp[1]:24 2.000000000002E12 -(byte) diff::b#2 b zp[1]:24 1.60000000000025E13 +(byte) diff::b#0 b zp[1]:16 2.000000000002E12 +(byte) diff::b#1 b zp[1]:16 2.000000000002E12 +(byte) diff::b#2 b zp[1]:16 1.60000000000025E13 (byte) diff::return -(byte) diff::return#0 return zp[1]:35 2.000000000002E12 -(byte) diff::return#1 return_1 zp[1]:29 2.000000000002E12 -(byte) diff::return#2 return_1 zp[1]:29 2.0000000000002E13 -(byte) diff::return#3 return_1 zp[1]:29 2.0000000000002E13 -(byte) diff::return#4 return_1 zp[1]:29 5.500000000001E12 +(byte) diff::return#0 return zp[1]:36 2.000000000002E12 +(byte) diff::return#1 return_1 zp[1]:15 2.000000000002E12 +(byte) diff::return#2 return_1 zp[1]:15 2.0000000000002E13 +(byte) diff::return#3 return_1 zp[1]:15 2.0000000000002E13 +(byte) diff::return#4 return_1 zp[1]:15 5.500000000001E12 (byte()) legal((byte) legal::row , (byte) legal::column) -(byte~) legal::$0 zp[1]:34 2.000000000002E12 -(byte~) legal::$3 zp[1]:35 3.333333333336667E11 -(byte~) legal::$4 zp[1]:29 2.000000000002E12 +(byte~) legal::$0 zp[1]:35 2.000000000002E12 +(byte~) legal::$3 zp[1]:36 3.333333333336667E11 +(byte~) legal::$4 zp[1]:15 2.000000000002E12 (label) legal::@1 (label) legal::@2 (label) legal::@3 @@ -11338,24 +13375,36 @@ FINAL SYMBOL TABLE (label) legal::@6 (label) legal::@return (byte) legal::column -(byte) legal::column#0 column zp[1]:28 1.1666666666683334E11 +(byte) legal::column#0 column zp[1]:34 1.1666666666683334E11 (byte) legal::i -(byte) legal::i#1 i zp[1]:14 2.000000000002E12 -(byte) legal::i#2 i zp[1]:14 4.0000000000039996E11 +(byte) legal::i#1 i zp[1]:30 2.000000000002E12 +(byte) legal::i#2 i zp[1]:30 4.0000000000039996E11 (byte) legal::return -(byte) legal::return#0 return zp[1]:15 2.00000000002E11 -(byte) legal::return#4 return zp[1]:15 3.3333333333666668E10 +(byte) legal::return#0 return zp[1]:14 2.00000000002E11 +(byte) legal::return#4 return zp[1]:14 3.3333333333666668E10 (byte) legal::row -(byte) legal::row#0 row zp[1]:27 1.1052631578963158E11 +(byte) legal::row#0 row zp[1]:33 1.1052631578963158E11 (void()) main() (label) main::@1 +(label) main::@10 +(label) main::@11 (label) main::@2 (label) main::@3 (label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 (label) main::@return (const byte*) main::str[(byte) $29] = (byte*) " - n queens problem using backtracking -" (const byte*) main::str1[(byte) $13] = (byte*) " -Number of queens:" +number of queens:" +(const byte*) main::str2[(byte) $d] = (byte*) " +solutions: " +(const byte*) main::str3[(byte) 8] = (byte*) " time: " +(const byte*) main::str4[(byte) 3] = (byte*) ". +" (void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) (label) memcpy::@1 (label) memcpy::@2 @@ -11363,16 +13412,16 @@ Number of queens:" (void*) memcpy::destination (const void*) memcpy::destination#0 destination = (void*) 1024 (byte*) memcpy::dst -(byte*) memcpy::dst#1 dst zp[2]:2 1.0E43 -(byte*) memcpy::dst#2 dst zp[2]:2 1.0E43 +(byte*) memcpy::dst#1 dst zp[2]:10 1.0E43 +(byte*) memcpy::dst#2 dst zp[2]:10 1.0E43 (word) memcpy::num (const word) memcpy::num#0 num = (word)(number) $28*(number) $19-(number) $28 (void*) memcpy::return (void*) memcpy::source (const void*) memcpy::source#0 source = (void*)(number) $400+(number) $28 (byte*) memcpy::src -(byte*) memcpy::src#1 src zp[2]:25 2.0E43 -(byte*) memcpy::src#2 src zp[2]:25 1.0E43 +(byte*) memcpy::src#1 src zp[2]:31 2.0E43 +(byte*) memcpy::src#2 src zp[2]:31 1.0E43 (byte*) memcpy::src_end (const byte*) memcpy::src_end#0 src_end = (byte*)(const void*) memcpy::source#0+(const word) memcpy::num#0 (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) @@ -11381,18 +13430,18 @@ Number of queens:" (label) memset::@3 (label) memset::@return (byte) memset::c -(byte) memset::c#4 c zp[1]:7 1.25E42 +(byte) memset::c#4 c zp[1]:14 1.25E42 (byte*) memset::dst -(byte*) memset::dst#1 dst zp[2]:2 2.0E43 -(byte*) memset::dst#2 dst zp[2]:2 1.3333333333333668E43 -(byte*) memset::dst#4 dst zp[2]:2 2.0E30 +(byte*) memset::dst#1 dst zp[2]:10 2.0E43 +(byte*) memset::dst#2 dst zp[2]:10 1.3333333333333668E43 +(byte*) memset::dst#4 dst zp[2]:10 2.0E30 (byte*) memset::end -(byte*) memset::end#0 end zp[2]:25 1.6666666666668335E42 +(byte*) memset::end#0 end zp[2]:31 1.6666666666668335E42 (word) memset::num -(word) memset::num#2 num zp[2]:25 1.0E30 +(word) memset::num#2 num zp[2]:31 1.0E30 (void*) memset::return (void*) memset::str -(void*) memset::str#3 str zp[2]:2 +(void*) memset::str#3 str zp[2]:10 (void()) print() (label) print::@1 (label) print::@10 @@ -11410,14 +13459,14 @@ Number of queens:" (label) print::@9 (label) print::@return (byte) print::i -(byte) print::i#1 i zp[1]:14 2.000000000002E12 -(byte) print::i#2 i zp[1]:14 1.000000000001E12 +(byte) print::i#1 i zp[1]:30 2.000000000002E12 +(byte) print::i#2 i zp[1]:30 1.000000000001E12 (byte) print::i1 -(byte) print::i1#1 i1 zp[1]:14 2.000000000002E12 -(byte) print::i1#2 i1 zp[1]:14 1.0000000000003572E12 +(byte) print::i1#1 i1 zp[1]:30 2.000000000002E12 +(byte) print::i1#2 i1 zp[1]:30 1.0000000000003572E12 (byte) print::j -(byte) print::j#1 j zp[1]:35 2.0000000000002E13 -(byte) print::j#2 j zp[1]:35 5.714285714286286E12 +(byte) print::j#1 j zp[1]:29 2.0000000000002E13 +(byte) print::j#2 j zp[1]:29 5.714285714286286E12 (const byte*) print::str[(byte) 3] = (byte*) " #" (const byte*) print::str1[(byte) 4] = (byte*) ": @@ -11433,16 +13482,16 @@ Number of queens:" (label) printf_char::@1 (label) printf_char::@return (byte) printf_char::ch -(byte) printf_char::ch#0 ch zp[1]:5 2.0E27 -(byte) printf_char::ch#1 ch zp[1]:5 2.0E26 -(byte) printf_char::ch#2 ch zp[1]:5 2.00000000000002E14 -(byte) printf_char::ch#3 ch zp[1]:5 1.11000000000001E28 +(byte) printf_char::ch#0 ch zp[1]:15 2.0E27 +(byte) printf_char::ch#1 ch zp[1]:15 2.0E26 +(byte) printf_char::ch#2 ch zp[1]:15 2.00000000000002E14 +(byte) printf_char::ch#3 ch zp[1]:15 1.11000000000001E28 (void()) printf_cls() (label) printf_cls::@1 (label) printf_cls::@return -(byte*) printf_cursor_ptr loadstore zp[2]:18 1.4683544303797465E27 -(byte) printf_cursor_x loadstore zp[1]:16 2.837837837837838E26 -(byte) printf_cursor_y loadstore zp[1]:17 2.0251572327044023E27 +(byte*) printf_cursor_ptr loadstore zp[2]:19 1.2340425531914892E27 +(byte) printf_cursor_x loadstore zp[1]:17 2.359550561797753E26 +(byte) printf_cursor_y loadstore zp[1]:18 1.7037037037037037E27 (byte) printf_format_number::justify_left (byte) printf_format_number::min_length (byte) printf_format_number::radix @@ -11452,11 +13501,11 @@ Number of queens:" (byte) printf_format_string::justify_left (byte) printf_format_string::min_length (void()) printf_ln() -(byte*~) printf_ln::$0 zp[2]:18 2.0E27 -(byte*~) printf_ln::$1 zp[2]:18 2.0E27 +(byte*~) printf_ln::$0 zp[2]:19 2.0E27 +(byte*~) printf_ln::$1 zp[2]:19 2.0E27 (label) printf_ln::@return (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_upper_case , (byte) printf_number_buffer::format_radix) -(word~) printf_number_buffer::$19 zp[2]:2 1.00000000000001E14 +(word~) printf_number_buffer::$19 zp[2]:10 1.00000000000001E14 (label) printf_number_buffer::@1 (label) printf_number_buffer::@10 (label) printf_number_buffer::@11 @@ -11483,45 +13532,45 @@ Number of queens:" (byte*) printf_number_buffer::buffer_digits (byte*) printf_number_buffer::buffer_digits#10 buffer_digits zp[2]:12 1.0344827586207E13 (byte) printf_number_buffer::buffer_sign -(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:35 202.0 -(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:35 202.0 -(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:35 1.55000000000103E13 -(byte) printf_number_buffer::buffer_sign#2 buffer_sign zp[1]:35 2.0000000000002E13 +(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:22 202.0 +(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:22 202.0 +(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:22 1.55000000000103E13 +(byte) printf_number_buffer::buffer_sign#2 buffer_sign zp[1]:22 2.0000000000002E13 (struct printf_format_number) printf_number_buffer::format (byte) printf_number_buffer::format_justify_left -(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:29 6.451612903225871E12 +(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:36 6.451612903225871E12 (byte) printf_number_buffer::format_min_length -(byte) printf_number_buffer::format_min_length#3 format_min_length zp[1]:15 1.00000000000001E13 +(byte) printf_number_buffer::format_min_length#3 format_min_length zp[1]:16 1.00000000000001E13 (byte) printf_number_buffer::format_radix (byte) printf_number_buffer::format_sign_always (byte) printf_number_buffer::format_upper_case -(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:34 3.846153846153885E12 +(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:23 3.846153846153885E12 (byte) printf_number_buffer::format_zero_padding -(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:24 9.375000000000094E12 +(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:21 9.375000000000094E12 (signed byte) printf_number_buffer::len -(signed byte) printf_number_buffer::len#0 len zp[1]:4 1.500000000000015E14 -(signed byte) printf_number_buffer::len#1 len zp[1]:4 2.00000000000002E14 -(signed byte) printf_number_buffer::len#2 len zp[1]:4 3.00000000000003E14 +(signed byte) printf_number_buffer::len#0 len zp[1]:14 1.500000000000015E14 +(signed byte) printf_number_buffer::len#1 len zp[1]:14 2.00000000000002E14 +(signed byte) printf_number_buffer::len#2 len zp[1]:14 3.00000000000003E14 (signed byte) printf_number_buffer::padding -(signed byte) printf_number_buffer::padding#1 padding zp[1]:15 1.00000000000001E14 -(signed byte) printf_number_buffer::padding#10 padding zp[1]:15 1.904761904761924E13 +(signed byte) printf_number_buffer::padding#1 padding zp[1]:16 1.00000000000001E14 +(signed byte) printf_number_buffer::padding#10 padding zp[1]:16 1.904761904761924E13 (void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) (label) printf_padding::@1 (label) printf_padding::@2 (label) printf_padding::@3 (label) printf_padding::@return (byte) printf_padding::i -(byte) printf_padding::i#1 i zp[1]:6 2.0E27 -(byte) printf_padding::i#2 i zp[1]:6 7.500000000000001E26 +(byte) printf_padding::i#1 i zp[1]:29 2.0E27 +(byte) printf_padding::i#2 i zp[1]:29 7.500000000000001E26 (byte) printf_padding::length -(byte) printf_padding::length#0 length zp[1]:4 2.00000000000002E14 -(byte) printf_padding::length#1 length zp[1]:4 2.00000000000002E14 -(byte) printf_padding::length#2 length zp[1]:4 2.00000000000002E14 -(byte) printf_padding::length#4 length zp[1]:4 1.6666666666671665E26 +(byte) printf_padding::length#0 length zp[1]:24 2.00000000000002E14 +(byte) printf_padding::length#1 length zp[1]:24 2.00000000000002E14 +(byte) printf_padding::length#2 length zp[1]:24 2.00000000000002E14 +(byte) printf_padding::length#6 length zp[1]:24 1.6666666666671665E26 (byte) printf_padding::pad -(byte) printf_padding::pad#5 pad zp[1]:5 1.6666666666666666E26 +(byte) printf_padding::pad#7 pad zp[1]:15 1.6666666666666666E26 (void()) printf_scroll() -(byte*~) printf_scroll::$4 zp[2]:18 2.0E29 +(byte*~) printf_scroll::$4 zp[2]:19 2.0E29 (label) printf_scroll::@1 (label) printf_scroll::@2 (label) printf_scroll::@3 @@ -11534,12 +13583,21 @@ Number of queens:" (label) printf_str::@5 (label) printf_str::@return (byte) printf_str::ch -(byte) printf_str::ch#0 ch zp[1]:5 1.0E26 +(byte) printf_str::ch#0 ch zp[1]:15 1.0E26 (byte*) printf_str::str (byte*) printf_str::str#0 str zp[2]:12 4.285714285714285E25 (byte*) printf_str::str#1 str zp[2]:12 2.00000000000002E14 -(byte*) printf_str::str#10 str zp[2]:12 2.000000000005E26 -(byte*) printf_str::str#11 str zp[2]:12 1.100000000000002E15 +(byte*) printf_str::str#13 str zp[2]:12 2.000000000005E26 +(byte*) printf_str::str#15 str zp[2]:12 1.100000000000002E15 +(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) +(label) printf_string::@1 +(label) printf_string::@return +(struct printf_format_string) printf_string::format +(byte) printf_string::format_justify_left +(byte) printf_string::format_min_length +(signed byte) printf_string::len +(signed byte) printf_string::padding +(byte*) printf_string::str (void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) (label) printf_uchar::@1 (label) printf_uchar::@2 @@ -11552,9 +13610,9 @@ Number of queens:" (byte) printf_uchar::format_upper_case (byte) printf_uchar::format_zero_padding (byte) printf_uchar::uvalue -(byte) printf_uchar::uvalue#0 uvalue zp[1]:14 2.000000000002E12 -(byte) printf_uchar::uvalue#1 uvalue zp[1]:14 2.000000000002E12 -(byte) printf_uchar::uvalue#2 uvalue zp[1]:14 6.0000000000015E12 +(byte) printf_uchar::uvalue#0 uvalue zp[1]:30 2.000000000002E12 +(byte) printf_uchar::uvalue#1 uvalue zp[1]:30 2.000000000002E12 +(byte) printf_uchar::uvalue#2 uvalue zp[1]:30 6.0000000000015E12 (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_upper_case , (byte) printf_uint::format_radix) (label) printf_uint::@1 (label) printf_uint::@2 @@ -11578,20 +13636,18 @@ Number of queens:" (label) printf_ulong::@return (struct printf_format_number) printf_ulong::format (byte) printf_ulong::format_justify_left -(const byte) printf_ulong::format_justify_left#0 format_justify_left = (byte) 0 (byte) printf_ulong::format_min_length -(const byte) printf_ulong::format_min_length#0 format_min_length = (byte) 0 (byte) printf_ulong::format_radix (byte) printf_ulong::format_sign_always (byte) printf_ulong::format_upper_case -(const byte) printf_ulong::format_upper_case#0 format_upper_case = (byte) 0 (byte) printf_ulong::format_zero_padding -(const byte) printf_ulong::format_zero_padding#0 format_zero_padding = (byte) 0 (dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 uvalue zp[4]:8 37.33333333333333 +(dword) printf_ulong::uvalue#0 uvalue zp[4]:2 22.0 +(dword) printf_ulong::uvalue#1 uvalue zp[4]:2 22.0 +(dword) printf_ulong::uvalue#2 uvalue zp[4]:2 61.5 __stackcall (void()) queen((byte) queen::row) -(byte~) queen::$1 zp[1]:15 2.00000000002E11 -(byte~) queen::$4 zp[1]:27 2.00000000002E11 +(byte~) queen::$1 zp[1]:14 2.00000000002E11 +(byte~) queen::$4 zp[1]:33 2.00000000002E11 (label) queen::@1 (label) queen::@2 (label) queen::@3 @@ -11601,45 +13657,108 @@ __stackcall (void()) queen((byte) queen::row) (label) queen::@7 (label) queen::@return (const byte) queen::OFFSET_STACK_ROW = (byte) 0 -(byte) queen::column loadstore zp[1]:28 2.9411764706823532E10 -(byte) queen::r loadstore zp[1]:27 2.1052631579736843E10 +(byte) queen::column loadstore zp[1]:34 2.9411764706823532E10 +(byte) queen::r loadstore zp[1]:33 2.1052631579736843E10 (byte) queen::row -(byte) queen::row#0 row zp[1]:27 22.0 +(byte) queen::row#0 row zp[1]:33 22.0 (word()) strlen((byte*) strlen::str) (label) strlen::@1 (label) strlen::@2 (label) strlen::@return (word) strlen::len -(word) strlen::len#1 len zp[2]:2 1.0E27 -(word) strlen::len#2 len zp[2]:2 5.00000000000025E26 +(word) strlen::len#1 len zp[2]:10 1.0E27 +(word) strlen::len#2 len zp[2]:10 5.00000000000025E26 (word) strlen::return -(word) strlen::return#2 return zp[2]:2 2.00000000000002E14 +(word) strlen::return#2 return zp[2]:10 2.00000000000002E14 (byte*) strlen::str -(byte*) strlen::str#0 str zp[2]:25 2.0E27 -(byte*) strlen::str#1 str zp[2]:25 5.50000000000001E14 -(byte*) strlen::str#2 str zp[2]:25 1.0000000000003332E27 +(byte*) strlen::str#0 str zp[2]:31 2.0E27 +(byte*) strlen::str#1 str zp[2]:31 5.50000000000001E14 +(byte*) strlen::str#3 str zp[2]:31 1.0000000000003332E27 (byte*()) strupr((byte*) strupr::str) -(byte~) strupr::$0 zp[1]:4 2.0E27 +(byte~) strupr::$0 zp[1]:15 2.0E27 (label) strupr::@1 (label) strupr::@2 (label) strupr::@3 (label) strupr::@return (byte*) strupr::return (byte*) strupr::src -(byte*) strupr::src#1 src zp[2]:25 2.0E27 -(byte*) strupr::src#2 src zp[2]:25 7.142857142858572E26 +(byte*) strupr::src#1 src zp[2]:31 2.0E27 +(byte*) strupr::src#2 src zp[2]:31 7.142857142858572E26 (byte*) strupr::str -(byte*) strupr::str#0 str zp[2]:25 5.50000000000001E14 +(byte*) strupr::str#0 str zp[2]:31 5.50000000000001E14 +(const byte*) tod_buffer[] = (byte*) "00:00:00:00" +(void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) +(label) tod_init::@return +(struct TIME_OF_DAY) tod_init::tod +(byte) tod_init::tod_HOURS +(byte) tod_init::tod_HOURS#0 tod_HOURS zp[1]:23 37.33333333333333 +(byte) tod_init::tod_MIN +(byte) tod_init::tod_MIN#0 tod_MIN zp[1]:22 22.4 +(byte) tod_init::tod_SEC +(byte) tod_init::tod_SEC#0 tod_SEC zp[1]:21 16.0 +(byte) tod_init::tod_TENTHS +(byte) tod_init::tod_TENTHS#0 tod_TENTHS zp[1]:36 12.444444444444443 +(struct TIME_OF_DAY()) tod_read() +(label) tod_read::@return +(byte) tod_read::hours +(byte) tod_read::mins +(struct TIME_OF_DAY) tod_read::return +(byte) tod_read::return_HOURS +(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:24 12.444444444444443 +(byte) tod_read::return_HOURS#2 return_HOURS zp[1]:24 5.5 +(byte) tod_read::return_MIN +(byte) tod_read::return_MIN#0 return_MIN zp[1]:23 16.0 +(byte) tod_read::return_MIN#2 return_MIN zp[1]:23 5.5 +(byte) tod_read::return_SEC +(byte) tod_read::return_SEC#0 return_SEC zp[1]:22 22.4 +(byte) tod_read::return_SEC#2 return_SEC zp[1]:22 5.5 +(byte) tod_read::return_TENTHS +(byte) tod_read::return_TENTHS#0 return_TENTHS zp[1]:21 37.33333333333333 +(byte) tod_read::return_TENTHS#2 return_TENTHS zp[1]:21 5.5 +(byte) tod_read::secs +(byte) tod_read::tenths +(byte) tod_read::tod_HOURS +(byte) tod_read::tod_MIN +(byte) tod_read::tod_SEC +(byte) tod_read::tod_TENTHS +(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) +(byte~) tod_str::$0 zp[1]:35 202.0 +(byte~) tod_str::$1 zp[1]:35 202.0 +(byte~) tod_str::$10 zp[1]:22 202.0 +(byte~) tod_str::$11 zp[1]:22 202.0 +(byte~) tod_str::$12 zp[1]:33 202.0 +(byte~) tod_str::$13 zp[1]:33 202.0 +(byte~) tod_str::$14 zp[1]:21 202.0 +(byte~) tod_str::$15 zp[1]:21 202.0 +(byte~) tod_str::$2 zp[1]:24 202.0 +(byte~) tod_str::$3 zp[1]:24 202.0 +(byte~) tod_str::$4 zp[1]:29 202.0 +(byte~) tod_str::$5 zp[1]:29 202.0 +(byte~) tod_str::$6 zp[1]:23 202.0 +(byte~) tod_str::$7 zp[1]:23 202.0 +(byte~) tod_str::$8 zp[1]:30 202.0 +(byte~) tod_str::$9 zp[1]:30 202.0 +(label) tod_str::@return +(byte*) tod_str::return +(struct TIME_OF_DAY) tod_str::tod +(byte) tod_str::tod_HOURS +(byte) tod_str::tod_HOURS#0 tod_HOURS zp[1]:24 53.25 +(byte) tod_str::tod_MIN +(byte) tod_str::tod_MIN#0 tod_MIN zp[1]:23 19.363636363636363 +(byte) tod_str::tod_SEC +(byte) tod_str::tod_SEC#0 tod_SEC zp[1]:22 11.833333333333332 +(byte) tod_str::tod_TENTHS +(byte) tod_str::tod_TENTHS#0 tod_TENTHS zp[1]:21 8.52 (byte()) toupper((byte) toupper::ch) (label) toupper::@1 (label) toupper::@2 (label) toupper::@return (byte) toupper::ch -(byte) toupper::ch#0 ch zp[1]:4 1.6999999999999998E28 +(byte) toupper::ch#0 ch zp[1]:15 1.6999999999999998E28 (byte) toupper::return -(byte) toupper::return#0 return zp[1]:4 2.0E28 -(byte) toupper::return#2 return zp[1]:4 1.0333333333333333E28 -(byte) toupper::return#3 return zp[1]:4 2.0E27 +(byte) toupper::return#0 return zp[1]:15 2.0E28 +(byte) toupper::return#2 return zp[1]:15 1.0333333333333333E28 +(byte) toupper::return#3 return zp[1]:15 2.0E27 (void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) (label) uctoa::@1 (label) uctoa::@2 @@ -11655,21 +13774,21 @@ __stackcall (void()) queen((byte) queen::row) (byte*) uctoa::buffer#3 buffer zp[2]:12 2.00000000000002E14 (byte*) uctoa::buffer#4 buffer zp[2]:12 2.0E26 (byte) uctoa::digit -(byte) uctoa::digit#1 digit zp[1]:34 2.0E26 -(byte) uctoa::digit#2 digit zp[1]:34 3.076923076923077E25 +(byte) uctoa::digit#1 digit zp[1]:14 2.0E26 +(byte) uctoa::digit#2 digit zp[1]:14 3.076923076923077E25 (byte) uctoa::digit_value -(byte) uctoa::digit_value#0 digit_value zp[1]:29 6.000000000000001E25 +(byte) uctoa::digit_value#0 digit_value zp[1]:35 6.000000000000001E25 (byte*) uctoa::digit_values (byte) uctoa::max_digits (byte) uctoa::radix (byte) uctoa::started -(byte) uctoa::started#2 started zp[1]:5 6.000000000000001E25 -(byte) uctoa::started#4 started zp[1]:5 1.0E26 +(byte) uctoa::started#2 started zp[1]:16 6.000000000000001E25 +(byte) uctoa::started#4 started zp[1]:16 1.0E26 (byte) uctoa::value -(byte) uctoa::value#0 value zp[1]:4 1.0E26 -(byte) uctoa::value#1 value zp[1]:4 5.5000000000001E13 -(byte) uctoa::value#2 value zp[1]:4 6.666666666670001E25 -(byte) uctoa::value#6 value zp[1]:4 1.5000000000000002E26 +(byte) uctoa::value#0 value zp[1]:15 1.0E26 +(byte) uctoa::value#1 value zp[1]:15 5.5000000000001E13 +(byte) uctoa::value#2 value zp[1]:15 6.666666666670001E25 +(byte) uctoa::value#6 value zp[1]:15 1.5000000000000002E26 (byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) (label) uctoa_append::@1 (label) uctoa_append::@2 @@ -11678,19 +13797,19 @@ __stackcall (void()) queen((byte) queen::row) (byte*) uctoa_append::buffer (byte*) uctoa_append::buffer#0 buffer zp[2]:12 1.3750000000000001E26 (byte) uctoa_append::digit -(byte) uctoa_append::digit#1 digit zp[1]:6 1.0E40 -(byte) uctoa_append::digit#2 digit zp[1]:6 1.00000000000005E40 +(byte) uctoa_append::digit#1 digit zp[1]:36 1.0E40 +(byte) uctoa_append::digit#2 digit zp[1]:36 1.00000000000005E40 (byte) uctoa_append::return -(byte) uctoa_append::return#0 return zp[1]:4 2.0E26 +(byte) uctoa_append::return#0 return zp[1]:15 2.0E26 (byte) uctoa_append::sub -(byte) uctoa_append::sub#0 sub zp[1]:29 3.33333333333335E39 +(byte) uctoa_append::sub#0 sub zp[1]:35 3.33333333333335E39 (byte) uctoa_append::value -(byte) uctoa_append::value#0 value zp[1]:4 3.666666666666667E26 -(byte) uctoa_append::value#1 value zp[1]:4 2.0E40 -(byte) uctoa_append::value#2 value zp[1]:4 5.0000000000001833E39 +(byte) uctoa_append::value#0 value zp[1]:15 3.666666666666667E26 +(byte) uctoa_append::value#1 value zp[1]:15 2.0E40 +(byte) uctoa_append::value#2 value zp[1]:15 5.0000000000001833E39 (void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) -(byte~) ultoa::$10 zp[1]:34 2.00000000000002E14 -(byte~) ultoa::$11 zp[1]:29 2002.0 +(byte~) ultoa::$10 zp[1]:35 2.00000000000002E14 +(byte~) ultoa::$11 zp[1]:24 2002.0 (label) ultoa::@1 (label) ultoa::@2 (label) ultoa::@3 @@ -11705,22 +13824,21 @@ __stackcall (void()) queen((byte) queen::row) (byte*) ultoa::buffer#3 buffer zp[2]:12 2002.0 (byte*) ultoa::buffer#4 buffer zp[2]:12 2.00000000000002E14 (byte) ultoa::digit -(byte) ultoa::digit#1 digit zp[1]:7 2.00000000000002E14 -(byte) ultoa::digit#2 digit zp[1]:7 2.8571428571428855E13 +(byte) ultoa::digit#1 digit zp[1]:16 2.00000000000002E14 +(byte) ultoa::digit#2 digit zp[1]:16 2.8571428571428855E13 (dword) ultoa::digit_value -(dword) ultoa::digit_value#0 digit_value zp[4]:30 6.000000000000059E13 +(dword) ultoa::digit_value#0 digit_value zp[4]:25 6.000000000000059E13 (dword*) ultoa::digit_values (byte) ultoa::max_digits -(const byte) ultoa::max_digits#1 max_digits = (byte) $a (byte) ultoa::radix (byte) ultoa::started -(byte) ultoa::started#2 started zp[1]:15 5.00000000000005E13 -(byte) ultoa::started#4 started zp[1]:15 1.00000000000001E14 +(byte) ultoa::started#2 started zp[1]:36 5.00000000000005E13 +(byte) ultoa::started#4 started zp[1]:36 1.00000000000001E14 (dword) ultoa::value -(dword) ultoa::value#0 value zp[4]:8 1.00000000000001E14 -(dword) ultoa::value#1 value zp[4]:8 551.0 -(dword) ultoa::value#2 value zp[4]:8 5.714285714300071E13 -(dword) ultoa::value#6 value zp[4]:8 1.500000000000015E14 +(dword) ultoa::value#0 value zp[4]:6 1.00000000000001E14 +(dword) ultoa::value#1 value zp[4]:6 551.0 +(dword) ultoa::value#2 value zp[4]:6 5.714285714300071E13 +(dword) ultoa::value#6 value zp[4]:6 1.500000000000015E14 (dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) (label) ultoa_append::@1 (label) ultoa_append::@2 @@ -11729,19 +13847,19 @@ __stackcall (void()) queen((byte) queen::row) (byte*) ultoa_append::buffer (byte*) ultoa_append::buffer#0 buffer zp[2]:12 1.3750000000000025E14 (byte) ultoa_append::digit -(byte) ultoa_append::digit#1 digit zp[1]:29 1.0E27 -(byte) ultoa_append::digit#2 digit zp[1]:29 1.0000000000005E27 +(byte) ultoa_append::digit#1 digit zp[1]:21 1.0E27 +(byte) ultoa_append::digit#2 digit zp[1]:21 1.0000000000005E27 (dword) ultoa_append::return -(dword) ultoa_append::return#0 return zp[4]:8 2.00000000000002E14 +(dword) ultoa_append::return#0 return zp[4]:6 2.00000000000002E14 (dword) ultoa_append::sub -(dword) ultoa_append::sub#0 sub zp[4]:30 3.3333333333335E26 +(dword) ultoa_append::sub#0 sub zp[4]:25 3.3333333333335E26 (dword) ultoa_append::value -(dword) ultoa_append::value#0 value zp[4]:8 3.666666666666674E14 -(dword) ultoa_append::value#1 value zp[4]:8 2.0E27 -(dword) ultoa_append::value#2 value zp[4]:8 5.0000000000018335E26 +(dword) ultoa_append::value#0 value zp[4]:6 3.666666666666674E14 +(dword) ultoa_append::value#1 value zp[4]:6 2.0E27 +(dword) ultoa_append::value#2 value zp[4]:6 5.0000000000018335E26 (void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) -(byte~) utoa::$10 zp[1]:27 20002.0 -(byte~) utoa::$11 zp[1]:24 2002.0 +(byte~) utoa::$10 zp[1]:30 20002.0 +(byte~) utoa::$11 zp[1]:29 2002.0 (label) utoa::@1 (label) utoa::@2 (label) utoa::@3 @@ -11751,67 +13869,69 @@ __stackcall (void()) queen((byte) queen::row) (label) utoa::@7 (label) utoa::@return (byte*) utoa::buffer -(byte*) utoa::buffer#11 buffer zp[2]:2 3000.4285714285716 -(byte*) utoa::buffer#14 buffer zp[2]:2 15001.5 -(byte*) utoa::buffer#3 buffer zp[2]:2 2002.0 -(byte*) utoa::buffer#4 buffer zp[2]:2 20002.0 +(byte*) utoa::buffer#11 buffer zp[2]:12 3000.4285714285716 +(byte*) utoa::buffer#14 buffer zp[2]:12 15001.5 +(byte*) utoa::buffer#3 buffer zp[2]:12 2002.0 +(byte*) utoa::buffer#4 buffer zp[2]:12 20002.0 (byte) utoa::digit -(byte) utoa::digit#1 digit zp[1]:15 20002.0 -(byte) utoa::digit#2 digit zp[1]:15 2857.4285714285716 +(byte) utoa::digit#1 digit zp[1]:22 20002.0 +(byte) utoa::digit#2 digit zp[1]:22 2857.4285714285716 (word) utoa::digit_value -(word) utoa::digit_value#0 digit_value zp[2]:25 6000.6 +(word) utoa::digit_value#0 digit_value zp[2]:31 6000.6 (word*) utoa::digit_values (byte) utoa::max_digits (const byte) utoa::max_digits#1 max_digits = (byte) 5 (byte) utoa::radix (byte) utoa::started -(byte) utoa::started#2 started zp[1]:29 5000.5 -(byte) utoa::started#4 started zp[1]:29 10001.0 +(byte) utoa::started#2 started zp[1]:23 5000.5 +(byte) utoa::started#4 started zp[1]:23 10001.0 (word) utoa::value -(word) utoa::value#0 value zp[2]:12 10001.0 -(word) utoa::value#2 value zp[2]:12 5714.857142857143 -(word) utoa::value#6 value zp[2]:12 15001.5 +(word) utoa::value#0 value zp[2]:10 10001.0 +(word) utoa::value#2 value zp[2]:10 5714.857142857143 +(word) utoa::value#6 value zp[2]:10 15001.5 (word()) utoa_append((byte*) utoa_append::buffer , (word) utoa_append::value , (word) utoa_append::sub) (label) utoa_append::@1 (label) utoa_append::@2 (label) utoa_append::@3 (label) utoa_append::@return (byte*) utoa_append::buffer -(byte*) utoa_append::buffer#0 buffer zp[2]:2 13750.25 +(byte*) utoa_append::buffer#0 buffer zp[2]:12 13750.25 (byte) utoa_append::digit (byte) utoa_append::digit#1 digit zp[1]:24 1.0000001E7 (byte) utoa_append::digit#2 digit zp[1]:24 1.00500015E7 (word) utoa_append::return -(word) utoa_append::return#0 return zp[2]:12 20002.0 +(word) utoa_append::return#0 return zp[2]:10 20002.0 (word) utoa_append::sub -(word) utoa_append::sub#0 sub zp[2]:25 3335000.5 +(word) utoa_append::sub#0 sub zp[2]:31 3335000.5 (word) utoa_append::value -(word) utoa_append::value#0 value zp[2]:12 36667.33333333333 -(word) utoa_append::value#1 value zp[2]:12 2.0000002E7 -(word) utoa_append::value#2 value zp[2]:12 5018334.166666666 +(word) utoa_append::value#0 value zp[2]:10 36667.33333333333 +(word) utoa_append::value#1 value zp[2]:10 2.0000002E7 +(word) utoa_append::value#2 value zp[2]:10 5018334.166666666 -zp[2]:2 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] -zp[1]:4 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -zp[1]:5 [ uctoa::started#2 uctoa::started#4 printf_padding::pad#5 printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_str::ch#0 ] -zp[1]:6 [ uctoa_append::digit#2 uctoa_append::digit#1 printf_padding::i#2 printf_padding::i#1 ] -zp[1]:7 [ ultoa::digit#2 ultoa::digit#1 memset::c#4 ] -zp[4]:8 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ultoa_append::return#0 ] -zp[2]:12 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 printf_number_buffer::buffer_digits#10 printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] -zp[1]:14 [ legal::i#2 legal::i#1 print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 print::i1#2 print::i1#1 ] -zp[1]:15 [ legal::return#4 legal::return#0 queen::$1 ultoa::started#2 ultoa::started#4 utoa::digit#2 utoa::digit#1 printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -zp[1]:16 [ printf_cursor_x ] -zp[1]:17 [ printf_cursor_y ] -zp[2]:18 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] -zp[4]:20 [ count ] -zp[1]:24 [ utoa::$11 diff::b#2 diff::b#0 diff::b#1 utoa_append::digit#2 utoa_append::digit#1 printf_number_buffer::format_zero_padding#10 ] -zp[2]:25 [ utoa::digit_value#0 utoa_append::sub#0 strlen::str#2 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] -zp[1]:27 [ queen::row#0 queen::r legal::row#0 queen::$4 utoa::$10 ] -zp[1]:28 [ queen::column legal::column#0 ] -zp[1]:29 [ ultoa::$11 uctoa::digit_value#0 uctoa_append::sub#0 diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 ultoa_append::digit#2 ultoa_append::digit#1 utoa::started#2 utoa::started#4 printf_number_buffer::format_justify_left#10 ] -zp[4]:30 [ ultoa::digit_value#0 ultoa_append::sub#0 ] -zp[1]:34 [ legal::$0 ultoa::$10 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_upper_case#10 ] -zp[1]:35 [ diff::return#0 legal::$3 print::j#2 print::j#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +zp[4]:2 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 count ] +zp[4]:6 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ] +zp[2]:10 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:12 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] +zp[1]:14 [ legal::return#4 legal::return#0 queen::$1 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 memset::c#4 ] +zp[1]:15 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_padding::pad#7 printf_str::ch#0 ] +zp[1]:16 [ diff::b#2 diff::b#0 diff::b#1 uctoa::started#2 uctoa::started#4 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +zp[1]:17 [ printf_cursor_x ] +zp[1]:18 [ printf_cursor_y ] +zp[2]:19 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] +zp[1]:21 [ tod_read::return_TENTHS#2 tod_str::tod_TENTHS#0 tod_read::return_TENTHS#0 tod_str::$14 tod_str::$15 tod_init::tod_SEC#0 ultoa_append::digit#2 ultoa_append::digit#1 printf_number_buffer::format_zero_padding#10 ] +zp[1]:22 [ tod_read::return_SEC#2 tod_str::tod_SEC#0 tod_read::return_SEC#0 tod_str::$10 tod_str::$11 tod_init::tod_MIN#0 utoa::digit#2 utoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +zp[1]:23 [ tod_read::return_MIN#2 tod_str::tod_MIN#0 tod_read::return_MIN#0 tod_str::$6 tod_str::$7 tod_init::tod_HOURS#0 utoa::started#2 utoa::started#4 printf_number_buffer::format_upper_case#10 ] +zp[1]:24 [ ultoa::$11 tod_read::return_HOURS#2 tod_str::tod_HOURS#0 tod_read::return_HOURS#0 tod_str::$2 tod_str::$3 utoa_append::digit#2 utoa_append::digit#1 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +zp[4]:25 [ ultoa::digit_value#0 ultoa_append::sub#0 ] +zp[1]:29 [ utoa::$11 tod_str::$4 tod_str::$5 print::j#2 print::j#1 printf_padding::i#2 printf_padding::i#1 ] +zp[1]:30 [ utoa::$10 tod_str::$8 tod_str::$9 legal::i#2 legal::i#1 print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 print::i1#2 print::i1#1 ] +zp[2]:31 [ utoa::digit_value#0 utoa_append::sub#0 strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] +zp[1]:33 [ queen::row#0 queen::r legal::row#0 queen::$4 tod_str::$12 tod_str::$13 ] +zp[1]:34 [ queen::column legal::column#0 ] +zp[1]:35 [ legal::$0 uctoa::digit_value#0 uctoa_append::sub#0 tod_str::$0 tod_str::$1 ultoa::$10 ] +zp[1]:36 [ diff::return#0 legal::$3 tod_init::tod_TENTHS#0 uctoa_append::digit#2 uctoa_append::digit#1 ultoa::started#2 ultoa::started#4 printf_number_buffer::format_justify_left#10 ] mem[12] [ printf_buffer ] +mem[4] [ TOD_ZERO ] FINAL ASSEMBLER @@ -11828,13 +13948,24 @@ Score: 2147483647 :BasicUpstart(__bbegin) .pc = $80d "Program" // Global Constants & labels + // The CIA#1: keyboard matrix, joystick #1/#2 + .label CIA1 = $dc00 .const OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 + .const OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 + .const OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 + .const OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 + .const OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e + .const OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f + .const OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b + .const OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a + .const OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 + .const OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 .const STACK_BASE = $103 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - .label printf_cursor_x = $10 - .label printf_cursor_y = $11 - .label printf_cursor_ptr = $12 - .label count = $14 + .label printf_cursor_x = $11 + .label printf_cursor_y = $12 + .label printf_cursor_ptr = $13 + .label count = 2 // @begin __bbegin: // @1 @@ -11877,14 +14008,14 @@ __bbegin: main: { // printf_cls() // [9] call printf_cls - // [171] phi from main to printf_cls [phi:main->printf_cls] + // [272] phi from main to printf_cls [phi:main->printf_cls] jsr printf_cls // [10] phi from main to main::@1 [phi:main->main::@1] // main::@1 // printf(" - n queens problem using backtracking -") // [11] call printf_str - // [104] phi from main::@1 to printf_str [phi:main::@1->printf_str] - // [104] phi (byte*) printf_str::str#11 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 + // [45] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 lda #str @@ -11892,10 +14023,10 @@ main: { jsr printf_str // [12] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 - // printf("\nNumber of queens:%u",QUEENS) + // printf("\nnumber of queens:%u",QUEENS) // [13] call printf_str - // [104] phi from main::@2 to printf_str [phi:main::@2->printf_str] - // [104] phi (byte*) printf_str::str#11 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 + // [45] phi from main::@2 to printf_str [phi:main::@2->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 lda #str1 @@ -11903,386 +14034,234 @@ main: { jsr printf_str // [14] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 - // printf("\nNumber of queens:%u",QUEENS) + // printf("\nnumber of queens:%u",QUEENS) // [15] call printf_uint - // [20] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] + // [238] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] jsr printf_uint // main::@4 + // tod_init(TOD_ZERO) + // [16] (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO + sta.z tod_init.tod_TENTHS + // [17] (byte) tod_init::tod_SEC#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC + sta.z tod_init.tod_SEC + // [18] (byte) tod_init::tod_MIN#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN + sta.z tod_init.tod_MIN + // [19] (byte) tod_init::tod_HOURS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS) -- vbuz1=_deref_pbuc1 + lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS + sta.z tod_init.tod_HOURS + // [20] call tod_init + jsr tod_init + // main::@5 // queen(1) - // [16] stackpush(byte) ← (byte) 1 -- _stackpushbyte_=vbuc1 + // [21] stackpush(byte) ← (byte) 1 -- _stackpushbyte_=vbuc1 lda #1 pha - // [17] callexecute queen -- jsr + // [22] callexecute queen -- jsr jsr queen // sideeffect stackpullbytes((number) 1) -- _stackpullbyte_1 pla + // tod_read() + // [24] call tod_read + jsr tod_read + // [25] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 + // [26] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 + // [27] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 + // [28] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 + // main::@6 + // tod_str(tod_read()) + // [29] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 + // [30] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 + // [31] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 + // [32] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 + // [33] call tod_str + jsr tod_str + // [34] phi from main::@6 to main::@7 [phi:main::@6->main::@7] + // main::@7 + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + // [35] call printf_str + // [45] phi from main::@7 to printf_str [phi:main::@7->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str2 [phi:main::@7->printf_str#0] -- pbuz1=pbuc1 + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + // main::@8 + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + // [36] (dword) printf_ulong::uvalue#0 ← (dword) count + // [37] call printf_ulong + // [101] phi from main::@8 to printf_ulong [phi:main::@8->printf_ulong] + // [101] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#0 [phi:main::@8->printf_ulong#0] -- register_copy + jsr printf_ulong + // [38] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // main::@9 + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + // [39] call printf_str + // [45] phi from main::@9 to printf_str [phi:main::@9->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str3 [phi:main::@9->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + // [40] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + // main::@10 + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + // [41] call printf_string + // [97] phi from main::@10 to printf_string [phi:main::@10->printf_string] + jsr printf_string + // [42] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // main::@11 + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + // [43] call printf_str + // [45] phi from main::@11 to printf_str [phi:main::@11->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) main::str4 [phi:main::@11->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str // main::@return // } - // [19] return + // [44] return rts str: .text " - n queens problem using backtracking -" .byte 0 - str1: .text @"\nNumber of queens:" + str1: .text @"\nnumber of queens:" + .byte 0 + str2: .text @"\nsolutions: " + .byte 0 + str3: .text " time: " + .byte 0 + str4: .text @".\n" .byte 0 } - // printf_uint -// Print an unsigned int using a specific format -printf_uint: { - .label uvalue = 8 - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - // printf_uint::@1 - // printf_buffer.sign = format.sign_always?'+':0 - // [21] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // utoa(uvalue, printf_buffer.digits, format.radix) - // [22] call utoa - // Format number into buffer - // [143] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] - jsr utoa - // printf_uint::@2 - // printf_number_buffer(printf_buffer, format) - // [23] (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 - // [24] call printf_number_buffer - // Print using format - // [26] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] - // [26] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [26] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy - // [26] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [26] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [26] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [26] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - // printf_uint::@return - // } - // [25] return - rts -} - // printf_number_buffer -// Print the contents of the number buffer using a specific format. -// This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($23) buffer_sign, byte* zp($c) buffer_digits, byte zp($f) format_min_length, byte zp($1d) format_justify_left, byte zp($18) format_zero_padding, byte zp($22) format_upper_case) -printf_number_buffer: { - .label __19 = 2 - .label buffer_sign = $23 - .label len = 4 - .label padding = $f - .label format_min_length = $f - .label format_zero_padding = $18 - .label format_justify_left = $1d - .label buffer_digits = $c - .label format_upper_case = $22 - // if(format.min_length) - // [27] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_min_length - beq __b6 - // printf_number_buffer::@6 - // strlen(buffer.digits) - // [28] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 - lda.z buffer_digits - sta.z strlen.str - lda.z buffer_digits+1 - sta.z strlen.str+1 - // [29] call strlen - // [137] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] - jsr strlen - // strlen(buffer.digits) - // [30] (word) strlen::return#2 ← (word) strlen::len#2 - // printf_number_buffer::@14 - // [31] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - // len = (signed char)strlen(buffer.digits) - // [32] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsz1=_sbyte_vwuz2 - // There is a minimum length - work out the padding - lda.z __19 - sta.z len - // if(buffer.sign) - // [33] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b13 - // printf_number_buffer::@7 - // len++; - // [34] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsz1=_inc_vbsz1 - inc.z len - // [35] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] - // [35] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy - // printf_number_buffer::@13 - __b13: - // padding = (signed char)format.min_length - len - // [36] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsz1_minus_vbsz2 - lda.z padding - sec - sbc.z len - sta.z padding - // if(padding<0) - // [37] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 - cmp #0 - bpl __b1 - // [39] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] - __b6: - // [39] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 - lda #0 - sta.z padding - // [38] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] - // printf_number_buffer::@21 - // [39] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] - // [39] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy - // printf_number_buffer::@1 - __b1: - // if(!format.justify_left && !format.zero_padding && padding) - // [40] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - bne __b2 - // printf_number_buffer::@17 - // [41] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 - cmp.z format_zero_padding - bne __b2 - // printf_number_buffer::@16 - // [42] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 - cmp.z padding - bne __b8 - jmp __b2 - // printf_number_buffer::@8 - __b8: - // printf_padding(' ',(char)padding) - // [43] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [44] call printf_padding - // [63] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] - // [63] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [63] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy - jsr printf_padding - // printf_number_buffer::@2 + // printf_str +// Print a zero-terminated string +// Handles escape codes such as newline +// printf_str(byte* zp($c) str) +printf_str: { + .label ch = $f + .label str = $c + // [46] 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] + // [46] phi (byte*) printf_str::str#13 = (byte*) printf_str::str#15 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy + // printf_str::@1 + // printf_str::@2 __b2: - // if(buffer.sign) - // [45] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z buffer_sign - beq __b3 - // printf_number_buffer::@9 - // printf_char(buffer.sign) - // [46] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuz1=vbuz2 - lda.z buffer_sign - sta.z printf_char.ch - // [47] call printf_char - // [70] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] - // [70] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy - jsr printf_char - // printf_number_buffer::@3 - __b3: - // if(format.zero_padding && padding) - // [48] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_zero_padding - beq __b4 - // printf_number_buffer::@18 - // [49] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 - cmp.z padding - bne __b10 - jmp __b4 - // printf_number_buffer::@10 - __b10: - // printf_padding('0',(char)padding) - // [50] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [51] call printf_padding - // [63] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] - // [63] phi (byte) printf_padding::pad#5 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 - lda #'0' - sta.z printf_padding.pad - // [63] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy - jsr printf_padding - // printf_number_buffer::@4 - __b4: - // if(format.upper_case) - // [52] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_upper_case - beq __b5 - // printf_number_buffer::@11 - // strupr(buffer.digits) - // [53] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 - lda.z buffer_digits - sta.z strupr.str - lda.z buffer_digits+1 - sta.z strupr.str+1 - // [54] call strupr - // [122] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] - jsr strupr - // printf_number_buffer::@5 - __b5: - // printf_str(buffer.digits) - // [55] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - // [56] call printf_str - // [104] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] - // [104] phi (byte*) printf_str::str#11 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy - jsr printf_str - // printf_number_buffer::@15 - // if(format.justify_left && !format.zero_padding && padding) - // [57] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z format_justify_left - beq __breturn - // printf_number_buffer::@20 - // [58] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 - cmp.z format_zero_padding - bne __breturn - // printf_number_buffer::@19 - // [59] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 - cmp.z padding - bne __b12 - rts - // printf_number_buffer::@12 - __b12: - // printf_padding(' ',(char)padding) - // [60] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 - lda.z padding - sta.z printf_padding.length - // [61] call printf_padding - // [63] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] - // [63] phi (byte) printf_padding::pad#5 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 - lda #' ' - sta.z printf_padding.pad - // [63] phi (byte) printf_padding::length#4 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy - jsr printf_padding - // printf_number_buffer::@return - __breturn: - // } - // [62] return - rts -} - // printf_padding -// Print a padding char a number of times -// printf_padding(byte zp(5) pad, byte zp(4) length) -printf_padding: { - .label i = 6 - .label length = 4 - .label pad = 5 - // [64] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] - // [64] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z i - // printf_padding::@1 - __b1: - // for(char i=0;iprintf_char] - // [70] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy - jsr printf_char - // printf_padding::@3 - // for(char i=0;iprintf_padding::@1] - // [64] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy - jmp __b1 -} - // printf_char -// Print a single char -// If the end of the screen is reached scroll it up one char and place the cursor at the -// printf_char(byte zp(5) ch) -printf_char: { - .label ch = 5 - // *(printf_cursor_ptr++) = ch - // [71] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuz2 - lda.z ch + // ch = *str++ + // [47] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) -- vbuz1=_deref_pbuz2 ldy #0 - sta (printf_cursor_ptr),y - // *(printf_cursor_ptr++) = ch; - // [72] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 - inc.z printf_cursor_ptr + lda (str),y + sta.z ch + // [48] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 -- pbuz1=_inc_pbuz1 + inc.z str bne !+ - inc.z printf_cursor_ptr+1 + inc.z str+1 !: - // if(++printf_cursor_x==PRINTF_SCREEN_WIDTH) - // [73] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 - inc.z printf_cursor_x - // [74] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 + // if(ch==0) + // [49] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuz1_neq_0_then_la1 + lda.z ch + cmp #0 + bne __b3 + // printf_str::@return + // } + // [50] return + rts + // printf_str::@3 + __b3: + // if(ch=='\n') + // [51] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuz1_eq_vbuc1_then_la1 + lda #'\n' + cmp.z ch + beq __b4 + // printf_str::@5 + // printf_char(ch) + // [52] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + // [53] call printf_char + // [88] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + // [88] 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 + // [54] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + // printf_str::@4 + __b4: + // printf_ln() + // [55] call printf_ln + jsr printf_ln + jmp __b2 +} + // printf_ln +// Print a newline +printf_ln: { + .label __0 = $13 + .label __1 = $13 + // printf_cursor_ptr - printf_cursor_x + // [56] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz1_minus_vbuz2 + sec + lda.z __0 + sbc.z printf_cursor_x + sta.z __0 + bcs !+ + dec.z __0+1 + !: + // printf_cursor_ptr - printf_cursor_x + PRINTF_SCREEN_WIDTH + // [57] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 - cmp.z printf_cursor_x - bne __breturn - // printf_char::@1 + clc + adc.z __1 + sta.z __1 + bcc !+ + inc.z __1+1 + !: + // printf_cursor_ptr = printf_cursor_ptr - printf_cursor_x + PRINTF_SCREEN_WIDTH + // [58] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 // printf_cursor_x = 0 - // [75] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [59] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // ++printf_cursor_y; - // [76] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // printf_cursor_y++; + // [60] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y // printf_scroll() - // [77] call printf_scroll + // [61] call printf_scroll jsr printf_scroll - // printf_char::@return - __breturn: + // printf_ln::@return // } - // [78] return + // [62] return rts } // printf_scroll // Scroll the entire screen if the cursor is on the last line printf_scroll: { - .label __4 = $12 + .label __4 = $13 // if(printf_cursor_y==PRINTF_SCREEN_HEIGHT) - // [79] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 + // [63] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z printf_cursor_y bne __breturn - // [80] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] + // [64] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] // printf_scroll::@1 // memcpy(PRINTF_SCREEN_ADDRESS, PRINTF_SCREEN_ADDRESS+PRINTF_SCREEN_WIDTH, PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH) - // [81] call memcpy - // [97] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] + // [65] call memcpy + // [81] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] jsr memcpy - // [82] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] + // [66] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] // printf_scroll::@2 // memset(PRINTF_SCREEN_ADDRESS+PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH, ' ', PRINTF_SCREEN_WIDTH) - // [83] call memset - // [88] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] - // [88] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuz1=vbuc1 + // [67] call memset + // [72] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] + // [72] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuz1=vbuc1 lda #' ' sta.z memset.c - // [88] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 + // [72] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 lda #<$400+$28*$19-$28 sta.z memset.str lda #>$400+$28*$19-$28 sta.z memset.str+1 - // [88] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 + // [72] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 lda #<$28 sta.z memset.num lda #>$28 @@ -12290,7 +14269,7 @@ printf_scroll: { jsr memset // printf_scroll::@3 // printf_cursor_ptr-PRINTF_SCREEN_WIDTH - // [84] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 + // [68] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 lda.z __4 sec sbc #<$28 @@ -12299,27 +14278,27 @@ printf_scroll: { sbc #>$28 sta.z __4+1 // printf_cursor_ptr = printf_cursor_ptr-PRINTF_SCREEN_WIDTH - // [85] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 + // [69] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 // printf_cursor_y--; - // [86] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 + // [70] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 dec.z printf_cursor_y // printf_scroll::@return __breturn: // } - // [87] return + // [71] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(2) str, byte zp(7) c, word zp($19) num) +// memset(void* zp($a) str, byte zp($e) c, word zp($1f) num) memset: { - .label end = $19 - .label dst = 2 - .label num = $19 - .label str = 2 - .label c = 7 + .label end = $1f + .label dst = $a + .label num = $1f + .label str = $a + .label c = $e // if(num>0) - // [89] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 + // [73] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -12327,7 +14306,7 @@ memset: { !: // memset::@1 // end = (char*)str + num - // [90] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [74] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 lda.z end clc adc.z str @@ -12335,13 +14314,13 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [91] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 - // [92] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] - // [92] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [75] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 + // [76] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [76] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 __b2: // for(char* dst = str; dst!=end; dst++) - // [93] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [77] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -12351,17 +14330,17 @@ memset: { // memset::@return __breturn: // } - // [94] return + // [78] return rts // memset::@3 __b3: // *dst = c - // [95] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuz2 + // [79] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuz2 lda.z c ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) - // [96] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + // [80] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -12376,15 +14355,15 @@ memcpy: { .label source = $400+$28 .const num = $28*$19-$28 .label src_end = source+num - .label dst = 2 - .label src = $19 - // [98] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] - // [98] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 + .label dst = $a + .label src = $1f + // [82] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] + // [82] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 lda #destination sta.z dst+1 - // [98] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 + // [82] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 lda #source @@ -12392,7 +14371,7 @@ memcpy: { // memcpy::@1 __b1: // while(src!=src_end) - // [99] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 + // [83] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z src+1 cmp #>src_end bne __b2 @@ -12401,165 +14380,424 @@ memcpy: { bne __b2 // memcpy::@return // } - // [100] return + // [84] return rts // memcpy::@2 __b2: // *dst++ = *src++ - // [101] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 + // [85] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y sta (dst),y // *dst++ = *src++; - // [102] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 + // [86] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [103] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 + // [87] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [98] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] - // [98] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy - // [98] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy + // [82] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] + // [82] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy + // [82] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy jmp __b1 } - // printf_str -// Print a zero-terminated string -// Handles escape codes such as newline -// printf_str(byte* zp($c) str) -printf_str: { - .label ch = 5 - .label str = $c - // [105] 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] - // [105] phi (byte*) printf_str::str#10 = (byte*) printf_str::str#11 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy - // printf_str::@1 - // printf_str::@2 - __b2: - // ch = *str++ - // [106] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#10) -- vbuz1=_deref_pbuz2 - ldy #0 - lda (str),y - sta.z ch - // [107] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#10 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - // if(ch==0) - // [108] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuz1_neq_0_then_la1 + // printf_char +// Print a single char +// If the end of the screen is reached scroll it up one char and place the cursor at the +// printf_char(byte zp($f) ch) +printf_char: { + .label ch = $f + // *(printf_cursor_ptr++) = ch + // [89] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuz2 lda.z ch - cmp #0 - bne __b3 - // printf_str::@return - // } - // [109] return - rts - // printf_str::@3 - __b3: - // if(ch=='\n') - // [110] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuz1_eq_vbuc1_then_la1 - lda #'\n' - cmp.z ch - beq __b4 - // printf_str::@5 - // printf_char(ch) - // [111] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 - // [112] call printf_char - // [70] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] - // [70] 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 - // [113] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] - // printf_str::@4 - __b4: - // printf_ln() - // [114] call printf_ln - jsr printf_ln - jmp __b2 -} - // printf_ln -// Print a newline -printf_ln: { - .label __0 = $12 - .label __1 = $12 - // printf_cursor_ptr - printf_cursor_x - // [115] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz1_minus_vbuz2 - sec - lda.z __0 - sbc.z printf_cursor_x - sta.z __0 - bcs !+ - dec.z __0+1 + ldy #0 + sta (printf_cursor_ptr),y + // *(printf_cursor_ptr++) = ch; + // [90] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 + inc.z printf_cursor_ptr + bne !+ + inc.z printf_cursor_ptr+1 !: - // printf_cursor_ptr - printf_cursor_x + PRINTF_SCREEN_WIDTH - // [116] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // if(++printf_cursor_x==PRINTF_SCREEN_WIDTH) + // [91] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 + inc.z printf_cursor_x + // [92] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 - clc - adc.z __1 - sta.z __1 - bcc !+ - inc.z __1+1 - !: - // printf_cursor_ptr = printf_cursor_ptr - printf_cursor_x + PRINTF_SCREEN_WIDTH - // [117] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 + cmp.z printf_cursor_x + bne __breturn + // printf_char::@1 // printf_cursor_x = 0 - // [118] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [93] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // printf_cursor_y++; - // [119] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // ++printf_cursor_y; + // [94] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y // printf_scroll() - // [120] call printf_scroll + // [95] call printf_scroll jsr printf_scroll - // printf_ln::@return + // printf_char::@return + __breturn: // } - // [121] return + // [96] return rts +} + // printf_string +// Print a string value using a specific format +// Handles justification and min length +printf_string: { + // [98] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + // printf_string::@1 + // printf_str(str) + // [99] call printf_str + // [45] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) tod_buffer [phi:printf_string::@1->printf_str#0] -- pbuz1=pbuc1 + lda #tod_buffer + sta.z printf_str.str+1 + jsr printf_str + // printf_string::@return + // } + // [100] return + rts +} + // printf_ulong +// Print an unsigned int using a specific format +// printf_ulong(dword zp(2) uvalue) +printf_ulong: { + .label uvalue = 2 + // printf_ulong::@1 + // printf_buffer.sign = format.sign_always?'+':0 + // [102] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // ultoa(uvalue, printf_buffer.digits, format.radix) + // [103] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 -- vduz1=vduz2 + lda.z uvalue + sta.z ultoa.value + lda.z uvalue+1 + sta.z ultoa.value+1 + lda.z uvalue+2 + sta.z ultoa.value+2 + lda.z uvalue+3 + sta.z ultoa.value+3 + // [104] call ultoa + // Format number into buffer + // [173] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] + jsr ultoa + // printf_ulong::@2 + // printf_number_buffer(printf_buffer, format) + // [105] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // [106] call printf_number_buffer + // Print using format + // [108] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] + // [108] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_upper_case + // [108] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy + // [108] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [108] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + // [108] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + sta.z printf_number_buffer.format_justify_left + // [108] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + // printf_ulong::@return + // } + // [107] return + rts +} + // printf_number_buffer +// Print the contents of the number buffer using a specific format. +// This handles minimum length, zero-filling, and left/right justification from the format +// printf_number_buffer(byte zp($16) buffer_sign, byte* zp($c) buffer_digits, byte zp($10) format_min_length, byte zp($24) format_justify_left, byte zp($15) format_zero_padding, byte zp($17) format_upper_case) +printf_number_buffer: { + .label __19 = $a + .label buffer_sign = $16 + .label len = $e + .label padding = $10 + .label format_min_length = $10 + .label format_zero_padding = $15 + .label format_justify_left = $24 + .label buffer_digits = $c + .label format_upper_case = $17 + // if(format.min_length) + // [109] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_min_length + beq __b6 + // printf_number_buffer::@6 + // strlen(buffer.digits) + // [110] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + lda.z buffer_digits + sta.z strlen.str + lda.z buffer_digits+1 + sta.z strlen.str+1 + // [111] call strlen + // [167] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + jsr strlen + // strlen(buffer.digits) + // [112] (word) strlen::return#2 ← (word) strlen::len#2 + // printf_number_buffer::@14 + // [113] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 + // len = (signed char)strlen(buffer.digits) + // [114] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsz1=_sbyte_vwuz2 + // There is a minimum length - work out the padding + lda.z __19 + sta.z len + // if(buffer.sign) + // [115] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z buffer_sign + beq __b13 + // printf_number_buffer::@7 + // len++; + // [116] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsz1=_inc_vbsz1 + inc.z len + // [117] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + // [117] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + // printf_number_buffer::@13 + __b13: + // padding = (signed char)format.min_length - len + // [118] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsz1_minus_vbsz2 + lda.z padding + sec + sbc.z len + sta.z padding + // if(padding<0) + // [119] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + cmp #0 + bpl __b1 + // [121] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + __b6: + // [121] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + lda #0 + sta.z padding + // [120] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + // printf_number_buffer::@21 + // [121] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + // [121] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + // printf_number_buffer::@1 + __b1: + // if(!format.justify_left && !format.zero_padding && padding) + // [122] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z format_justify_left + bne __b2 + // printf_number_buffer::@17 + // [123] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + cmp.z format_zero_padding + bne __b2 + // printf_number_buffer::@16 + // [124] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 + cmp.z padding + bne __b8 + jmp __b2 + // printf_number_buffer::@8 + __b8: + // printf_padding(' ',(char)padding) + // [125] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + lda.z padding + sta.z printf_padding.length + // [126] call printf_padding + // [145] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + // [145] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 + lda #' ' + sta.z printf_padding.pad + // [145] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy + jsr printf_padding + // printf_number_buffer::@2 + __b2: + // if(buffer.sign) + // [127] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z buffer_sign + beq __b3 + // printf_number_buffer::@9 + // printf_char(buffer.sign) + // [128] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuz1=vbuz2 + lda.z buffer_sign + sta.z printf_char.ch + // [129] call printf_char + // [88] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] + // [88] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy + jsr printf_char + // printf_number_buffer::@3 + __b3: + // if(format.zero_padding && padding) + // [130] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_zero_padding + beq __b4 + // printf_number_buffer::@18 + // [131] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 + cmp.z padding + bne __b10 + jmp __b4 + // printf_number_buffer::@10 + __b10: + // printf_padding('0',(char)padding) + // [132] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + lda.z padding + sta.z printf_padding.length + // [133] call printf_padding + // [145] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + // [145] phi (byte) printf_padding::pad#7 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 + lda #'0' + sta.z printf_padding.pad + // [145] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy + jsr printf_padding + // printf_number_buffer::@4 + __b4: + // if(format.upper_case) + // [134] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_upper_case + beq __b5 + // printf_number_buffer::@11 + // strupr(buffer.digits) + // [135] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + lda.z buffer_digits + sta.z strupr.str + lda.z buffer_digits+1 + sta.z strupr.str+1 + // [136] call strupr + // [152] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + jsr strupr + // printf_number_buffer::@5 + __b5: + // printf_str(buffer.digits) + // [137] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + // [138] call printf_str + // [45] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + // [45] phi (byte*) printf_str::str#15 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + jsr printf_str + // printf_number_buffer::@15 + // if(format.justify_left && !format.zero_padding && padding) + // [139] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z format_justify_left + beq __breturn + // printf_number_buffer::@20 + // [140] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 + cmp.z format_zero_padding + bne __breturn + // printf_number_buffer::@19 + // [141] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 + cmp.z padding + bne __b12 + rts + // printf_number_buffer::@12 + __b12: + // printf_padding(' ',(char)padding) + // [142] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + lda.z padding + sta.z printf_padding.length + // [143] call printf_padding + // [145] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + // [145] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 + lda #' ' + sta.z printf_padding.pad + // [145] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy + jsr printf_padding + // printf_number_buffer::@return + __breturn: + // } + // [144] return + rts +} + // printf_padding +// Print a padding char a number of times +// printf_padding(byte zp($f) pad, byte zp($18) length) +printf_padding: { + .label i = $1d + .label length = $18 + .label pad = $f + // [146] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + // [146] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z i + // printf_padding::@1 + __b1: + // for(char i=0;iprintf_char] + // [88] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy + jsr printf_char + // printf_padding::@3 + // for(char i=0;iprintf_padding::@1] + // [146] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + jmp __b1 } // strupr // Converts a string to uppercase. -// strupr(byte* zp($19) str) +// strupr(byte* zp($1f) str) strupr: { - .label __0 = 4 - .label src = $19 - .label str = $19 - // [123] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] - // [123] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy + .label __0 = $f + .label src = $1f + .label str = $1f + // [153] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] + // [153] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy // strupr::@1 __b1: // while(*src) - // [124] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [154] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 bne __b2 // strupr::@return // } - // [125] return + // [155] return rts // strupr::@2 __b2: // toupper(*src) - // [126] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuz1=_deref_pbuz2 + // [156] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuz1=_deref_pbuz2 ldy #0 lda (src),y sta.z toupper.ch - // [127] call toupper + // [157] call toupper jsr toupper - // [128] (byte) toupper::return#3 ← (byte) toupper::return#2 + // [158] (byte) toupper::return#3 ← (byte) toupper::return#2 // strupr::@3 - // [129] (byte~) strupr::$0 ← (byte) toupper::return#3 + // [159] (byte~) strupr::$0 ← (byte) toupper::return#3 // *src = toupper(*src) - // [130] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuz2 + // [160] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuz2 lda.z __0 ldy #0 sta (src),y // src++; - // [131] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 + // [161] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 @@ -12569,872 +14807,79 @@ strupr: { // toupper // Convert lowercase alphabet to uppercase // Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte zp(4) ch) +// toupper(byte zp($f) ch) toupper: { - .label return = 4 - .label ch = 4 + .label return = $f + .label ch = $f // if(ch>='a' && ch<='z') - // [132] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuz1_lt_vbuc1_then_la1 + // [162] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuz1_lt_vbuc1_then_la1 lda.z ch cmp #'a' bcc __breturn // toupper::@2 - // [133] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuz1_le_vbuc1_then_la1 + // [163] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuz1_le_vbuc1_then_la1 lda #'z' cmp.z ch bcs __b1 - // [135] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] - // [135] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [165] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [165] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy rts // toupper::@1 __b1: // return ch + ('A'-'a'); - // [134] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuz1=vbuz1_plus_vbuc1 + // [164] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuz1=vbuz1_plus_vbuc1 lax.z return axs #-['A'-'a'] stx.z return // toupper::@return __breturn: // } - // [136] return + // [166] return rts } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($19) str) +// strlen(byte* zp($1f) str) strlen: { - .label len = 2 - .label str = $19 - .label return = 2 - // [138] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - // [138] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + .label len = $a + .label str = $1f + .label return = $a + // [168] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [168] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 lda #<0 sta.z len sta.z len+1 - // [138] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // [168] phi (byte*) strlen::str#3 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy // strlen::@1 __b1: // while(*str) - // [139] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [169] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 bne __b2 // strlen::@return // } - // [140] return + // [170] return rts // strlen::@2 __b2: // len++; - // [141] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + // [171] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: // str++; - // [142] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 + // [172] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [138] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - // [138] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [138] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [168] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [168] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [168] phi (byte*) strlen::str#3 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 -} - // utoa -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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($c) value, byte* zp(2) buffer) -utoa: { - .const max_digits = 5 - .label __10 = $1b - .label __11 = $18 - .label digit_value = $19 - .label buffer = 2 - .label digit = $f - .label value = $c - .label started = $1d - // [144] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] - // [144] 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 - // [144] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [144] 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 - // [144] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // utoa::@1 - __b1: - // for( char digit=0; digit= digit_value) - // [153] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - // utoa::@7 - // [154] 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 !+ - lda.z digit_value - cmp.z value - beq __b5 - !: - bcc __b5 - // [155] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] - // [155] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy - // [155] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy - // [155] 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] - // [144] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy - // [144] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy - // [144] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy - // [144] 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) - // [157] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - // [158] (word) utoa_append::value#0 ← (word) utoa::value#2 - // [159] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - // [160] call utoa_append - // [164] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] - jsr utoa_append - // utoa_append(buffer++, value, digit_value) - // [161] (word) utoa_append::return#0 ← (word) utoa_append::value#2 - // utoa::@6 - // value = utoa_append(buffer++, value, digit_value) - // [162] (word) utoa::value#0 ← (word) utoa_append::return#0 - // value = utoa_append(buffer++, value, digit_value); - // [163] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [155] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] - // [155] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy - // [155] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [155] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy - jmp __b4 -} - // utoa_append -// Used to convert a single digit of an unsigned number value to a string representation -// Counts a single digit up from '0' as long as the value is larger than sub. -// Each time the digit is increased sub is subtracted from value. -// - buffer : pointer to the char that receives the digit -// - value : The value where the digit will be derived from -// - 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(2) buffer, word zp($c) value, word zp($19) sub) -utoa_append: { - .label buffer = 2 - .label value = $c - .label sub = $19 - .label return = $c - .label digit = $18 - // [165] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] - // [165] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // [165] 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) - // [166] 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 !+ - lda.z sub - cmp.z value - beq __b2 - !: - bcc __b2 - // utoa_append::@3 - // *buffer = DIGITS[digit] - // [167] *((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 - sta (buffer),y - // utoa_append::@return - // } - // [168] return - rts - // utoa_append::@2 - __b2: - // digit++; - // [169] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // value -= sub - // [170] (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 - sta.z value - lda.z value+1 - sbc.z sub+1 - sta.z value+1 - // [165] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] - // [165] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [165] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_cls -// Clear the screen. Also resets current line/char cursor. -printf_cls: { - // memset(PRINTF_SCREEN_ADDRESS, ' ', PRINTF_SCREEN_BYTES) - // [172] call memset - // [88] phi from printf_cls to memset [phi:printf_cls->memset] - // [88] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 - lda #' ' - sta.z memset.c - // [88] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 - lda #<$400 - sta.z memset.str - lda #>$400 - sta.z memset.str+1 - // [88] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 - lda #<$28*$19 - sta.z memset.num - lda #>$28*$19 - sta.z memset.num+1 - jsr memset - // printf_cls::@1 - // printf_cursor_ptr = PRINTF_SCREEN_ADDRESS - // [173] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 - lda #<$400 - sta.z printf_cursor_ptr - lda #>$400 - sta.z printf_cursor_ptr+1 - // printf_cursor_x = 0 - // [174] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 - lda #0 - sta.z printf_cursor_x - // printf_cursor_y = 0 - // [175] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 - sta.z printf_cursor_y - // printf_cls::@return - // } - // [176] return - rts -} - // queen -// Generates all valid placements of queens on a NxN board recursively -// Works by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below -// and then recursively generating all legal placements on the rows above. -// queen(byte zp($1b) row) -queen: { - .const OFFSET_STACK_ROW = 0 - .label r = $1b - .label column = $1c - .label __1 = $f - .label __4 = $1b - .label row = $1b - // [177] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) -- vbuz1=_stackidxbyte_vbuc1 - tsx - lda STACK_BASE+OFFSET_STACK_ROW,x - sta.z row - // r = row - // [178] (byte) queen::r ← (byte) queen::row#0 - // column=1 - // [179] (byte) queen::column ← (byte) 1 -- vbuz1=vbuc1 - lda #1 - sta.z column - // queen::@1 - __b1: - // for(__ma char column=1;column<=QUEENS;++column) - // [180] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z column - cmp #8+1 - bcc __b2 - // queen::@return - // } - // [181] return - rts - // queen::@2 - __b2: - // legal(r,column) - // [182] (byte) legal::row#0 ← (byte) queen::r - // [183] (byte) legal::column#0 ← (byte) queen::column - // [184] call legal - // [294] phi from queen::@2 to legal [phi:queen::@2->legal] - jsr legal - // legal(r,column) - // [185] (byte) legal::return#0 ← (byte) legal::return#4 - // queen::@7 - // [186] (byte~) queen::$1 ← (byte) legal::return#0 - // if(legal(r,column)) - // [187] if((byte) 0==(byte~) queen::$1) goto queen::@3 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z __1 - beq __b3 - // queen::@5 - // board[r]=column - // [188] *((const byte*) board + (byte) queen::r) ← (byte) queen::column -- pbuc1_derefidx_vbuz1=vbuz2 - //no conflicts so place queen - lda.z column - ldy.z r - sta board,y - // if(r==QUEENS) - // [189] if((byte) queen::r==(byte) 8) goto queen::@4 -- vbuz1_eq_vbuc1_then_la1 - lda #8 - cmp.z r - beq __b4 - // queen::@6 - // asm - // asm { ldacolumn pha ldar pha } - // Perform recussive placement on rows above - // Push the local vars on the stack (waiting for proper recursion support) - lda column - pha - tya - pha - // r+1 - // [191] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 -- vbuz1=vbuz1_plus_1 - inc.z __4 - // queen(r+1) - // [192] stackpush(byte) ← (byte~) queen::$4 -- _stackpushbyte_=vbuz1 - // Do recursion - lda.z __4 - pha - // [193] callexecute queen -- jsr - jsr queen - // sideeffect stackpullbytes((number) 1) -- _stackpullbyte_1 - pla - // asm - // asm { pla star pla stacolumn } - // Pop the local vars on the stack (waiting for proper recursion support) - pla - sta r - pla - sta column - // queen::@3 - __b3: - // for(__ma char column=1;column<=QUEENS;++column) - // [196] (byte) queen::column ← ++ (byte) queen::column -- vbuz1=_inc_vbuz1 - inc.z column - jmp __b1 - // [197] phi from queen::@5 to queen::@4 [phi:queen::@5->queen::@4] - // queen::@4 - __b4: - // print() - // [198] call print - // we are done! Print the board configuration - jsr print - jmp __b3 -} - // print -// Print the board with a legal placement. Also increments the solution count. -print: { - .label i = $e - .label i1 = $e - .label j = $23 - // printf("\n#%lu:\n ",++count); - // [199] (dword) count ← ++ (dword) count -- vduz1=_inc_vduz1 - inc.z count - bne !+ - inc.z count+1 - bne !+ - inc.z count+2 - bne !+ - inc.z count+3 - !: - // printf("\n#%lu:\n ",++count) - // [200] call printf_str - // [104] phi from print to printf_str [phi:print->printf_str] - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 - lda #str - sta.z printf_str.str+1 - jsr printf_str - // print::@11 - // printf("\n#%lu:\n ",++count) - // [201] (dword) printf_ulong::uvalue#0 ← (dword) count -- vduz1=vduz2 - lda.z count - sta.z printf_ulong.uvalue - lda.z count+1 - sta.z printf_ulong.uvalue+1 - lda.z count+2 - sta.z printf_ulong.uvalue+2 - lda.z count+3 - sta.z printf_ulong.uvalue+3 - // [202] call printf_ulong - // [259] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] - jsr printf_ulong - // [203] phi from print::@11 to print::@12 [phi:print::@11->print::@12] - // print::@12 - // printf("\n#%lu:\n ",++count) - // [204] call printf_str - // [104] phi from print::@12 to printf_str [phi:print::@12->printf_str] - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 - lda #str1 - sta.z printf_str.str+1 - jsr printf_str - // [205] phi from print::@12 to print::@1 [phi:print::@12->print::@1] - // [205] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z i - // print::@1 - __b1: - // for(char i=1;i<=QUEENS;++i) - // [206] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z i - cmp #8+1 - bcc __b2 - // [207] phi from print::@1 to print::@3 [phi:print::@1->print::@3] - // [207] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 - lda #1 - sta.z i1 - // print::@3 - __b3: - // for(char i=1;i<=QUEENS;++i) - // [208] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 - lda.z i1 - cmp #8+1 - bcc __b4 - // print::@return - // } - // [209] return - rts - // [210] phi from print::@3 to print::@4 [phi:print::@3->print::@4] - // print::@4 - __b4: - // printf("\n%x",i) - // [211] call printf_str - // [104] phi from print::@4 to printf_str [phi:print::@4->printf_str] - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 - lda #str2 - sta.z printf_str.str+1 - jsr printf_str - // print::@14 - // printf("\n%x",i) - // [212] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 - // [213] call printf_uchar - // [226] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] - // [226] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy - jsr printf_uchar - // [214] phi from print::@14 to print::@5 [phi:print::@14->print::@5] - // [214] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 - lda #1 - sta.z j - // print::@5 - __b5: - // for(char j=1;j<=QUEENS;++j) - // [215] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 - lda.z j - cmp #8+1 - bcc __b6 - // print::@7 - // for(char i=1;i<=QUEENS;++i) - // [216] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 - inc.z i1 - // [207] phi from print::@7 to print::@3 [phi:print::@7->print::@3] - // [207] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy - jmp __b3 - // print::@6 - __b6: - // if(board[i]==j) - // [217] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 - ldy.z i1 - lda board,y - cmp.z j - beq __b8 - // [218] phi from print::@6 to print::@10 [phi:print::@6->print::@10] - // print::@10 - // printf("-") - // [219] call printf_str - // [104] phi from print::@10 to printf_str [phi:print::@10->printf_str] - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 - lda #str4 - sta.z printf_str.str+1 - jsr printf_str - // print::@9 - __b9: - // for(char j=1;j<=QUEENS;++j) - // [220] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 - inc.z j - // [214] phi from print::@9 to print::@5 [phi:print::@9->print::@5] - // [214] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy - jmp __b5 - // [221] phi from print::@6 to print::@8 [phi:print::@6->print::@8] - // print::@8 - __b8: - // printf("Q") - // [222] call printf_str - // [104] phi from print::@8 to printf_str [phi:print::@8->printf_str] - // [104] phi (byte*) printf_str::str#11 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 - lda #str3 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@2 - __b2: - // printf("%x",i) - // [223] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 - // [224] call printf_uchar - // [226] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] - // [226] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy - jsr printf_uchar - // print::@13 - // for(char i=1;i<=QUEENS;++i) - // [225] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [205] phi from print::@13 to print::@1 [phi:print::@13->print::@1] - // [205] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy - jmp __b1 - str: .text @"\n#" - .byte 0 - str1: .text @":\n " - .byte 0 - str2: .text @"\n" - .byte 0 - str3: .text "Q" - .byte 0 - str4: .text "-" - .byte 0 -} - // printf_uchar -// Print an unsigned char using a specific format -// printf_uchar(byte zp($e) uvalue) -printf_uchar: { - .label uvalue = $e - // printf_uchar::@1 - // printf_buffer.sign = format.sign_always?'+':0 - // [227] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // uctoa(uvalue, printf_buffer.digits, format.radix) - // [228] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 -- vbuz1=vbuz2 - lda.z uvalue - sta.z uctoa.value - // [229] call uctoa - // Format number into buffer - // [233] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] - jsr uctoa - // printf_uchar::@2 - // printf_number_buffer(printf_buffer, format) - // [230] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [231] call printf_number_buffer - // Print using format - // [26] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] - // [26] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_upper_case - // [26] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy - // [26] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [26] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #0 - sta.z printf_number_buffer.format_zero_padding - // [26] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - sta.z printf_number_buffer.format_justify_left - // [26] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - // printf_uchar::@return - // } - // [232] return - rts -} - // uctoa -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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(4) value, byte* zp($c) buffer) -uctoa: { - .label digit_value = $1d - .label buffer = $c - .label digit = $22 - .label value = 4 - .label started = 5 - // [234] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - // [234] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - // [234] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [234] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy - // [234] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 - sta.z digit - // uctoa::@1 - __b1: - // for( char digit=0; digit= digit_value) - // [241] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - // uctoa::@7 - // [242] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuz1_ge_vbuz2_then_la1 - lda.z value - cmp.z digit_value - bcs __b5 - // [243] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] - // [243] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy - // [243] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy - // [243] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy - // uctoa::@4 - __b4: - // for( char digit=0; digituctoa::@1] - // [234] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy - // [234] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy - // [234] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy - // [234] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy - jmp __b1 - // uctoa::@5 - __b5: - // uctoa_append(buffer++, value, digit_value) - // [245] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - // [246] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - // [247] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - // [248] call uctoa_append - // [252] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] - jsr uctoa_append - // uctoa_append(buffer++, value, digit_value) - // [249] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - // uctoa::@6 - // value = uctoa_append(buffer++, value, digit_value) - // [250] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - // value = uctoa_append(buffer++, value, digit_value); - // [251] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [243] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] - // [243] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy - // [243] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [243] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy - jmp __b4 -} - // uctoa_append -// Used to convert a single digit of an unsigned number value to a string representation -// Counts a single digit up from '0' as long as the value is larger than sub. -// Each time the digit is increased sub is subtracted from value. -// - buffer : pointer to the char that receives the digit -// - value : The value where the digit will be derived from -// - 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($c) buffer, byte zp(4) value, byte zp($1d) sub) -uctoa_append: { - .label buffer = $c - .label value = 4 - .label sub = $1d - .label return = 4 - .label digit = 6 - // [253] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - // [253] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // [253] 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) - // [254] 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 - // uctoa_append::@3 - // *buffer = DIGITS[digit] - // [255] *((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 - sta (buffer),y - // uctoa_append::@return - // } - // [256] return - rts - // uctoa_append::@2 - __b2: - // digit++; - // [257] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // value -= sub - // [258] (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 - // [253] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - // [253] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [253] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_ulong -// Print an unsigned int using a specific format -// printf_ulong(dword zp(8) uvalue) -printf_ulong: { - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = 8 - // printf_ulong::@1 - // printf_buffer.sign = format.sign_always?'+':0 - // [260] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // ultoa(uvalue, printf_buffer.digits, format.radix) - // [261] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - // [262] call ultoa - // Format number into buffer - // [266] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] - jsr ultoa - // printf_ulong::@2 - // printf_number_buffer(printf_buffer, format) - // [263] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [264] call printf_number_buffer - // Print using format - // [26] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] - // [26] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_ulong::format_upper_case#0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [26] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy - // [26] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [26] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_ulong::format_zero_padding#0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [26] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_ulong::format_justify_left#0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [26] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_ulong::format_min_length#0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - // printf_ulong::@return - // } - // [265] return - rts } // ultoa // Converts unsigned number value to a string representing it in RADIX format. @@ -13442,69 +14887,68 @@ printf_ulong: { // - 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) -// ultoa(dword zp(8) value, byte* zp($c) buffer) +// ultoa(dword zp(6) value, byte* zp($c) buffer) ultoa: { - .const max_digits = $a - .label __10 = $22 - .label __11 = $1d - .label digit_value = $1e + .label __10 = $23 + .label __11 = $18 + .label digit_value = $19 .label buffer = $c - .label digit = 7 - .label value = 8 - .label started = $f - // [267] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] - // [267] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 + .label digit = $10 + .label value = 6 + .label started = $24 + // [174] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] + // [174] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [267] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuz1=vbuc1 + // [174] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuz1=vbuc1 lda #0 sta.z started - // [267] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy - // [267] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 + // [174] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy + // [174] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 sta.z digit // ultoa::@1 __b1: // for( char digit=0; digit= digit_value) - // [276] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuz1_then_la1 + // [183] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z started bne __b5 // ultoa::@7 - // [277] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 + // [184] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z digit_value+3 bcc !+ @@ -13537,47 +14981,47 @@ ultoa: { cmp.z digit_value bcs __b5 !: - // [278] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] - // [278] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [278] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [278] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy + // [185] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] + // [185] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy + // [185] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy + // [185] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy // ultoa::@4 __b4: // for( char digit=0; digitultoa::@1] - // [267] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [267] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [267] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [267] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy + // [174] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] + // [174] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy + // [174] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy + // [174] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy + // [174] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy jmp __b1 // ultoa::@5 __b5: // ultoa_append(buffer++, value, digit_value) - // [280] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - // [281] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - // [282] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - // [283] call ultoa_append - // [287] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] + // [187] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 + // [188] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 + // [189] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 + // [190] call ultoa_append + // [194] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] jsr ultoa_append // ultoa_append(buffer++, value, digit_value) - // [284] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 + // [191] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 // ultoa::@6 // value = ultoa_append(buffer++, value, digit_value) - // [285] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 + // [192] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 // value = ultoa_append(buffer++, value, digit_value); - // [286] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [193] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [278] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] - // [278] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [278] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuz1=vbuc1 + // [185] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] + // [185] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy + // [185] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuz1=vbuc1 lda #1 sta.z started - // [278] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy + // [185] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy jmp __b4 } // ultoa_append @@ -13589,22 +15033,22 @@ ultoa: { // - 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. -// ultoa_append(byte* zp($c) buffer, dword zp(8) value, dword zp($1e) sub) +// ultoa_append(byte* zp($c) buffer, dword zp(6) value, dword zp($19) sub) ultoa_append: { .label buffer = $c - .label value = 8 - .label sub = $1e - .label return = 8 - .label digit = $1d - // [288] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] - // [288] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuz1=vbuc1 + .label value = 6 + .label sub = $19 + .label return = 6 + .label digit = $15 + // [195] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] + // [195] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuz1=vbuc1 lda #0 sta.z digit - // [288] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy + // [195] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy // ultoa_append::@1 __b1: // while (value >= sub) - // [289] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 + // [196] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z sub+3 bcc !+ @@ -13623,22 +15067,22 @@ ultoa_append: { !: // ultoa_append::@3 // *buffer = DIGITS[digit] - // [290] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [197] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z digit lda DIGITS,y ldy #0 sta (buffer),y // ultoa_append::@return // } - // [291] return + // [198] return rts // ultoa_append::@2 __b2: // digit++; - // [292] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuz1=_inc_vbuz1 + // [199] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit // value -= sub - // [293] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 + // [200] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 lda.z value sec sbc.z sub @@ -13652,102 +15096,1111 @@ ultoa_append: { lda.z value+3 sbc.z sub+3 sta.z value+3 - // [288] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] - // [288] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [288] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + // [195] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] + // [195] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy + // [195] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + jmp __b1 +} + // tod_str +// Convert time of day to a human-readable string "hh:mm:ss:10" +// tod_str(byte zp($15) tod_TENTHS, byte zp($16) tod_SEC, byte zp($17) tod_MIN, byte zp($18) tod_HOURS) +tod_str: { + .label __0 = $23 + .label __1 = $23 + .label __2 = $18 + .label __3 = $18 + .label __4 = $1d + .label __5 = $1d + .label __6 = $17 + .label __7 = $17 + .label __8 = $1e + .label __9 = $1e + .label __10 = $16 + .label __11 = $16 + .label __12 = $21 + .label __13 = $21 + .label __14 = $15 + .label __15 = $15 + .label tod_TENTHS = $15 + .label tod_SEC = $16 + .label tod_MIN = $17 + .label tod_HOURS = $18 + // tod.HOURS>>4 + // [201] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_HOURS + lsr + lsr + lsr + lsr + sta.z __0 + // '0'+(tod.HOURS>>4) + // [202] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __1 + axs #-['0'] + stx.z __1 + // tod_buffer[0] = '0'+(tod.HOURS>>4) + // [203] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuz1 + txa + sta tod_buffer + // tod.HOURS&0x0f + // [204] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuz1=vbuz1_band_vbuc1 + lda #$f + and.z __2 + sta.z __2 + // '0'+(tod.HOURS&0x0f) + // [205] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __3 + axs #-['0'] + stx.z __3 + // tod_buffer[1] = '0'+(tod.HOURS&0x0f) + // [206] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuz1 + txa + sta tod_buffer+1 + // tod.MIN>>4 + // [207] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_MIN + lsr + lsr + lsr + lsr + sta.z __4 + // '0'+(tod.MIN>>4) + // [208] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __5 + axs #-['0'] + stx.z __5 + // tod_buffer[3] = '0'+(tod.MIN>>4) + // [209] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuz1 + txa + sta tod_buffer+3 + // tod.MIN&0x0f + // [210] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuz1=vbuz1_band_vbuc1 + lda #$f + and.z __6 + sta.z __6 + // '0'+(tod.MIN&0x0f) + // [211] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __7 + axs #-['0'] + stx.z __7 + // tod_buffer[4] = '0'+(tod.MIN&0x0f) + // [212] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuz1 + txa + sta tod_buffer+4 + // tod.SEC>>4 + // [213] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_SEC + lsr + lsr + lsr + lsr + sta.z __8 + // '0'+(tod.SEC>>4) + // [214] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __9 + axs #-['0'] + stx.z __9 + // tod_buffer[6] = '0'+(tod.SEC>>4) + // [215] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuz1 + txa + sta tod_buffer+6 + // tod.SEC&0x0f + // [216] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuz1=vbuz1_band_vbuc1 + lda #$f + and.z __10 + sta.z __10 + // '0'+(tod.SEC&0x0f) + // [217] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __11 + axs #-['0'] + stx.z __11 + // tod_buffer[7] = '0'+(tod.SEC&0x0f) + // [218] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuz1 + txa + sta tod_buffer+7 + // tod.TENTHS>>4 + // [219] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_TENTHS + lsr + lsr + lsr + lsr + sta.z __12 + // '0'+(tod.TENTHS>>4) + // [220] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __13 + axs #-['0'] + stx.z __13 + // tod_buffer[9] = '0'+(tod.TENTHS>>4) + // [221] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuz1 + txa + sta tod_buffer+9 + // tod.TENTHS&0x0f + // [222] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuz1=vbuz1_band_vbuc1 + lda #$f + and.z __14 + sta.z __14 + // '0'+(tod.TENTHS&0x0f) + // [223] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuz1=vbuc1_plus_vbuz1 + lax.z __15 + axs #-['0'] + stx.z __15 + // tod_buffer[10] = '0'+(tod.TENTHS&0x0f) + // [224] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuz1 + txa + sta tod_buffer+$a + // tod_str::@return + // } + // [225] return + rts +} + // tod_read +// Read time of day +tod_read: { + .label return_TENTHS = $15 + .label return_SEC = $16 + .label return_MIN = $17 + .label return_HOURS = $18 + // hours = CIA1->TOD_HOURS + // [226] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // Reading sequence is important. TOD latches on reading hours until 10ths is read. + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + sta.z return_HOURS + // mins = CIA1->TOD_MIN + // [227] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + sta.z return_MIN + // secs = CIA1->TOD_SEC + // [228] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + sta.z return_SEC + // tenths = CIA1->TOD_10THS + // [229] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + sta.z return_TENTHS + // tod_read::@return + // } + // [230] return + rts +} + // tod_init +// Initialize time-of-day clock +// This uses the MOS6526 CIA#1 +// tod_init(byte zp($24) tod_TENTHS, byte zp($15) tod_SEC, byte zp($16) tod_MIN, byte zp($17) tod_HOURS) +tod_init: { + .label tod_TENTHS = $24 + .label tod_SEC = $15 + .label tod_MIN = $16 + .label tod_HOURS = $17 + // CIA1->TIMER_A_CONTROL |= 0x80 + // [231] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 + // Set 50hz (this assumes PAL!) (bit7=1) + lda #$80 + ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL + // CIA1->TIMER_B_CONTROL &= 0x7f + // [232] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 + // Writing TOD clock (bit7=0) + lda #$7f + and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL + // CIA1->TOD_HOURS = tod.HOURS + // [233] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuz1 + // Reset TOD clock + // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. + lda.z tod_HOURS + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + // CIA1->TOD_MIN = tod.MIN + // [234] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuz1 + lda.z tod_MIN + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + // CIA1->TOD_SEC = tod.SEC + // [235] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + lda.z tod_SEC + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + // CIA1->TOD_10THS = tod.TENTHS + // [236] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + lda.z tod_TENTHS + sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + // tod_init::@return + // } + // [237] return + rts +} + // printf_uint +// Print an unsigned int using a specific format +printf_uint: { + .label uvalue = 8 + .const format_min_length = 0 + .const format_justify_left = 0 + .const format_zero_padding = 0 + .const format_upper_case = 0 + // printf_uint::@1 + // printf_buffer.sign = format.sign_always?'+':0 + // [239] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // utoa(uvalue, printf_buffer.digits, format.radix) + // [240] call utoa + // Format number into buffer + // [244] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + jsr utoa + // printf_uint::@2 + // printf_number_buffer(printf_buffer, format) + // [241] (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 + // [242] call printf_number_buffer + // Print using format + // [108] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + // [108] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #format_upper_case + sta.z printf_number_buffer.format_upper_case + // [108] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy + // [108] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [108] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #format_zero_padding + sta.z printf_number_buffer.format_zero_padding + // [108] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + lda #format_justify_left + sta.z printf_number_buffer.format_justify_left + // [108] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + lda #format_min_length + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + // printf_uint::@return + // } + // [243] return + rts +} + // utoa +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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($a) value, byte* zp($c) buffer) +utoa: { + .const max_digits = 5 + .label __10 = $1e + .label __11 = $1d + .label digit_value = $1f + .label buffer = $c + .label digit = $16 + .label value = $a + .label started = $17 + // [245] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + // [245] 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 + // [245] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 + lda #0 + sta.z started + // [245] 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 + // [245] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 + lda #0 + sta.z digit + // utoa::@1 + __b1: + // for( char digit=0; digit= digit_value) + // [254] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z started + bne __b5 + // utoa::@7 + // [255] 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 !+ + lda.z digit_value + cmp.z value + beq __b5 + !: + bcc __b5 + // [256] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] + // [256] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy + // [256] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy + // [256] 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] + // [245] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy + // [245] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy + // [245] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy + // [245] 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) + // [258] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + // [259] (word) utoa_append::value#0 ← (word) utoa::value#2 + // [260] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + // [261] call utoa_append + // [265] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] + jsr utoa_append + // utoa_append(buffer++, value, digit_value) + // [262] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + // utoa::@6 + // value = utoa_append(buffer++, value, digit_value) + // [263] (word) utoa::value#0 ← (word) utoa_append::return#0 + // value = utoa_append(buffer++, value, digit_value); + // [264] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer + bne !+ + inc.z buffer+1 + !: + // [256] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] + // [256] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy + // [256] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 + lda #1 + sta.z started + // [256] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy + jmp __b4 +} + // utoa_append +// Used to convert a single digit of an unsigned number value to a string representation +// Counts a single digit up from '0' as long as the value is larger than sub. +// Each time the digit is increased sub is subtracted from value. +// - buffer : pointer to the char that receives the digit +// - value : The value where the digit will be derived from +// - 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($c) buffer, word zp($a) value, word zp($1f) sub) +utoa_append: { + .label buffer = $c + .label value = $a + .label sub = $1f + .label return = $a + .label digit = $18 + // [266] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + // [266] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z digit + // [266] 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) + // [267] 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 !+ + lda.z sub + cmp.z value + beq __b2 + !: + bcc __b2 + // utoa_append::@3 + // *buffer = DIGITS[digit] + // [268] *((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 + sta (buffer),y + // utoa_append::@return + // } + // [269] return + rts + // utoa_append::@2 + __b2: + // digit++; + // [270] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // value -= sub + // [271] (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 + sta.z value + lda.z value+1 + sbc.z sub+1 + sta.z value+1 + // [266] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [266] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [266] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + jmp __b1 +} + // printf_cls +// Clear the screen. Also resets current line/char cursor. +printf_cls: { + // memset(PRINTF_SCREEN_ADDRESS, ' ', PRINTF_SCREEN_BYTES) + // [273] call memset + // [72] phi from printf_cls to memset [phi:printf_cls->memset] + // [72] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 + lda #' ' + sta.z memset.c + // [72] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 + lda #<$400 + sta.z memset.str + lda #>$400 + sta.z memset.str+1 + // [72] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 + lda #<$28*$19 + sta.z memset.num + lda #>$28*$19 + sta.z memset.num+1 + jsr memset + // printf_cls::@1 + // printf_cursor_ptr = PRINTF_SCREEN_ADDRESS + // [274] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 + lda #<$400 + sta.z printf_cursor_ptr + lda #>$400 + sta.z printf_cursor_ptr+1 + // printf_cursor_x = 0 + // [275] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + lda #0 + sta.z printf_cursor_x + // printf_cursor_y = 0 + // [276] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 + sta.z printf_cursor_y + // printf_cls::@return + // } + // [277] return + rts +} + // queen +// Generates all valid placements of queens on a NxN board recursively +// Works by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below +// and then recursively generating all legal placements on the rows above. +// queen(byte zp($21) row) +queen: { + .const OFFSET_STACK_ROW = 0 + .label r = $21 + .label column = $22 + .label __1 = $e + .label __4 = $21 + .label row = $21 + // [278] (byte) queen::row#0 ← stackidx(byte,(const byte) queen::OFFSET_STACK_ROW) -- vbuz1=_stackidxbyte_vbuc1 + tsx + lda STACK_BASE+OFFSET_STACK_ROW,x + sta.z row + // r = row + // [279] (byte) queen::r ← (byte) queen::row#0 + // column=1 + // [280] (byte) queen::column ← (byte) 1 -- vbuz1=vbuc1 + lda #1 + sta.z column + // queen::@1 + __b1: + // for(__ma char column=1;column<=QUEENS;++column) + // [281] if((byte) queen::column<(byte) 8+(byte) 1) goto queen::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z column + cmp #8+1 + bcc __b2 + // queen::@return + // } + // [282] return + rts + // queen::@2 + __b2: + // legal(r,column) + // [283] (byte) legal::row#0 ← (byte) queen::r + // [284] (byte) legal::column#0 ← (byte) queen::column + // [285] call legal + // [360] phi from queen::@2 to legal [phi:queen::@2->legal] + jsr legal + // legal(r,column) + // [286] (byte) legal::return#0 ← (byte) legal::return#4 + // queen::@7 + // [287] (byte~) queen::$1 ← (byte) legal::return#0 + // if(legal(r,column)) + // [288] if((byte) 0==(byte~) queen::$1) goto queen::@3 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z __1 + beq __b3 + // queen::@5 + // board[r]=column + // [289] *((const byte*) board + (byte) queen::r) ← (byte) queen::column -- pbuc1_derefidx_vbuz1=vbuz2 + //no conflicts so place queen + lda.z column + ldy.z r + sta board,y + // if(r==QUEENS) + // [290] if((byte) queen::r==(byte) 8) goto queen::@4 -- vbuz1_eq_vbuc1_then_la1 + lda #8 + cmp.z r + beq __b4 + // queen::@6 + // asm + // asm { ldacolumn pha ldar pha } + // Perform recussive placement on rows above + // Push the local vars on the stack (waiting for proper recursion support) + lda column + pha + tya + pha + // r+1 + // [292] (byte~) queen::$4 ← (byte) queen::r + (byte) 1 -- vbuz1=vbuz1_plus_1 + inc.z __4 + // queen(r+1) + // [293] stackpush(byte) ← (byte~) queen::$4 -- _stackpushbyte_=vbuz1 + // Do recursion + lda.z __4 + pha + // [294] callexecute queen -- jsr + jsr queen + // sideeffect stackpullbytes((number) 1) -- _stackpullbyte_1 + pla + // asm + // asm { pla star pla stacolumn } + // Pop the local vars on the stack (waiting for proper recursion support) + pla + sta r + pla + sta column + // queen::@3 + __b3: + // for(__ma char column=1;column<=QUEENS;++column) + // [297] (byte) queen::column ← ++ (byte) queen::column -- vbuz1=_inc_vbuz1 + inc.z column + jmp __b1 + // queen::@4 + __b4: + // count++; + // [298] (dword) count ← ++ (dword) count -- vduz1=_inc_vduz1 + inc.z count + bne !+ + inc.z count+1 + bne !+ + inc.z count+2 + bne !+ + inc.z count+3 + !: + // print() + // [299] call print + // [300] phi from queen::@4 to print [phi:queen::@4->print] + jsr print + jmp __b3 +} + // print +// Print the board with a legal placement. Also increments the solution count. +print: { + .label i = $1e + .label i1 = $1e + .label j = $1d + // printf("\n#%lu:\n ",count) + // [301] call printf_str + // [45] phi from print to printf_str [phi:print->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 + lda #str + sta.z printf_str.str+1 + jsr printf_str + // print::@11 + // printf("\n#%lu:\n ",count) + // [302] (dword) printf_ulong::uvalue#1 ← (dword) count + // [303] call printf_ulong + // [101] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] + // [101] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#1 [phi:print::@11->printf_ulong#0] -- register_copy + jsr printf_ulong + // [304] phi from print::@11 to print::@12 [phi:print::@11->print::@12] + // print::@12 + // printf("\n#%lu:\n ",count) + // [305] call printf_str + // [45] phi from print::@12 to printf_str [phi:print::@12->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 + lda #str1 + sta.z printf_str.str+1 + jsr printf_str + // [306] phi from print::@12 to print::@1 [phi:print::@12->print::@1] + // [306] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 + lda #1 + sta.z i + // print::@1 + __b1: + // for(char i=1;i<=QUEENS;++i) + // [307] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z i + cmp #8+1 + bcc __b2 + // [308] phi from print::@1 to print::@3 [phi:print::@1->print::@3] + // [308] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 + lda #1 + sta.z i1 + // print::@3 + __b3: + // for(char i=1;i<=QUEENS;++i) + // [309] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 + lda.z i1 + cmp #8+1 + bcc __b4 + // print::@return + // } + // [310] return + rts + // [311] phi from print::@3 to print::@4 [phi:print::@3->print::@4] + // print::@4 + __b4: + // printf("\n%x",i) + // [312] call printf_str + // [45] phi from print::@4 to printf_str [phi:print::@4->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + // print::@14 + // printf("\n%x",i) + // [313] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 + // [314] call printf_uchar + // [327] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] + // [327] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy + jsr printf_uchar + // [315] phi from print::@14 to print::@5 [phi:print::@14->print::@5] + // [315] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 + lda #1 + sta.z j + // print::@5 + __b5: + // for(char j=1;j<=QUEENS;++j) + // [316] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 + lda.z j + cmp #8+1 + bcc __b6 + // print::@7 + // for(char i=1;i<=QUEENS;++i) + // [317] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 + inc.z i1 + // [308] phi from print::@7 to print::@3 [phi:print::@7->print::@3] + // [308] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy + jmp __b3 + // print::@6 + __b6: + // if(board[i]==j) + // [318] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + ldy.z i1 + lda board,y + cmp.z j + beq __b8 + // [319] phi from print::@6 to print::@10 [phi:print::@6->print::@10] + // print::@10 + // printf("-") + // [320] call printf_str + // [45] phi from print::@10 to printf_str [phi:print::@10->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str + // print::@9 + __b9: + // for(char j=1;j<=QUEENS;++j) + // [321] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 + inc.z j + // [315] phi from print::@9 to print::@5 [phi:print::@9->print::@5] + // [315] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy + jmp __b5 + // [322] phi from print::@6 to print::@8 [phi:print::@6->print::@8] + // print::@8 + __b8: + // printf("Q") + // [323] call printf_str + // [45] phi from print::@8 to printf_str [phi:print::@8->printf_str] + // [45] phi (byte*) printf_str::str#15 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@2 + __b2: + // printf("%x",i) + // [324] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 + // [325] call printf_uchar + // [327] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] + // [327] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy + jsr printf_uchar + // print::@13 + // for(char i=1;i<=QUEENS;++i) + // [326] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 + inc.z i + // [306] phi from print::@13 to print::@1 [phi:print::@13->print::@1] + // [306] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy + jmp __b1 + str: .text @"\n#" + .byte 0 + str1: .text @":\n " + .byte 0 + str2: .text @"\n" + .byte 0 + str3: .text "Q" + .byte 0 + str4: .text "-" + .byte 0 +} + // printf_uchar +// Print an unsigned char using a specific format +// printf_uchar(byte zp($1e) uvalue) +printf_uchar: { + .label uvalue = $1e + // printf_uchar::@1 + // printf_buffer.sign = format.sign_always?'+':0 + // [328] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // uctoa(uvalue, printf_buffer.digits, format.radix) + // [329] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 -- vbuz1=vbuz2 + lda.z uvalue + sta.z uctoa.value + // [330] call uctoa + // Format number into buffer + // [334] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] + jsr uctoa + // printf_uchar::@2 + // printf_number_buffer(printf_buffer, format) + // [331] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // [332] call printf_number_buffer + // Print using format + // [108] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] + // [108] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_upper_case + // [108] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy + // [108] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [108] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + // [108] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + sta.z printf_number_buffer.format_justify_left + // [108] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + // printf_uchar::@return + // } + // [333] return + rts +} + // uctoa +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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($f) value, byte* zp($c) buffer) +uctoa: { + .label digit_value = $23 + .label buffer = $c + .label digit = $e + .label value = $f + .label started = $10 + // [335] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] + // [335] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z buffer+1 + // [335] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 + lda #0 + sta.z started + // [335] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy + // [335] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 + sta.z digit + // uctoa::@1 + __b1: + // for( char digit=0; digit= digit_value) + // [342] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z started + bne __b5 + // uctoa::@7 + // [343] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuz1_ge_vbuz2_then_la1 + lda.z value + cmp.z digit_value + bcs __b5 + // [344] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] + // [344] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy + // [344] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy + // [344] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy + // uctoa::@4 + __b4: + // for( char digit=0; digituctoa::@1] + // [335] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy + // [335] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy + // [335] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy + // [335] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy + jmp __b1 + // uctoa::@5 + __b5: + // uctoa_append(buffer++, value, digit_value) + // [346] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + // [347] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + // [348] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + // [349] call uctoa_append + // [353] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] + jsr uctoa_append + // uctoa_append(buffer++, value, digit_value) + // [350] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + // uctoa::@6 + // value = uctoa_append(buffer++, value, digit_value) + // [351] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + // value = uctoa_append(buffer++, value, digit_value); + // [352] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer + bne !+ + inc.z buffer+1 + !: + // [344] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] + // [344] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy + // [344] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 + lda #1 + sta.z started + // [344] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy + jmp __b4 +} + // uctoa_append +// Used to convert a single digit of an unsigned number value to a string representation +// Counts a single digit up from '0' as long as the value is larger than sub. +// Each time the digit is increased sub is subtracted from value. +// - buffer : pointer to the char that receives the digit +// - value : The value where the digit will be derived from +// - 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($c) buffer, byte zp($f) value, byte zp($23) sub) +uctoa_append: { + .label buffer = $c + .label value = $f + .label sub = $23 + .label return = $f + .label digit = $24 + // [354] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] + // [354] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z digit + // [354] 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) + // [355] 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 + // uctoa_append::@3 + // *buffer = DIGITS[digit] + // [356] *((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 + sta (buffer),y + // uctoa_append::@return + // } + // [357] return + rts + // uctoa_append::@2 + __b2: + // digit++; + // [358] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // value -= sub + // [359] (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 + // [354] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] + // [354] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy + // [354] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy jmp __b1 } // legal // Checks is a placement of the queen on the board is legal. // Checks the passed (row, column) against all queens placed on the board on lower rows. // If no conflict for desired position returns 1 otherwise returns 0 -// legal(byte zp($1b) row, byte zp($1c) column) +// legal(byte zp($21) row, byte zp($22) column) legal: { - .label __0 = $22 - .label __3 = $23 - .label __4 = $1d - .label row = $1b - .label column = $1c + .label __0 = $23 + .label __3 = $24 + .label __4 = $f + .label row = $21 + .label column = $22 // Placement is legal // The same column is a conflict. // The same diagonal is a conflict. - .label return = $f - .label i = $e - // [295] phi from legal to legal::@1 [phi:legal->legal::@1] - // [295] phi (byte) legal::i#2 = (byte) 1 [phi:legal->legal::@1#0] -- vbuz1=vbuc1 + .label return = $e + .label i = $1e + // [361] phi from legal to legal::@1 [phi:legal->legal::@1] + // [361] phi (byte) legal::i#2 = (byte) 1 [phi:legal->legal::@1#0] -- vbuz1=vbuc1 lda #1 sta.z i // legal::@1 __b1: // row-1 - // [296] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuz1=vbuz2_minus_1 + // [362] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuz1=vbuz2_minus_1 ldx.z row dex stx.z __0 // for(char i=1;i<=row-1;++i) - // [297] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 -- vbuz1_le_vbuz2_then_la1 + // [363] if((byte) legal::i#2<=(byte~) legal::$0) goto legal::@2 -- vbuz1_le_vbuz2_then_la1 txa cmp.z i bcs __b2 - // [298] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] - // [298] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuz1=vbuc1 + // [364] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] + // [364] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuz1=vbuc1 lda #1 sta.z return rts - // [298] phi from legal::@2 legal::@6 to legal::@return [phi:legal::@2/legal::@6->legal::@return] + // [364] phi from legal::@2 legal::@6 to legal::@return [phi:legal::@2/legal::@6->legal::@return] __b4: - // [298] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@6->legal::@return#0] -- vbuz1=vbuc1 + // [364] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@6->legal::@return#0] -- vbuz1=vbuc1 lda #0 sta.z return // legal::@return // } - // [299] return + // [365] return rts // legal::@2 __b2: // if(board[i]==column) - // [300] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + // [366] if(*((const byte*) board + (byte) legal::i#2)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 ldy.z i lda board,y cmp.z column beq __b4 // legal::@4 // diff(board[i],column) - // [301] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [367] (byte) diff::a#0 ← *((const byte*) board + (byte) legal::i#2) -- vbuz1=pbuc1_derefidx_vbuz2 lda board,y sta.z diff.a - // [302] (byte) diff::b#0 ← (byte) legal::column#0 -- vbuz1=vbuz2 + // [368] (byte) diff::b#0 ← (byte) legal::column#0 -- vbuz1=vbuz2 lda.z column sta.z diff.b - // [303] call diff - // [313] phi from legal::@4 to diff [phi:legal::@4->diff] - // [313] phi (byte) diff::b#2 = (byte) diff::b#0 [phi:legal::@4->diff#0] -- register_copy - // [313] phi (byte) diff::a#2 = (byte) diff::a#0 [phi:legal::@4->diff#1] -- register_copy + // [369] call diff + // [379] phi from legal::@4 to diff [phi:legal::@4->diff] + // [379] phi (byte) diff::b#2 = (byte) diff::b#0 [phi:legal::@4->diff#0] -- register_copy + // [379] phi (byte) diff::a#2 = (byte) diff::a#0 [phi:legal::@4->diff#1] -- register_copy jsr diff // diff(board[i],column) - // [304] (byte) diff::return#0 ← (byte) diff::return#4 -- vbuz1=vbuz2 + // [370] (byte) diff::return#0 ← (byte) diff::return#4 -- vbuz1=vbuz2 lda.z diff.return_1 sta.z diff.return // legal::@5 - // [305] (byte~) legal::$3 ← (byte) diff::return#0 + // [371] (byte~) legal::$3 ← (byte) diff::return#0 // diff(i,row) - // [306] (byte) diff::a#1 ← (byte) legal::i#2 -- vbuz1=vbuz2 + // [372] (byte) diff::a#1 ← (byte) legal::i#2 -- vbuz1=vbuz2 lda.z i sta.z diff.a - // [307] (byte) diff::b#1 ← (byte) legal::row#0 -- vbuz1=vbuz2 + // [373] (byte) diff::b#1 ← (byte) legal::row#0 -- vbuz1=vbuz2 lda.z row sta.z diff.b - // [308] call diff - // [313] phi from legal::@5 to diff [phi:legal::@5->diff] - // [313] phi (byte) diff::b#2 = (byte) diff::b#1 [phi:legal::@5->diff#0] -- register_copy - // [313] phi (byte) diff::a#2 = (byte) diff::a#1 [phi:legal::@5->diff#1] -- register_copy + // [374] call diff + // [379] phi from legal::@5 to diff [phi:legal::@5->diff] + // [379] phi (byte) diff::b#2 = (byte) diff::b#1 [phi:legal::@5->diff#0] -- register_copy + // [379] phi (byte) diff::a#2 = (byte) diff::a#1 [phi:legal::@5->diff#1] -- register_copy jsr diff // diff(i,row) - // [309] (byte) diff::return#1 ← (byte) diff::return#4 + // [375] (byte) diff::return#1 ← (byte) diff::return#4 // legal::@6 - // [310] (byte~) legal::$4 ← (byte) diff::return#1 + // [376] (byte~) legal::$4 ← (byte) diff::return#1 // if(diff(board[i],column)==diff(i,row)) - // [311] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 -- vbuz1_neq_vbuz2_then_la1 + // [377] if((byte~) legal::$3!=(byte~) legal::$4) goto legal::@3 -- vbuz1_neq_vbuz2_then_la1 lda.z __3 cmp.z __4 bne __b3 @@ -13755,42 +16208,42 @@ legal: { // legal::@3 __b3: // for(char i=1;i<=row-1;++i) - // [312] (byte) legal::i#1 ← ++ (byte) legal::i#2 -- vbuz1=_inc_vbuz1 + // [378] (byte) legal::i#1 ← ++ (byte) legal::i#2 -- vbuz1=_inc_vbuz1 inc.z i - // [295] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] - // [295] phi (byte) legal::i#2 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy + // [361] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] + // [361] phi (byte) legal::i#2 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy jmp __b1 } // diff // Find the absolute difference between two unsigned chars -// diff(byte zp($1d) a, byte zp($18) b) +// diff(byte zp($f) a, byte zp($10) b) diff: { - .label a = $1d - .label b = $18 - .label return = $23 - .label return_1 = $1d + .label a = $f + .label b = $10 + .label return = $24 + .label return_1 = $f // if(adiff::@return] - // [316] phi (byte) diff::return#4 = (byte) diff::return#2 [phi:diff::@1/diff::@2->diff::@return#0] -- register_copy + // [382] phi from diff::@1 diff::@2 to diff::@return [phi:diff::@1/diff::@2->diff::@return] + // [382] phi (byte) diff::return#4 = (byte) diff::return#2 [phi:diff::@1/diff::@2->diff::@return#0] -- register_copy // diff::@return // } - // [317] return + // [383] return rts // diff::@1 __b1: // return b-a; - // [318] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 -- vbuz1=vbuz2_minus_vbuz1 + // [384] (byte) diff::return#2 ← (byte) diff::b#2 - (byte) diff::a#2 -- vbuz1=vbuz2_minus_vbuz1 lda.z b sec sbc.z return_1 @@ -13806,8 +16259,13 @@ diff: { RADIX_DECIMAL_VALUES: .word $2710, $3e8, $64, $a // Values of decimal digits RADIX_DECIMAL_VALUES_LONG: .dword $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a + // The buffer used by tod_str() + tod_buffer: .text "00:00:00:00" + .byte 0 // The board. board[i] holds the column position of the queen on row i. board: .fill $14, 0 // Buffer used for stringified number being printed printf_buffer: .fill SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER, 0 + // Time of Day 00:00:00:00 + TOD_ZERO: .byte 0, 0, 0, 0 diff --git a/src/test/ref/examples/eightqueens/eightqueens-recursive.sym b/src/test/ref/examples/eightqueens/eightqueens-recursive.sym index 751601b68..263f89b0d 100644 --- a/src/test/ref/examples/eightqueens/eightqueens-recursive.sym +++ b/src/test/ref/examples/eightqueens/eightqueens-recursive.sym @@ -3,8 +3,32 @@ (label) @3 (label) @begin (label) @end +(const nomodify struct MOS6526_CIA*) CIA1 = (struct MOS6526_CIA*) 56320 (const byte*) DIGITS[] = (byte*) "0123456789abcdef"z +(byte) MOS6526_CIA::INTERRUPT +(byte) MOS6526_CIA::PORT_A +(byte) MOS6526_CIA::PORT_A_DDR +(byte) MOS6526_CIA::PORT_B +(byte) MOS6526_CIA::PORT_B_DDR +(byte) MOS6526_CIA::SERIAL_DATA +(word) MOS6526_CIA::TIMER_A +(byte) MOS6526_CIA::TIMER_A_CONTROL +(word) MOS6526_CIA::TIMER_B +(byte) MOS6526_CIA::TIMER_B_CONTROL +(byte) MOS6526_CIA::TOD_10THS +(byte) MOS6526_CIA::TOD_HOURS +(byte) MOS6526_CIA::TOD_MIN +(byte) MOS6526_CIA::TOD_SEC +(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = (byte) $e +(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = (byte) $f +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = (byte) 8 +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = (byte) $b +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = (byte) $a +(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = (byte) 9 (const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = (byte) 1 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS = (byte) 3 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN = (byte) 2 +(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC = (byte) 1 (const byte) RADIX::BINARY = (number) 2 (const byte) RADIX::DECIMAL = (number) $a (const byte) RADIX::HEXADECIMAL = (number) $10 @@ -14,30 +38,35 @@ (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR[] = { (byte) $10 } (const byte) SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = (byte) $c (const word) STACK_BASE = (word) $103 +(byte) TIME_OF_DAY::HOURS +(byte) TIME_OF_DAY::MIN +(byte) TIME_OF_DAY::SEC +(byte) TIME_OF_DAY::TENTHS +(struct TIME_OF_DAY) TOD_ZERO loadstore mem[4] = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } (const byte*) board[(number) $14] = { fill( $14, 0) } -(dword) count loadstore zp[4]:20 0.5833333333333333 +(dword) count loadstore zp[4]:2 2.5316455699493675E9 (byte()) diff((byte) diff::a , (byte) diff::b) (label) diff::@1 (label) diff::@2 (label) diff::@return (byte) diff::a -(byte) diff::a#0 a zp[1]:29 1.000000000001E12 -(byte) diff::a#1 a zp[1]:29 1.000000000001E12 -(byte) diff::a#2 a zp[1]:29 1.60000000000025E13 +(byte) diff::a#0 a zp[1]:15 1.000000000001E12 +(byte) diff::a#1 a zp[1]:15 1.000000000001E12 +(byte) diff::a#2 a zp[1]:15 1.60000000000025E13 (byte) diff::b -(byte) diff::b#0 b zp[1]:24 2.000000000002E12 -(byte) diff::b#1 b zp[1]:24 2.000000000002E12 -(byte) diff::b#2 b zp[1]:24 1.60000000000025E13 +(byte) diff::b#0 b zp[1]:16 2.000000000002E12 +(byte) diff::b#1 b zp[1]:16 2.000000000002E12 +(byte) diff::b#2 b zp[1]:16 1.60000000000025E13 (byte) diff::return -(byte) diff::return#0 return zp[1]:35 2.000000000002E12 -(byte) diff::return#1 return_1 zp[1]:29 2.000000000002E12 -(byte) diff::return#2 return_1 zp[1]:29 2.0000000000002E13 -(byte) diff::return#3 return_1 zp[1]:29 2.0000000000002E13 -(byte) diff::return#4 return_1 zp[1]:29 5.500000000001E12 +(byte) diff::return#0 return zp[1]:36 2.000000000002E12 +(byte) diff::return#1 return_1 zp[1]:15 2.000000000002E12 +(byte) diff::return#2 return_1 zp[1]:15 2.0000000000002E13 +(byte) diff::return#3 return_1 zp[1]:15 2.0000000000002E13 +(byte) diff::return#4 return_1 zp[1]:15 5.500000000001E12 (byte()) legal((byte) legal::row , (byte) legal::column) -(byte~) legal::$0 zp[1]:34 2.000000000002E12 -(byte~) legal::$3 zp[1]:35 3.333333333336667E11 -(byte~) legal::$4 zp[1]:29 2.000000000002E12 +(byte~) legal::$0 zp[1]:35 2.000000000002E12 +(byte~) legal::$3 zp[1]:36 3.333333333336667E11 +(byte~) legal::$4 zp[1]:15 2.000000000002E12 (label) legal::@1 (label) legal::@2 (label) legal::@3 @@ -46,24 +75,36 @@ (label) legal::@6 (label) legal::@return (byte) legal::column -(byte) legal::column#0 column zp[1]:28 1.1666666666683334E11 +(byte) legal::column#0 column zp[1]:34 1.1666666666683334E11 (byte) legal::i -(byte) legal::i#1 i zp[1]:14 2.000000000002E12 -(byte) legal::i#2 i zp[1]:14 4.0000000000039996E11 +(byte) legal::i#1 i zp[1]:30 2.000000000002E12 +(byte) legal::i#2 i zp[1]:30 4.0000000000039996E11 (byte) legal::return -(byte) legal::return#0 return zp[1]:15 2.00000000002E11 -(byte) legal::return#4 return zp[1]:15 3.3333333333666668E10 +(byte) legal::return#0 return zp[1]:14 2.00000000002E11 +(byte) legal::return#4 return zp[1]:14 3.3333333333666668E10 (byte) legal::row -(byte) legal::row#0 row zp[1]:27 1.1052631578963158E11 +(byte) legal::row#0 row zp[1]:33 1.1052631578963158E11 (void()) main() (label) main::@1 +(label) main::@10 +(label) main::@11 (label) main::@2 (label) main::@3 (label) main::@4 +(label) main::@5 +(label) main::@6 +(label) main::@7 +(label) main::@8 +(label) main::@9 (label) main::@return (const byte*) main::str[(byte) $29] = (byte*) " - n queens problem using backtracking -" (const byte*) main::str1[(byte) $13] = (byte*) " -Number of queens:" +number of queens:" +(const byte*) main::str2[(byte) $d] = (byte*) " +solutions: " +(const byte*) main::str3[(byte) 8] = (byte*) " time: " +(const byte*) main::str4[(byte) 3] = (byte*) ". +" (void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) (label) memcpy::@1 (label) memcpy::@2 @@ -71,16 +112,16 @@ Number of queens:" (void*) memcpy::destination (const void*) memcpy::destination#0 destination = (void*) 1024 (byte*) memcpy::dst -(byte*) memcpy::dst#1 dst zp[2]:2 1.0E43 -(byte*) memcpy::dst#2 dst zp[2]:2 1.0E43 +(byte*) memcpy::dst#1 dst zp[2]:10 1.0E43 +(byte*) memcpy::dst#2 dst zp[2]:10 1.0E43 (word) memcpy::num (const word) memcpy::num#0 num = (word)(number) $28*(number) $19-(number) $28 (void*) memcpy::return (void*) memcpy::source (const void*) memcpy::source#0 source = (void*)(number) $400+(number) $28 (byte*) memcpy::src -(byte*) memcpy::src#1 src zp[2]:25 2.0E43 -(byte*) memcpy::src#2 src zp[2]:25 1.0E43 +(byte*) memcpy::src#1 src zp[2]:31 2.0E43 +(byte*) memcpy::src#2 src zp[2]:31 1.0E43 (byte*) memcpy::src_end (const byte*) memcpy::src_end#0 src_end = (byte*)(const void*) memcpy::source#0+(const word) memcpy::num#0 (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) @@ -89,18 +130,18 @@ Number of queens:" (label) memset::@3 (label) memset::@return (byte) memset::c -(byte) memset::c#4 c zp[1]:7 1.25E42 +(byte) memset::c#4 c zp[1]:14 1.25E42 (byte*) memset::dst -(byte*) memset::dst#1 dst zp[2]:2 2.0E43 -(byte*) memset::dst#2 dst zp[2]:2 1.3333333333333668E43 -(byte*) memset::dst#4 dst zp[2]:2 2.0E30 +(byte*) memset::dst#1 dst zp[2]:10 2.0E43 +(byte*) memset::dst#2 dst zp[2]:10 1.3333333333333668E43 +(byte*) memset::dst#4 dst zp[2]:10 2.0E30 (byte*) memset::end -(byte*) memset::end#0 end zp[2]:25 1.6666666666668335E42 +(byte*) memset::end#0 end zp[2]:31 1.6666666666668335E42 (word) memset::num -(word) memset::num#2 num zp[2]:25 1.0E30 +(word) memset::num#2 num zp[2]:31 1.0E30 (void*) memset::return (void*) memset::str -(void*) memset::str#3 str zp[2]:2 +(void*) memset::str#3 str zp[2]:10 (void()) print() (label) print::@1 (label) print::@10 @@ -118,14 +159,14 @@ Number of queens:" (label) print::@9 (label) print::@return (byte) print::i -(byte) print::i#1 i zp[1]:14 2.000000000002E12 -(byte) print::i#2 i zp[1]:14 1.000000000001E12 +(byte) print::i#1 i zp[1]:30 2.000000000002E12 +(byte) print::i#2 i zp[1]:30 1.000000000001E12 (byte) print::i1 -(byte) print::i1#1 i1 zp[1]:14 2.000000000002E12 -(byte) print::i1#2 i1 zp[1]:14 1.0000000000003572E12 +(byte) print::i1#1 i1 zp[1]:30 2.000000000002E12 +(byte) print::i1#2 i1 zp[1]:30 1.0000000000003572E12 (byte) print::j -(byte) print::j#1 j zp[1]:35 2.0000000000002E13 -(byte) print::j#2 j zp[1]:35 5.714285714286286E12 +(byte) print::j#1 j zp[1]:29 2.0000000000002E13 +(byte) print::j#2 j zp[1]:29 5.714285714286286E12 (const byte*) print::str[(byte) 3] = (byte*) " #" (const byte*) print::str1[(byte) 4] = (byte*) ": @@ -141,16 +182,16 @@ Number of queens:" (label) printf_char::@1 (label) printf_char::@return (byte) printf_char::ch -(byte) printf_char::ch#0 ch zp[1]:5 2.0E27 -(byte) printf_char::ch#1 ch zp[1]:5 2.0E26 -(byte) printf_char::ch#2 ch zp[1]:5 2.00000000000002E14 -(byte) printf_char::ch#3 ch zp[1]:5 1.11000000000001E28 +(byte) printf_char::ch#0 ch zp[1]:15 2.0E27 +(byte) printf_char::ch#1 ch zp[1]:15 2.0E26 +(byte) printf_char::ch#2 ch zp[1]:15 2.00000000000002E14 +(byte) printf_char::ch#3 ch zp[1]:15 1.11000000000001E28 (void()) printf_cls() (label) printf_cls::@1 (label) printf_cls::@return -(byte*) printf_cursor_ptr loadstore zp[2]:18 1.4683544303797465E27 -(byte) printf_cursor_x loadstore zp[1]:16 2.837837837837838E26 -(byte) printf_cursor_y loadstore zp[1]:17 2.0251572327044023E27 +(byte*) printf_cursor_ptr loadstore zp[2]:19 1.2340425531914892E27 +(byte) printf_cursor_x loadstore zp[1]:17 2.359550561797753E26 +(byte) printf_cursor_y loadstore zp[1]:18 1.7037037037037037E27 (byte) printf_format_number::justify_left (byte) printf_format_number::min_length (byte) printf_format_number::radix @@ -160,11 +201,11 @@ Number of queens:" (byte) printf_format_string::justify_left (byte) printf_format_string::min_length (void()) printf_ln() -(byte*~) printf_ln::$0 zp[2]:18 2.0E27 -(byte*~) printf_ln::$1 zp[2]:18 2.0E27 +(byte*~) printf_ln::$0 zp[2]:19 2.0E27 +(byte*~) printf_ln::$1 zp[2]:19 2.0E27 (label) printf_ln::@return (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_upper_case , (byte) printf_number_buffer::format_radix) -(word~) printf_number_buffer::$19 zp[2]:2 1.00000000000001E14 +(word~) printf_number_buffer::$19 zp[2]:10 1.00000000000001E14 (label) printf_number_buffer::@1 (label) printf_number_buffer::@10 (label) printf_number_buffer::@11 @@ -191,45 +232,45 @@ Number of queens:" (byte*) printf_number_buffer::buffer_digits (byte*) printf_number_buffer::buffer_digits#10 buffer_digits zp[2]:12 1.0344827586207E13 (byte) printf_number_buffer::buffer_sign -(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:35 202.0 -(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:35 202.0 -(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:35 1.55000000000103E13 -(byte) printf_number_buffer::buffer_sign#2 buffer_sign zp[1]:35 2.0000000000002E13 +(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:22 202.0 +(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:22 202.0 +(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:22 1.55000000000103E13 +(byte) printf_number_buffer::buffer_sign#2 buffer_sign zp[1]:22 2.0000000000002E13 (struct printf_format_number) printf_number_buffer::format (byte) printf_number_buffer::format_justify_left -(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:29 6.451612903225871E12 +(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:36 6.451612903225871E12 (byte) printf_number_buffer::format_min_length -(byte) printf_number_buffer::format_min_length#3 format_min_length zp[1]:15 1.00000000000001E13 +(byte) printf_number_buffer::format_min_length#3 format_min_length zp[1]:16 1.00000000000001E13 (byte) printf_number_buffer::format_radix (byte) printf_number_buffer::format_sign_always (byte) printf_number_buffer::format_upper_case -(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:34 3.846153846153885E12 +(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:23 3.846153846153885E12 (byte) printf_number_buffer::format_zero_padding -(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:24 9.375000000000094E12 +(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:21 9.375000000000094E12 (signed byte) printf_number_buffer::len -(signed byte) printf_number_buffer::len#0 len zp[1]:4 1.500000000000015E14 -(signed byte) printf_number_buffer::len#1 len zp[1]:4 2.00000000000002E14 -(signed byte) printf_number_buffer::len#2 len zp[1]:4 3.00000000000003E14 +(signed byte) printf_number_buffer::len#0 len zp[1]:14 1.500000000000015E14 +(signed byte) printf_number_buffer::len#1 len zp[1]:14 2.00000000000002E14 +(signed byte) printf_number_buffer::len#2 len zp[1]:14 3.00000000000003E14 (signed byte) printf_number_buffer::padding -(signed byte) printf_number_buffer::padding#1 padding zp[1]:15 1.00000000000001E14 -(signed byte) printf_number_buffer::padding#10 padding zp[1]:15 1.904761904761924E13 +(signed byte) printf_number_buffer::padding#1 padding zp[1]:16 1.00000000000001E14 +(signed byte) printf_number_buffer::padding#10 padding zp[1]:16 1.904761904761924E13 (void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) (label) printf_padding::@1 (label) printf_padding::@2 (label) printf_padding::@3 (label) printf_padding::@return (byte) printf_padding::i -(byte) printf_padding::i#1 i zp[1]:6 2.0E27 -(byte) printf_padding::i#2 i zp[1]:6 7.500000000000001E26 +(byte) printf_padding::i#1 i zp[1]:29 2.0E27 +(byte) printf_padding::i#2 i zp[1]:29 7.500000000000001E26 (byte) printf_padding::length -(byte) printf_padding::length#0 length zp[1]:4 2.00000000000002E14 -(byte) printf_padding::length#1 length zp[1]:4 2.00000000000002E14 -(byte) printf_padding::length#2 length zp[1]:4 2.00000000000002E14 -(byte) printf_padding::length#4 length zp[1]:4 1.6666666666671665E26 +(byte) printf_padding::length#0 length zp[1]:24 2.00000000000002E14 +(byte) printf_padding::length#1 length zp[1]:24 2.00000000000002E14 +(byte) printf_padding::length#2 length zp[1]:24 2.00000000000002E14 +(byte) printf_padding::length#6 length zp[1]:24 1.6666666666671665E26 (byte) printf_padding::pad -(byte) printf_padding::pad#5 pad zp[1]:5 1.6666666666666666E26 +(byte) printf_padding::pad#7 pad zp[1]:15 1.6666666666666666E26 (void()) printf_scroll() -(byte*~) printf_scroll::$4 zp[2]:18 2.0E29 +(byte*~) printf_scroll::$4 zp[2]:19 2.0E29 (label) printf_scroll::@1 (label) printf_scroll::@2 (label) printf_scroll::@3 @@ -242,12 +283,21 @@ Number of queens:" (label) printf_str::@5 (label) printf_str::@return (byte) printf_str::ch -(byte) printf_str::ch#0 ch zp[1]:5 1.0E26 +(byte) printf_str::ch#0 ch zp[1]:15 1.0E26 (byte*) printf_str::str (byte*) printf_str::str#0 str zp[2]:12 4.285714285714285E25 (byte*) printf_str::str#1 str zp[2]:12 2.00000000000002E14 -(byte*) printf_str::str#10 str zp[2]:12 2.000000000005E26 -(byte*) printf_str::str#11 str zp[2]:12 1.100000000000002E15 +(byte*) printf_str::str#13 str zp[2]:12 2.000000000005E26 +(byte*) printf_str::str#15 str zp[2]:12 1.100000000000002E15 +(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) +(label) printf_string::@1 +(label) printf_string::@return +(struct printf_format_string) printf_string::format +(byte) printf_string::format_justify_left +(byte) printf_string::format_min_length +(signed byte) printf_string::len +(signed byte) printf_string::padding +(byte*) printf_string::str (void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) (label) printf_uchar::@1 (label) printf_uchar::@2 @@ -260,9 +310,9 @@ Number of queens:" (byte) printf_uchar::format_upper_case (byte) printf_uchar::format_zero_padding (byte) printf_uchar::uvalue -(byte) printf_uchar::uvalue#0 uvalue zp[1]:14 2.000000000002E12 -(byte) printf_uchar::uvalue#1 uvalue zp[1]:14 2.000000000002E12 -(byte) printf_uchar::uvalue#2 uvalue zp[1]:14 6.0000000000015E12 +(byte) printf_uchar::uvalue#0 uvalue zp[1]:30 2.000000000002E12 +(byte) printf_uchar::uvalue#1 uvalue zp[1]:30 2.000000000002E12 +(byte) printf_uchar::uvalue#2 uvalue zp[1]:30 6.0000000000015E12 (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_upper_case , (byte) printf_uint::format_radix) (label) printf_uint::@1 (label) printf_uint::@2 @@ -286,20 +336,18 @@ Number of queens:" (label) printf_ulong::@return (struct printf_format_number) printf_ulong::format (byte) printf_ulong::format_justify_left -(const byte) printf_ulong::format_justify_left#0 format_justify_left = (byte) 0 (byte) printf_ulong::format_min_length -(const byte) printf_ulong::format_min_length#0 format_min_length = (byte) 0 (byte) printf_ulong::format_radix (byte) printf_ulong::format_sign_always (byte) printf_ulong::format_upper_case -(const byte) printf_ulong::format_upper_case#0 format_upper_case = (byte) 0 (byte) printf_ulong::format_zero_padding -(const byte) printf_ulong::format_zero_padding#0 format_zero_padding = (byte) 0 (dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 uvalue zp[4]:8 37.33333333333333 +(dword) printf_ulong::uvalue#0 uvalue zp[4]:2 22.0 +(dword) printf_ulong::uvalue#1 uvalue zp[4]:2 22.0 +(dword) printf_ulong::uvalue#2 uvalue zp[4]:2 61.5 __stackcall (void()) queen((byte) queen::row) -(byte~) queen::$1 zp[1]:15 2.00000000002E11 -(byte~) queen::$4 zp[1]:27 2.00000000002E11 +(byte~) queen::$1 zp[1]:14 2.00000000002E11 +(byte~) queen::$4 zp[1]:33 2.00000000002E11 (label) queen::@1 (label) queen::@2 (label) queen::@3 @@ -309,45 +357,108 @@ __stackcall (void()) queen((byte) queen::row) (label) queen::@7 (label) queen::@return (const byte) queen::OFFSET_STACK_ROW = (byte) 0 -(byte) queen::column loadstore zp[1]:28 2.9411764706823532E10 -(byte) queen::r loadstore zp[1]:27 2.1052631579736843E10 +(byte) queen::column loadstore zp[1]:34 2.9411764706823532E10 +(byte) queen::r loadstore zp[1]:33 2.1052631579736843E10 (byte) queen::row -(byte) queen::row#0 row zp[1]:27 22.0 +(byte) queen::row#0 row zp[1]:33 22.0 (word()) strlen((byte*) strlen::str) (label) strlen::@1 (label) strlen::@2 (label) strlen::@return (word) strlen::len -(word) strlen::len#1 len zp[2]:2 1.0E27 -(word) strlen::len#2 len zp[2]:2 5.00000000000025E26 +(word) strlen::len#1 len zp[2]:10 1.0E27 +(word) strlen::len#2 len zp[2]:10 5.00000000000025E26 (word) strlen::return -(word) strlen::return#2 return zp[2]:2 2.00000000000002E14 +(word) strlen::return#2 return zp[2]:10 2.00000000000002E14 (byte*) strlen::str -(byte*) strlen::str#0 str zp[2]:25 2.0E27 -(byte*) strlen::str#1 str zp[2]:25 5.50000000000001E14 -(byte*) strlen::str#2 str zp[2]:25 1.0000000000003332E27 +(byte*) strlen::str#0 str zp[2]:31 2.0E27 +(byte*) strlen::str#1 str zp[2]:31 5.50000000000001E14 +(byte*) strlen::str#3 str zp[2]:31 1.0000000000003332E27 (byte*()) strupr((byte*) strupr::str) -(byte~) strupr::$0 zp[1]:4 2.0E27 +(byte~) strupr::$0 zp[1]:15 2.0E27 (label) strupr::@1 (label) strupr::@2 (label) strupr::@3 (label) strupr::@return (byte*) strupr::return (byte*) strupr::src -(byte*) strupr::src#1 src zp[2]:25 2.0E27 -(byte*) strupr::src#2 src zp[2]:25 7.142857142858572E26 +(byte*) strupr::src#1 src zp[2]:31 2.0E27 +(byte*) strupr::src#2 src zp[2]:31 7.142857142858572E26 (byte*) strupr::str -(byte*) strupr::str#0 str zp[2]:25 5.50000000000001E14 +(byte*) strupr::str#0 str zp[2]:31 5.50000000000001E14 +(const byte*) tod_buffer[] = (byte*) "00:00:00:00" +(void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) +(label) tod_init::@return +(struct TIME_OF_DAY) tod_init::tod +(byte) tod_init::tod_HOURS +(byte) tod_init::tod_HOURS#0 tod_HOURS zp[1]:23 37.33333333333333 +(byte) tod_init::tod_MIN +(byte) tod_init::tod_MIN#0 tod_MIN zp[1]:22 22.4 +(byte) tod_init::tod_SEC +(byte) tod_init::tod_SEC#0 tod_SEC zp[1]:21 16.0 +(byte) tod_init::tod_TENTHS +(byte) tod_init::tod_TENTHS#0 tod_TENTHS zp[1]:36 12.444444444444443 +(struct TIME_OF_DAY()) tod_read() +(label) tod_read::@return +(byte) tod_read::hours +(byte) tod_read::mins +(struct TIME_OF_DAY) tod_read::return +(byte) tod_read::return_HOURS +(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:24 12.444444444444443 +(byte) tod_read::return_HOURS#2 return_HOURS zp[1]:24 5.5 +(byte) tod_read::return_MIN +(byte) tod_read::return_MIN#0 return_MIN zp[1]:23 16.0 +(byte) tod_read::return_MIN#2 return_MIN zp[1]:23 5.5 +(byte) tod_read::return_SEC +(byte) tod_read::return_SEC#0 return_SEC zp[1]:22 22.4 +(byte) tod_read::return_SEC#2 return_SEC zp[1]:22 5.5 +(byte) tod_read::return_TENTHS +(byte) tod_read::return_TENTHS#0 return_TENTHS zp[1]:21 37.33333333333333 +(byte) tod_read::return_TENTHS#2 return_TENTHS zp[1]:21 5.5 +(byte) tod_read::secs +(byte) tod_read::tenths +(byte) tod_read::tod_HOURS +(byte) tod_read::tod_MIN +(byte) tod_read::tod_SEC +(byte) tod_read::tod_TENTHS +(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) +(byte~) tod_str::$0 zp[1]:35 202.0 +(byte~) tod_str::$1 zp[1]:35 202.0 +(byte~) tod_str::$10 zp[1]:22 202.0 +(byte~) tod_str::$11 zp[1]:22 202.0 +(byte~) tod_str::$12 zp[1]:33 202.0 +(byte~) tod_str::$13 zp[1]:33 202.0 +(byte~) tod_str::$14 zp[1]:21 202.0 +(byte~) tod_str::$15 zp[1]:21 202.0 +(byte~) tod_str::$2 zp[1]:24 202.0 +(byte~) tod_str::$3 zp[1]:24 202.0 +(byte~) tod_str::$4 zp[1]:29 202.0 +(byte~) tod_str::$5 zp[1]:29 202.0 +(byte~) tod_str::$6 zp[1]:23 202.0 +(byte~) tod_str::$7 zp[1]:23 202.0 +(byte~) tod_str::$8 zp[1]:30 202.0 +(byte~) tod_str::$9 zp[1]:30 202.0 +(label) tod_str::@return +(byte*) tod_str::return +(struct TIME_OF_DAY) tod_str::tod +(byte) tod_str::tod_HOURS +(byte) tod_str::tod_HOURS#0 tod_HOURS zp[1]:24 53.25 +(byte) tod_str::tod_MIN +(byte) tod_str::tod_MIN#0 tod_MIN zp[1]:23 19.363636363636363 +(byte) tod_str::tod_SEC +(byte) tod_str::tod_SEC#0 tod_SEC zp[1]:22 11.833333333333332 +(byte) tod_str::tod_TENTHS +(byte) tod_str::tod_TENTHS#0 tod_TENTHS zp[1]:21 8.52 (byte()) toupper((byte) toupper::ch) (label) toupper::@1 (label) toupper::@2 (label) toupper::@return (byte) toupper::ch -(byte) toupper::ch#0 ch zp[1]:4 1.6999999999999998E28 +(byte) toupper::ch#0 ch zp[1]:15 1.6999999999999998E28 (byte) toupper::return -(byte) toupper::return#0 return zp[1]:4 2.0E28 -(byte) toupper::return#2 return zp[1]:4 1.0333333333333333E28 -(byte) toupper::return#3 return zp[1]:4 2.0E27 +(byte) toupper::return#0 return zp[1]:15 2.0E28 +(byte) toupper::return#2 return zp[1]:15 1.0333333333333333E28 +(byte) toupper::return#3 return zp[1]:15 2.0E27 (void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) (label) uctoa::@1 (label) uctoa::@2 @@ -363,21 +474,21 @@ __stackcall (void()) queen((byte) queen::row) (byte*) uctoa::buffer#3 buffer zp[2]:12 2.00000000000002E14 (byte*) uctoa::buffer#4 buffer zp[2]:12 2.0E26 (byte) uctoa::digit -(byte) uctoa::digit#1 digit zp[1]:34 2.0E26 -(byte) uctoa::digit#2 digit zp[1]:34 3.076923076923077E25 +(byte) uctoa::digit#1 digit zp[1]:14 2.0E26 +(byte) uctoa::digit#2 digit zp[1]:14 3.076923076923077E25 (byte) uctoa::digit_value -(byte) uctoa::digit_value#0 digit_value zp[1]:29 6.000000000000001E25 +(byte) uctoa::digit_value#0 digit_value zp[1]:35 6.000000000000001E25 (byte*) uctoa::digit_values (byte) uctoa::max_digits (byte) uctoa::radix (byte) uctoa::started -(byte) uctoa::started#2 started zp[1]:5 6.000000000000001E25 -(byte) uctoa::started#4 started zp[1]:5 1.0E26 +(byte) uctoa::started#2 started zp[1]:16 6.000000000000001E25 +(byte) uctoa::started#4 started zp[1]:16 1.0E26 (byte) uctoa::value -(byte) uctoa::value#0 value zp[1]:4 1.0E26 -(byte) uctoa::value#1 value zp[1]:4 5.5000000000001E13 -(byte) uctoa::value#2 value zp[1]:4 6.666666666670001E25 -(byte) uctoa::value#6 value zp[1]:4 1.5000000000000002E26 +(byte) uctoa::value#0 value zp[1]:15 1.0E26 +(byte) uctoa::value#1 value zp[1]:15 5.5000000000001E13 +(byte) uctoa::value#2 value zp[1]:15 6.666666666670001E25 +(byte) uctoa::value#6 value zp[1]:15 1.5000000000000002E26 (byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) (label) uctoa_append::@1 (label) uctoa_append::@2 @@ -386,19 +497,19 @@ __stackcall (void()) queen((byte) queen::row) (byte*) uctoa_append::buffer (byte*) uctoa_append::buffer#0 buffer zp[2]:12 1.3750000000000001E26 (byte) uctoa_append::digit -(byte) uctoa_append::digit#1 digit zp[1]:6 1.0E40 -(byte) uctoa_append::digit#2 digit zp[1]:6 1.00000000000005E40 +(byte) uctoa_append::digit#1 digit zp[1]:36 1.0E40 +(byte) uctoa_append::digit#2 digit zp[1]:36 1.00000000000005E40 (byte) uctoa_append::return -(byte) uctoa_append::return#0 return zp[1]:4 2.0E26 +(byte) uctoa_append::return#0 return zp[1]:15 2.0E26 (byte) uctoa_append::sub -(byte) uctoa_append::sub#0 sub zp[1]:29 3.33333333333335E39 +(byte) uctoa_append::sub#0 sub zp[1]:35 3.33333333333335E39 (byte) uctoa_append::value -(byte) uctoa_append::value#0 value zp[1]:4 3.666666666666667E26 -(byte) uctoa_append::value#1 value zp[1]:4 2.0E40 -(byte) uctoa_append::value#2 value zp[1]:4 5.0000000000001833E39 +(byte) uctoa_append::value#0 value zp[1]:15 3.666666666666667E26 +(byte) uctoa_append::value#1 value zp[1]:15 2.0E40 +(byte) uctoa_append::value#2 value zp[1]:15 5.0000000000001833E39 (void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) -(byte~) ultoa::$10 zp[1]:34 2.00000000000002E14 -(byte~) ultoa::$11 zp[1]:29 2002.0 +(byte~) ultoa::$10 zp[1]:35 2.00000000000002E14 +(byte~) ultoa::$11 zp[1]:24 2002.0 (label) ultoa::@1 (label) ultoa::@2 (label) ultoa::@3 @@ -413,22 +524,21 @@ __stackcall (void()) queen((byte) queen::row) (byte*) ultoa::buffer#3 buffer zp[2]:12 2002.0 (byte*) ultoa::buffer#4 buffer zp[2]:12 2.00000000000002E14 (byte) ultoa::digit -(byte) ultoa::digit#1 digit zp[1]:7 2.00000000000002E14 -(byte) ultoa::digit#2 digit zp[1]:7 2.8571428571428855E13 +(byte) ultoa::digit#1 digit zp[1]:16 2.00000000000002E14 +(byte) ultoa::digit#2 digit zp[1]:16 2.8571428571428855E13 (dword) ultoa::digit_value -(dword) ultoa::digit_value#0 digit_value zp[4]:30 6.000000000000059E13 +(dword) ultoa::digit_value#0 digit_value zp[4]:25 6.000000000000059E13 (dword*) ultoa::digit_values (byte) ultoa::max_digits -(const byte) ultoa::max_digits#1 max_digits = (byte) $a (byte) ultoa::radix (byte) ultoa::started -(byte) ultoa::started#2 started zp[1]:15 5.00000000000005E13 -(byte) ultoa::started#4 started zp[1]:15 1.00000000000001E14 +(byte) ultoa::started#2 started zp[1]:36 5.00000000000005E13 +(byte) ultoa::started#4 started zp[1]:36 1.00000000000001E14 (dword) ultoa::value -(dword) ultoa::value#0 value zp[4]:8 1.00000000000001E14 -(dword) ultoa::value#1 value zp[4]:8 551.0 -(dword) ultoa::value#2 value zp[4]:8 5.714285714300071E13 -(dword) ultoa::value#6 value zp[4]:8 1.500000000000015E14 +(dword) ultoa::value#0 value zp[4]:6 1.00000000000001E14 +(dword) ultoa::value#1 value zp[4]:6 551.0 +(dword) ultoa::value#2 value zp[4]:6 5.714285714300071E13 +(dword) ultoa::value#6 value zp[4]:6 1.500000000000015E14 (dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) (label) ultoa_append::@1 (label) ultoa_append::@2 @@ -437,19 +547,19 @@ __stackcall (void()) queen((byte) queen::row) (byte*) ultoa_append::buffer (byte*) ultoa_append::buffer#0 buffer zp[2]:12 1.3750000000000025E14 (byte) ultoa_append::digit -(byte) ultoa_append::digit#1 digit zp[1]:29 1.0E27 -(byte) ultoa_append::digit#2 digit zp[1]:29 1.0000000000005E27 +(byte) ultoa_append::digit#1 digit zp[1]:21 1.0E27 +(byte) ultoa_append::digit#2 digit zp[1]:21 1.0000000000005E27 (dword) ultoa_append::return -(dword) ultoa_append::return#0 return zp[4]:8 2.00000000000002E14 +(dword) ultoa_append::return#0 return zp[4]:6 2.00000000000002E14 (dword) ultoa_append::sub -(dword) ultoa_append::sub#0 sub zp[4]:30 3.3333333333335E26 +(dword) ultoa_append::sub#0 sub zp[4]:25 3.3333333333335E26 (dword) ultoa_append::value -(dword) ultoa_append::value#0 value zp[4]:8 3.666666666666674E14 -(dword) ultoa_append::value#1 value zp[4]:8 2.0E27 -(dword) ultoa_append::value#2 value zp[4]:8 5.0000000000018335E26 +(dword) ultoa_append::value#0 value zp[4]:6 3.666666666666674E14 +(dword) ultoa_append::value#1 value zp[4]:6 2.0E27 +(dword) ultoa_append::value#2 value zp[4]:6 5.0000000000018335E26 (void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) -(byte~) utoa::$10 zp[1]:27 20002.0 -(byte~) utoa::$11 zp[1]:24 2002.0 +(byte~) utoa::$10 zp[1]:30 20002.0 +(byte~) utoa::$11 zp[1]:29 2002.0 (label) utoa::@1 (label) utoa::@2 (label) utoa::@3 @@ -459,64 +569,66 @@ __stackcall (void()) queen((byte) queen::row) (label) utoa::@7 (label) utoa::@return (byte*) utoa::buffer -(byte*) utoa::buffer#11 buffer zp[2]:2 3000.4285714285716 -(byte*) utoa::buffer#14 buffer zp[2]:2 15001.5 -(byte*) utoa::buffer#3 buffer zp[2]:2 2002.0 -(byte*) utoa::buffer#4 buffer zp[2]:2 20002.0 +(byte*) utoa::buffer#11 buffer zp[2]:12 3000.4285714285716 +(byte*) utoa::buffer#14 buffer zp[2]:12 15001.5 +(byte*) utoa::buffer#3 buffer zp[2]:12 2002.0 +(byte*) utoa::buffer#4 buffer zp[2]:12 20002.0 (byte) utoa::digit -(byte) utoa::digit#1 digit zp[1]:15 20002.0 -(byte) utoa::digit#2 digit zp[1]:15 2857.4285714285716 +(byte) utoa::digit#1 digit zp[1]:22 20002.0 +(byte) utoa::digit#2 digit zp[1]:22 2857.4285714285716 (word) utoa::digit_value -(word) utoa::digit_value#0 digit_value zp[2]:25 6000.6 +(word) utoa::digit_value#0 digit_value zp[2]:31 6000.6 (word*) utoa::digit_values (byte) utoa::max_digits (const byte) utoa::max_digits#1 max_digits = (byte) 5 (byte) utoa::radix (byte) utoa::started -(byte) utoa::started#2 started zp[1]:29 5000.5 -(byte) utoa::started#4 started zp[1]:29 10001.0 +(byte) utoa::started#2 started zp[1]:23 5000.5 +(byte) utoa::started#4 started zp[1]:23 10001.0 (word) utoa::value -(word) utoa::value#0 value zp[2]:12 10001.0 -(word) utoa::value#2 value zp[2]:12 5714.857142857143 -(word) utoa::value#6 value zp[2]:12 15001.5 +(word) utoa::value#0 value zp[2]:10 10001.0 +(word) utoa::value#2 value zp[2]:10 5714.857142857143 +(word) utoa::value#6 value zp[2]:10 15001.5 (word()) utoa_append((byte*) utoa_append::buffer , (word) utoa_append::value , (word) utoa_append::sub) (label) utoa_append::@1 (label) utoa_append::@2 (label) utoa_append::@3 (label) utoa_append::@return (byte*) utoa_append::buffer -(byte*) utoa_append::buffer#0 buffer zp[2]:2 13750.25 +(byte*) utoa_append::buffer#0 buffer zp[2]:12 13750.25 (byte) utoa_append::digit (byte) utoa_append::digit#1 digit zp[1]:24 1.0000001E7 (byte) utoa_append::digit#2 digit zp[1]:24 1.00500015E7 (word) utoa_append::return -(word) utoa_append::return#0 return zp[2]:12 20002.0 +(word) utoa_append::return#0 return zp[2]:10 20002.0 (word) utoa_append::sub -(word) utoa_append::sub#0 sub zp[2]:25 3335000.5 +(word) utoa_append::sub#0 sub zp[2]:31 3335000.5 (word) utoa_append::value -(word) utoa_append::value#0 value zp[2]:12 36667.33333333333 -(word) utoa_append::value#1 value zp[2]:12 2.0000002E7 -(word) utoa_append::value#2 value zp[2]:12 5018334.166666666 +(word) utoa_append::value#0 value zp[2]:10 36667.33333333333 +(word) utoa_append::value#1 value zp[2]:10 2.0000002E7 +(word) utoa_append::value#2 value zp[2]:10 5018334.166666666 -zp[2]:2 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] -zp[1]:4 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -zp[1]:5 [ uctoa::started#2 uctoa::started#4 printf_padding::pad#5 printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_str::ch#0 ] -zp[1]:6 [ uctoa_append::digit#2 uctoa_append::digit#1 printf_padding::i#2 printf_padding::i#1 ] -zp[1]:7 [ ultoa::digit#2 ultoa::digit#1 memset::c#4 ] -zp[4]:8 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 printf_ulong::uvalue#0 ultoa_append::return#0 ] -zp[2]:12 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 printf_number_buffer::buffer_digits#10 printf_str::str#10 printf_str::str#11 printf_str::str#1 printf_str::str#0 ] -zp[1]:14 [ legal::i#2 legal::i#1 print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 print::i1#2 print::i1#1 ] -zp[1]:15 [ legal::return#4 legal::return#0 queen::$1 ultoa::started#2 ultoa::started#4 utoa::digit#2 utoa::digit#1 printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -zp[1]:16 [ printf_cursor_x ] -zp[1]:17 [ printf_cursor_y ] -zp[2]:18 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] -zp[4]:20 [ count ] -zp[1]:24 [ utoa::$11 diff::b#2 diff::b#0 diff::b#1 utoa_append::digit#2 utoa_append::digit#1 printf_number_buffer::format_zero_padding#10 ] -zp[2]:25 [ utoa::digit_value#0 utoa_append::sub#0 strlen::str#2 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] -zp[1]:27 [ queen::row#0 queen::r legal::row#0 queen::$4 utoa::$10 ] -zp[1]:28 [ queen::column legal::column#0 ] -zp[1]:29 [ ultoa::$11 uctoa::digit_value#0 uctoa_append::sub#0 diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 ultoa_append::digit#2 ultoa_append::digit#1 utoa::started#2 utoa::started#4 printf_number_buffer::format_justify_left#10 ] -zp[4]:30 [ ultoa::digit_value#0 ultoa_append::sub#0 ] -zp[1]:34 [ legal::$0 ultoa::$10 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_upper_case#10 ] -zp[1]:35 [ diff::return#0 legal::$3 print::j#2 print::j#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +zp[4]:2 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 count ] +zp[4]:6 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ] +zp[2]:10 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:12 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] +zp[1]:14 [ legal::return#4 legal::return#0 queen::$1 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 memset::c#4 ] +zp[1]:15 [ diff::a#2 diff::a#0 diff::a#1 diff::return#4 diff::return#2 diff::return#3 diff::return#1 legal::$4 uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 uctoa_append::return#0 toupper::return#2 toupper::return#0 toupper::ch#0 toupper::return#3 strupr::$0 printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 printf_padding::pad#7 printf_str::ch#0 ] +zp[1]:16 [ diff::b#2 diff::b#0 diff::b#1 uctoa::started#2 uctoa::started#4 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_min_length#3 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +zp[1]:17 [ printf_cursor_x ] +zp[1]:18 [ printf_cursor_y ] +zp[2]:19 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] +zp[1]:21 [ tod_read::return_TENTHS#2 tod_str::tod_TENTHS#0 tod_read::return_TENTHS#0 tod_str::$14 tod_str::$15 tod_init::tod_SEC#0 ultoa_append::digit#2 ultoa_append::digit#1 printf_number_buffer::format_zero_padding#10 ] +zp[1]:22 [ tod_read::return_SEC#2 tod_str::tod_SEC#0 tod_read::return_SEC#0 tod_str::$10 tod_str::$11 tod_init::tod_MIN#0 utoa::digit#2 utoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +zp[1]:23 [ tod_read::return_MIN#2 tod_str::tod_MIN#0 tod_read::return_MIN#0 tod_str::$6 tod_str::$7 tod_init::tod_HOURS#0 utoa::started#2 utoa::started#4 printf_number_buffer::format_upper_case#10 ] +zp[1]:24 [ ultoa::$11 tod_read::return_HOURS#2 tod_str::tod_HOURS#0 tod_read::return_HOURS#0 tod_str::$2 tod_str::$3 utoa_append::digit#2 utoa_append::digit#1 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +zp[4]:25 [ ultoa::digit_value#0 ultoa_append::sub#0 ] +zp[1]:29 [ utoa::$11 tod_str::$4 tod_str::$5 print::j#2 print::j#1 printf_padding::i#2 printf_padding::i#1 ] +zp[1]:30 [ utoa::$10 tod_str::$8 tod_str::$9 legal::i#2 legal::i#1 print::i#2 print::i#1 printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 print::i1#2 print::i1#1 ] +zp[2]:31 [ utoa::digit_value#0 utoa_append::sub#0 strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] +zp[1]:33 [ queen::row#0 queen::r legal::row#0 queen::$4 tod_str::$12 tod_str::$13 ] +zp[1]:34 [ queen::column legal::column#0 ] +zp[1]:35 [ legal::$0 uctoa::digit_value#0 uctoa_append::sub#0 tod_str::$0 tod_str::$1 ultoa::$10 ] +zp[1]:36 [ diff::return#0 legal::$3 tod_init::tod_TENTHS#0 uctoa_append::digit#2 uctoa_append::digit#1 ultoa::started#2 ultoa::started#4 printf_number_buffer::format_justify_left#10 ] mem[12] [ printf_buffer ] +mem[4] [ TOD_ZERO ] diff --git a/src/test/ref/examples/eightqueens/eightqueens.asm b/src/test/ref/examples/eightqueens/eightqueens.asm index ea38a4245..cf4e213af 100644 --- a/src/test/ref/examples/eightqueens/eightqueens.asm +++ b/src/test/ref/examples/eightqueens/eightqueens.asm @@ -19,9 +19,9 @@ .const OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 .const OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - .label printf_cursor_x = $11 - .label printf_cursor_y = $12 - .label printf_cursor_ptr = $13 + .label printf_cursor_x = $12 + .label printf_cursor_y = $13 + .label printf_cursor_ptr = $14 // The number of found solutions .label count = 2 __bbegin: @@ -41,7 +41,6 @@ __bbegin: jsr main rts main: { - .label tod_MIN = $17 // printf_cls() jsr printf_cls // printf(" - n queens problem using backtracking -") @@ -71,48 +70,53 @@ main: { // tod_read() jsr tod_read sta.z tod_read.return_MIN - // tod = tod_read() lda.z tod_read.return_HOURS - // tod_str(tod) + // tod_str(tod_read()) sty.z tod_str.tod_TENTHS stx.z tod_str.tod_SEC - ldy.z tod_MIN + ldy.z tod_read.return_MIN tax jsr tod_str - // printf("\ntime: %s",tod_str(tod)) + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) lda #str2 sta.z printf_str.str+1 jsr printf_str - // printf("\ntime: %s",tod_str(tod)) + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + jsr printf_ulong + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) jsr printf_string + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + lda #str4 + sta.z printf_str.str+1 + jsr printf_str // } rts str: .text " - n queens problem using backtracking -" .byte 0 str1: .text @"\nnumber of queens:" .byte 0 - str2: .text @"\ntime: " + str2: .text @"\nsolutions: " + .byte 0 + str3: .text " time: " + .byte 0 + str4: .text @".\n" .byte 0 -} -// Print a string value using a specific format -// Handles justification and min length -printf_string: { - // printf_str(str) - lda #tod_buffer - sta.z printf_str.str+1 - jsr printf_str - // } - rts } // Print a zero-terminated string // Handles escape codes such as newline -// printf_str(byte* zp($d) str) +// printf_str(byte* zp($e) str) printf_str: { - .label str = $d + .label str = $e __b2: // ch = *str++ ldy #0 @@ -140,8 +144,8 @@ printf_str: { } // Print a newline printf_ln: { - .label __0 = $13 - .label __1 = $13 + .label __0 = $14 + .label __1 = $14 // printf_cursor_ptr - printf_cursor_x sec lda.z __0 @@ -171,7 +175,7 @@ printf_ln: { } // Scroll the entire screen if the cursor is on the last line printf_scroll: { - .label __4 = $13 + .label __4 = $14 // if(printf_cursor_y==PRINTF_SCREEN_HEIGHT) lda #$19 cmp.z printf_cursor_y @@ -205,11 +209,11 @@ printf_scroll: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($21) str, byte register(X) c, word zp($f) num) +// memset(void* zp($21) str, byte register(X) c, word zp($10) num) memset: { - .label end = $f + .label end = $10 .label dst = $21 - .label num = $f + .label num = $10 .label str = $21 // if(num>0) lda.z num @@ -256,7 +260,7 @@ memcpy: { .const num = $28*$19-$28 .label src_end = source+num .label dst = $21 - .label src = $f + .label src = $10 lda #destination @@ -319,6 +323,421 @@ printf_char: { // } rts } +// Print a string value using a specific format +// Handles justification and min length +printf_string: { + // printf_str(str) + lda #tod_buffer + sta.z printf_str.str+1 + jsr printf_str + // } + rts +} +// Print an unsigned int using a specific format +// printf_ulong(dword zp(2) uvalue) +printf_ulong: { + .label uvalue = 2 + // printf_buffer.sign = format.sign_always?'+':0 + // Handle any sign + lda #0 + sta printf_buffer + // ultoa(uvalue, printf_buffer.digits, format.radix) + lda.z uvalue + sta.z ultoa.value + lda.z uvalue+1 + sta.z ultoa.value+1 + lda.z uvalue+2 + sta.z ultoa.value+2 + lda.z uvalue+3 + sta.z ultoa.value+3 + // Format number into buffer + jsr ultoa + // printf_number_buffer(printf_buffer, format) + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // Print using format + lda #0 + sta.z printf_number_buffer.format_upper_case + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + sta.z printf_number_buffer.format_justify_left + tax + jsr printf_number_buffer + // } + rts +} +// Print the contents of the number buffer using a specific format. +// This handles minimum length, zero-filling, and left/right justification from the format +// printf_number_buffer(byte zp($b) buffer_sign, byte* zp($e) buffer_digits, byte register(X) format_min_length, byte zp($1f) format_justify_left, byte zp($a) format_zero_padding, byte zp($c) format_upper_case) +printf_number_buffer: { + .label __19 = $21 + .label buffer_sign = $b + .label padding = $20 + .label format_zero_padding = $a + .label format_justify_left = $1f + .label buffer_digits = $e + .label format_upper_case = $c + // if(format.min_length) + cpx #0 + beq __b6 + // strlen(buffer.digits) + lda.z buffer_digits + sta.z strlen.str + lda.z buffer_digits+1 + sta.z strlen.str+1 + jsr strlen + // strlen(buffer.digits) + // len = (signed char)strlen(buffer.digits) + // There is a minimum length - work out the padding + lda.z __19 + tay + // if(buffer.sign) + lda #0 + cmp.z buffer_sign + beq __b13 + // len++; + iny + __b13: + // padding = (signed char)format.min_length - len + txa + sty.z $ff + sec + sbc.z $ff + sta.z padding + // if(padding<0) + cmp #0 + bpl __b1 + __b6: + lda #0 + sta.z padding + __b1: + // if(!format.justify_left && !format.zero_padding && padding) + lda #0 + cmp.z format_justify_left + bne __b2 + cmp.z format_zero_padding + bne __b2 + cmp.z padding + bne __b8 + jmp __b2 + __b8: + // printf_padding(' ',(char)padding) + lda.z padding + sta.z printf_padding.length + lda #' ' + sta.z printf_padding.pad + jsr printf_padding + __b2: + // if(buffer.sign) + lda #0 + cmp.z buffer_sign + beq __b3 + // printf_char(buffer.sign) + lda.z buffer_sign + jsr printf_char + __b3: + // if(format.zero_padding && padding) + lda #0 + cmp.z format_zero_padding + beq __b4 + cmp.z padding + bne __b10 + jmp __b4 + __b10: + // printf_padding('0',(char)padding) + lda.z padding + sta.z printf_padding.length + lda #'0' + sta.z printf_padding.pad + jsr printf_padding + __b4: + // if(format.upper_case) + lda #0 + cmp.z format_upper_case + beq __b5 + // strupr(buffer.digits) + lda.z buffer_digits + sta.z strupr.str + lda.z buffer_digits+1 + sta.z strupr.str+1 + jsr strupr + __b5: + // printf_str(buffer.digits) + jsr printf_str + // if(format.justify_left && !format.zero_padding && padding) + lda #0 + cmp.z format_justify_left + beq __breturn + cmp.z format_zero_padding + bne __breturn + cmp.z padding + bne __b12 + rts + __b12: + // printf_padding(' ',(char)padding) + lda.z padding + sta.z printf_padding.length + lda #' ' + sta.z printf_padding.pad + jsr printf_padding + __breturn: + // } + rts +} +// Print a padding char a number of times +// printf_padding(byte zp($16) pad, byte zp($d) length) +printf_padding: { + .label i = $17 + .label length = $d + .label pad = $16 + lda #0 + sta.z i + __b1: + // for(char i=0;i='a' && ch<='z') + cmp #'a' + bcc __breturn + cmp #'z' + bcc __b1 + beq __b1 + rts + __b1: + // return ch + ('A'-'a'); + clc + adc #'A'-'a' + __breturn: + // } + rts +} +// Computes the length of the string str up to but not including the terminating null character. +// strlen(byte* zp($10) str) +strlen: { + .label len = $21 + .label str = $10 + .label return = $21 + lda #<0 + sta.z len + sta.z len+1 + __b1: + // while(*str) + ldy #0 + lda (str),y + cmp #0 + bne __b2 + // } + rts + __b2: + // len++; + inc.z len + bne !+ + inc.z len+1 + !: + // str++; + inc.z str + bne !+ + inc.z str+1 + !: + jmp __b1 +} +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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) +// ultoa(dword zp(6) value, byte* zp($e) buffer) +ultoa: { + .label digit_value = $1b + .label buffer = $e + .label digit = $1f + .label value = 6 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z buffer+1 + ldx #0 + txa + sta.z digit + __b1: + // for( char digit=0; digit= digit_value) + cpx #0 + bne __b5 + lda.z value+3 + cmp.z digit_value+3 + bcc !+ + bne __b5 + lda.z value+2 + cmp.z digit_value+2 + bcc !+ + bne __b5 + lda.z value+1 + cmp.z digit_value+1 + bcc !+ + bne __b5 + lda.z value + cmp.z digit_value + bcs __b5 + !: + __b4: + // for( char digit=0; digit= sub) + lda.z value+3 + cmp.z sub+3 + bcc !+ + bne __b2 + lda.z value+2 + cmp.z sub+2 + bcc !+ + bne __b2 + lda.z value+1 + cmp.z sub+1 + bcc !+ + bne __b2 + lda.z value + cmp.z sub + bcs __b2 + !: + // *buffer = DIGITS[digit] + lda DIGITS,x + ldy #0 + sta (buffer),y + // } + rts + __b2: + // digit++; + inx + // value -= sub + lda.z value + sec + sbc.z sub + sta.z value + lda.z value+1 + sbc.z sub+1 + sta.z value+1 + lda.z value+2 + sbc.z sub+2 + sta.z value+2 + lda.z value+3 + sbc.z sub+3 + sta.z value+3 + jmp __b1 +} // Convert time of day to a human-readable string "hh:mm:ss:10" // tod_str(byte zp($19) tod_TENTHS, byte zp($1a) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) tod_str: { @@ -405,8 +824,8 @@ tod_str: { } // Read time of day tod_read: { - .label return_HOURS = $18 - .label return_MIN = $17 + .label return_HOURS = $1f + .label return_MIN = $18 // hours = CIA1->TOD_HOURS // Reading sequence is important. TOD latches on reading hours until 10ths is read. lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS @@ -428,7 +847,7 @@ tod_read: { // When all columns on a row is exhausted move back down to the lower level and move forward one position until we are done with the last position on the first row queens: { // The current row where the queen is moving - .label row = $c + .label row = $18 lda #<0 sta.z count sta.z count+1 @@ -495,9 +914,9 @@ queens: { } // Print the board with a legal placement. print: { - .label i = $b - .label i1 = $15 - .label j = $16 + .label i = $19 + .label i1 = $1a + .label j = $a // printf("\n#%lu:\n ",count) lda #='a' && ch<='z') - cmp #'a' - bcc __breturn - cmp #'z' - bcc __b1 - beq __b1 - rts - __b1: - // return ch + ('A'-'a'); - clc - adc #'A'-'a' - __breturn: - // } - rts -} -// Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($f) str) -strlen: { - .label len = $21 - .label str = $f - .label return = $21 - lda #<0 - sta.z len - sta.z len+1 - __b1: - // while(*str) - ldy #0 - lda (str),y - cmp #0 - bne __b2 - // } - rts - __b2: - // len++; - inc.z len - bne !+ - inc.z len+1 - !: - // str++; - inc.z str - bne !+ - inc.z str+1 - !: - jmp __b1 -} // Converts unsigned number value to a string representing it in RADIX format. // If the leading digits are zero they are not included in the string. // - 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 register(X) value, byte* zp($d) buffer) +// uctoa(byte register(X) value, byte* zp($21) buffer) uctoa: { - .label digit_value = $1c - .label buffer = $d - .label digit = $16 - .label started = 6 + .label digit_value = $20 + .label buffer = $21 + .label digit = $b + .label started = $c lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -911,10 +1112,10 @@ 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($d) buffer, byte register(X) value, byte zp($1c) sub) +// uctoa_append(byte* zp($21) buffer, byte register(X) value, byte zp($20) sub) uctoa_append: { - .label buffer = $d - .label sub = $1c + .label buffer = $21 + .label sub = $20 ldy #0 __b1: // while (value >= sub) @@ -936,205 +1137,14 @@ uctoa_append: { tax jmp __b1 } -// Print an unsigned int using a specific format -// printf_ulong(dword zp(2) uvalue) -printf_ulong: { - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = 2 - // printf_buffer.sign = format.sign_always?'+':0 - // Handle any sign - lda #0 - sta printf_buffer - // ultoa(uvalue, printf_buffer.digits, format.radix) - lda.z uvalue - sta.z ultoa.value - lda.z uvalue+1 - sta.z ultoa.value+1 - lda.z uvalue+2 - sta.z ultoa.value+2 - lda.z uvalue+3 - sta.z ultoa.value+3 - // Format number into buffer - jsr ultoa - // printf_number_buffer(printf_buffer, format) - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // Print using format - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - ldx #format_min_length - jsr printf_number_buffer - // } - rts -} -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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) -// ultoa(dword zp(7) value, byte* zp($21) buffer) -ultoa: { - .const max_digits = $a - .label digit_value = $1d - .label buffer = $21 - .label digit = $1c - .label value = 7 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - ldx #0 - txa - sta.z digit - __b1: - // for( char digit=0; digit= digit_value) - cpx #0 - bne __b5 - lda.z value+3 - cmp.z digit_value+3 - bcc !+ - bne __b5 - lda.z value+2 - cmp.z digit_value+2 - bcc !+ - bne __b5 - lda.z value+1 - cmp.z digit_value+1 - bcc !+ - bne __b5 - lda.z value - cmp.z digit_value - bcs __b5 - !: - __b4: - // for( char digit=0; digit= sub) - lda.z value+3 - cmp.z sub+3 - bcc !+ - bne __b2 - lda.z value+2 - cmp.z sub+2 - bcc !+ - bne __b2 - lda.z value+1 - cmp.z sub+1 - bcc !+ - bne __b2 - lda.z value - cmp.z sub - bcs __b2 - !: - // *buffer = DIGITS[digit] - lda DIGITS,x - ldy #0 - sta (buffer),y - // } - rts - __b2: - // digit++; - inx - // value -= sub - lda.z value - sec - sbc.z sub - sta.z value - lda.z value+1 - sbc.z sub+1 - sta.z value+1 - lda.z value+2 - sbc.z sub+2 - sta.z value+2 - lda.z value+3 - sbc.z sub+3 - sta.z value+3 - jmp __b1 -} // Checks is a placement of the queen on the board is legal. // Checks the passed (row, column) against all queens placed on the board on lower rows. // If no conflict for desired position returns 1 otherwise returns 0 -// legal(byte zp($c) row, byte zp($1b) column) +// legal(byte zp($18) row, byte zp($1f) column) legal: { - .label row = $c - .label column = $1b - .label diff1_return = $b + .label row = $18 + .label column = $1f + .label diff1_return = $20 ldy #1 __b1: // row-1 @@ -1197,10 +1207,10 @@ legal: { } // Initialize time-of-day clock // This uses the MOS6526 CIA#1 -// tod_init(byte zp($15) tod_TENTHS, byte zp($16) tod_SEC, byte register(X) tod_MIN, byte register(Y) tod_HOURS) +// tod_init(byte zp($16) tod_TENTHS, byte zp($17) tod_SEC, byte register(X) tod_MIN, byte register(Y) tod_HOURS) tod_init: { - .label tod_TENTHS = $15 - .label tod_SEC = $16 + .label tod_TENTHS = $16 + .label tod_SEC = $17 // CIA1->TIMER_A_CONTROL |= 0x80 // Set 50hz (this assumes PAL!) (bit7=1) lda #$80 @@ -1264,13 +1274,13 @@ printf_uint: { // - 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($d) value, byte* zp($f) buffer) +// utoa(word zp($e) value, byte* zp($10) buffer) utoa: { .const max_digits = 5 .label digit_value = $21 - .label buffer = $f - .label digit = $c - .label value = $d + .label buffer = $10 + .label digit = $d + .label value = $e lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -1348,12 +1358,12 @@ 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($f) buffer, word zp($d) value, word zp($21) sub) +// utoa_append(byte* zp($10) buffer, word zp($e) value, word zp($21) sub) utoa_append: { - .label buffer = $f - .label value = $d + .label buffer = $10 + .label value = $e .label sub = $21 - .label return = $d + .label return = $e ldx #0 __b1: // while (value >= sub) diff --git a/src/test/ref/examples/eightqueens/eightqueens.cfg b/src/test/ref/examples/eightqueens/eightqueens.cfg index 37e805e82..7f933438c 100644 --- a/src/test/ref/examples/eightqueens/eightqueens.cfg +++ b/src/test/ref/examples/eightqueens/eightqueens.cfg @@ -50,789 +50,797 @@ main::@6: scope:[main] from main::@5 [27] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 to:main::@7 main::@7: scope:[main] from main::@6 - [28] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 - [29] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 - [30] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 - [31] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 - [32] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 - [33] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 - [34] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 - [35] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 - [36] call tod_str + [28] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 + [29] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 + [30] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 + [31] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 + [32] call tod_str to:main::@8 main::@8: scope:[main] from main::@7 - [37] phi() - [38] call printf_str + [33] phi() + [34] call printf_str to:main::@9 main::@9: scope:[main] from main::@8 + [35] (dword) printf_ulong::uvalue#0 ← (dword) count#10 + [36] call printf_ulong + to:main::@10 +main::@10: scope:[main] from main::@9 + [37] phi() + [38] call printf_str + to:main::@11 +main::@11: scope:[main] from main::@10 [39] phi() [40] call printf_string + to:main::@12 +main::@12: scope:[main] from main::@11 + [41] phi() + [42] call printf_str to:main::@return -main::@return: scope:[main] from main::@9 - [41] return - to:@return - -(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) -printf_string: scope:[printf_string] from main::@9 - [42] phi() - to:printf_string::@1 -printf_string::@1: scope:[printf_string] from printf_string - [43] phi() - [44] call printf_str - to:printf_string::@return -printf_string::@return: scope:[printf_string] from printf_string::@1 - [45] return +main::@return: scope:[main] from main::@12 + [43] return to:@return (void()) printf_str((byte*) printf_str::str) -printf_str: scope:[printf_str] from main::@1 main::@2 main::@8 print print::@10 print::@12 print::@4 print::@8 printf_number_buffer::@5 printf_string::@1 - [46] (byte*) printf_str::str#13 ← phi( main::@1/(const byte*) main::str main::@2/(const byte*) main::str1 main::@8/(const byte*) main::str2 print/(const byte*) print::str print::@10/(const byte*) print::str4 print::@12/(const byte*) print::str1 print::@4/(const byte*) print::str2 print::@8/(const byte*) print::str3 printf_number_buffer::@5/(byte*) printf_str::str#1 printf_string::@1/(const byte*) tod_buffer ) +printf_str: scope:[printf_str] from main::@1 main::@10 main::@12 main::@2 main::@8 print print::@10 print::@12 print::@4 print::@8 printf_number_buffer::@5 printf_string::@1 + [44] (byte*) printf_str::str#15 ← phi( main::@1/(const byte*) main::str main::@10/(const byte*) main::str3 main::@12/(const byte*) main::str4 main::@2/(const byte*) main::str1 main::@8/(const byte*) main::str2 print/(const byte*) print::str print::@10/(const byte*) print::str4 print::@12/(const byte*) print::str1 print::@4/(const byte*) print::str2 print::@8/(const byte*) print::str3 printf_number_buffer::@5/(byte*) printf_str::str#1 printf_string::@1/(const byte*) tod_buffer ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@4 printf_str::@5 - [47] (byte*) printf_str::str#11 ← phi( printf_str/(byte*) printf_str::str#13 printf_str::@4/(byte*) printf_str::str#0 printf_str::@5/(byte*) printf_str::str#0 ) + [45] (byte*) printf_str::str#13 ← phi( printf_str/(byte*) printf_str::str#15 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 - [48] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#11) - [49] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#11 - [50] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 + [46] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) + [47] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 + [48] 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 - [51] return + [49] return to:@return printf_str::@3: scope:[printf_str] from printf_str::@2 - [52] if((byte) printf_str::ch#0==(byte) ' + [50] 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 - [53] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 - [54] call printf_char + [51] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + [52] call printf_char to:printf_str::@1 printf_str::@4: scope:[printf_str] from printf_str::@3 - [55] phi() - [56] call printf_ln + [53] phi() + [54] call printf_ln to:printf_str::@1 (void()) printf_ln() printf_ln: scope:[printf_ln] from printf_str::@4 - [57] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x - [58] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 - [59] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 - [60] (byte) printf_cursor_x ← (byte) 0 - [61] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y - [62] call printf_scroll + [55] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x + [56] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 + [57] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 + [58] (byte) printf_cursor_x ← (byte) 0 + [59] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y + [60] call printf_scroll to:printf_ln::@return printf_ln::@return: scope:[printf_ln] from printf_ln - [63] return + [61] return to:@return (void()) printf_scroll() printf_scroll: scope:[printf_scroll] from printf_char::@1 printf_ln - [64] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return + [62] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return to:printf_scroll::@1 printf_scroll::@1: scope:[printf_scroll] from printf_scroll - [65] phi() - [66] call memcpy + [63] phi() + [64] call memcpy to:printf_scroll::@2 printf_scroll::@2: scope:[printf_scroll] from printf_scroll::@1 - [67] phi() - [68] call memset + [65] phi() + [66] call memset to:printf_scroll::@3 printf_scroll::@3: scope:[printf_scroll] from printf_scroll::@2 - [69] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 - [70] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 - [71] (byte) printf_cursor_y ← -- (byte) printf_cursor_y + [67] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 + [68] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 + [69] (byte) printf_cursor_y ← -- (byte) printf_cursor_y to:printf_scroll::@return printf_scroll::@return: scope:[printf_scroll] from printf_scroll printf_scroll::@3 - [72] return + [70] return to:@return (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) memset: scope:[memset] from printf_cls printf_scroll::@2 - [73] (byte) memset::c#4 ← phi( printf_cls/(byte) ' ' printf_scroll::@2/(byte) ' ' ) - [73] (void*) memset::str#3 ← phi( printf_cls/(void*) 1024 printf_scroll::@2/(void*)(number) $400+(number) $28*(number) $19-(number) $28 ) - [73] (word) memset::num#2 ← phi( printf_cls/(word)(number) $28*(number) $19 printf_scroll::@2/(byte) $28 ) - [74] if((word) memset::num#2<=(byte) 0) goto memset::@return + [71] (byte) memset::c#4 ← phi( printf_cls/(byte) ' ' printf_scroll::@2/(byte) ' ' ) + [71] (void*) memset::str#3 ← phi( printf_cls/(void*) 1024 printf_scroll::@2/(void*)(number) $400+(number) $28*(number) $19-(number) $28 ) + [71] (word) memset::num#2 ← phi( printf_cls/(word)(number) $28*(number) $19 printf_scroll::@2/(byte) $28 ) + [72] if((word) memset::num#2<=(byte) 0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [75] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 - [76] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 + [73] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 + [74] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 - [77] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) - [78] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 + [75] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) + [76] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 to:memset::@return memset::@return: scope:[memset] from memset memset::@2 - [79] return + [77] return to:@return memset::@3: scope:[memset] from memset::@2 - [80] *((byte*) memset::dst#2) ← (byte) memset::c#4 - [81] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 + [78] *((byte*) memset::dst#2) ← (byte) memset::c#4 + [79] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 to:memset::@2 (void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) memcpy: scope:[memcpy] from printf_scroll::@1 - [82] phi() + [80] phi() to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - [83] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*)(const void*) memcpy::destination#0 memcpy::@2/(byte*) memcpy::dst#1 ) - [83] (byte*) memcpy::src#2 ← phi( memcpy/(byte*)(const void*) memcpy::source#0 memcpy::@2/(byte*) memcpy::src#1 ) - [84] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 + [81] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*)(const void*) memcpy::destination#0 memcpy::@2/(byte*) memcpy::dst#1 ) + [81] (byte*) memcpy::src#2 ← phi( memcpy/(byte*)(const void*) memcpy::source#0 memcpy::@2/(byte*) memcpy::src#1 ) + [82] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 to:memcpy::@return memcpy::@return: scope:[memcpy] from memcpy::@1 - [85] return + [83] return to:@return memcpy::@2: scope:[memcpy] from memcpy::@1 - [86] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) - [87] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 - [88] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 + [84] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) + [85] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 + [86] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 to:memcpy::@1 (void()) printf_char((byte) printf_char::ch) printf_char: scope:[printf_char] from printf_number_buffer::@9 printf_padding::@2 printf_str::@5 - [89] (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::@5/(byte) printf_char::ch#1 ) - [90] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 - [91] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr - [92] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x - [93] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return + [87] (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::@5/(byte) printf_char::ch#1 ) + [88] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 + [89] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr + [90] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x + [91] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return to:printf_char::@1 printf_char::@1: scope:[printf_char] from printf_char - [94] (byte) printf_cursor_x ← (byte) 0 - [95] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y - [96] call printf_scroll + [92] (byte) printf_cursor_x ← (byte) 0 + [93] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y + [94] call printf_scroll to:printf_char::@return printf_char::@return: scope:[printf_char] from printf_char printf_char::@1 - [97] return + [95] return to:@return -(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) -tod_str: scope:[tod_str] from main::@7 - [98] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 - [99] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 - [100] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 - [101] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f - [102] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 - [103] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 - [104] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 - [105] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 - [106] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 - [107] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f - [108] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 - [109] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 - [110] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 - [111] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 - [112] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 - [113] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f - [114] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 - [115] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 - [116] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 - [117] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 - [118] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 - [119] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f - [120] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 - [121] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 - to:tod_str::@return -tod_str::@return: scope:[tod_str] from tod_str - [122] return +(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) +printf_string: scope:[printf_string] from main::@11 + [96] phi() + to:printf_string::@1 +printf_string::@1: scope:[printf_string] from printf_string + [97] phi() + [98] call printf_str + to:printf_string::@return +printf_string::@return: scope:[printf_string] from printf_string::@1 + [99] return to:@return -(struct TIME_OF_DAY()) tod_read() -tod_read: scope:[tod_read] from main::@6 - [123] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) - [124] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) - [125] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) - [126] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) - to:tod_read::@return -tod_read::@return: scope:[tod_read] from tod_read - [127] return - to:@return - -(void()) queens() -queens: scope:[queens] from main::@5 - [128] phi() - to:queens::@1 -queens::@1: scope:[queens] from queens queens::@4 queens::@7 queens::@8 queens::@9 - [129] (dword) count#14 ← phi( queens/(dword) 0 queens::@4/(dword) count#22 queens::@7/(dword) count#14 queens::@8/(dword) count#14 queens::@9/(dword) count#14 ) - [129] (byte) queens::row#10 ← phi( queens/(byte) 1 queens::@4/(byte) queens::row#10 queens::@7/(byte) queens::row#1 queens::@8/(byte) queens::row#2 queens::@9/(byte) queens::row#10 ) - to:queens::@2 -queens::@2: scope:[queens] from queens::@1 - [130] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) - [131] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 - to:queens::@5 -queens::@5: scope:[queens] from queens::@2 - [132] (byte) legal::row#0 ← (byte) queens::row#10 - [133] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) - [134] call legal - [135] (byte) legal::return#0 ← (byte) legal::return#4 - to:queens::@9 -queens::@9: scope:[queens] from queens::@5 - [136] (byte~) queens::$2 ← (byte) legal::return#0 - [137] if((byte) 0==(byte~) queens::$2) goto queens::@1 - to:queens::@6 -queens::@6: scope:[queens] from queens::@9 - [138] if((byte) queens::row#10==(byte) 8) goto queens::@4 - to:queens::@7 -queens::@7: scope:[queens] from queens::@6 - [139] (byte) queens::row#1 ← ++ (byte) queens::row#10 - to:queens::@1 -queens::@4: scope:[queens] from queens::@6 - [140] (dword) count#22 ← ++ (dword) count#14 - [141] call print - to:queens::@1 -queens::@3: scope:[queens] from queens::@2 - [142] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 - [143] if((byte) queens::row#10==(byte) 1) goto queens::@return - to:queens::@8 -queens::@8: scope:[queens] from queens::@3 - [144] (byte) queens::row#2 ← -- (byte) queens::row#10 - to:queens::@1 -queens::@return: scope:[queens] from queens::@3 - [145] return - to:@return - -(void()) print() -print: scope:[print] from queens::@4 - [146] phi() - [147] call printf_str - to:print::@11 -print::@11: scope:[print] from print - [148] (dword) printf_ulong::uvalue#0 ← (dword) count#22 - [149] call printf_ulong - to:print::@12 -print::@12: scope:[print] from print::@11 - [150] phi() - [151] call printf_str - to:print::@1 -print::@1: scope:[print] from print::@12 print::@13 - [152] (byte) print::i#2 ← phi( print::@12/(byte) 1 print::@13/(byte) print::i#1 ) - [153] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 - to:print::@3 -print::@3: scope:[print] from print::@1 print::@7 - [154] (byte) print::i1#2 ← phi( print::@1/(byte) 1 print::@7/(byte) print::i1#1 ) - [155] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 - to:print::@return -print::@return: scope:[print] from print::@3 - [156] return - to:@return -print::@4: scope:[print] from print::@3 - [157] phi() - [158] call printf_str - to:print::@14 -print::@14: scope:[print] from print::@4 - [159] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 - [160] call printf_uchar - to:print::@5 -print::@5: scope:[print] from print::@14 print::@9 - [161] (byte) print::j#2 ← phi( print::@9/(byte) print::j#1 print::@14/(byte) 1 ) - [162] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 - to:print::@7 -print::@7: scope:[print] from print::@5 - [163] (byte) print::i1#1 ← ++ (byte) print::i1#2 - to:print::@3 -print::@6: scope:[print] from print::@5 - [164] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 - to:print::@10 -print::@10: scope:[print] from print::@6 - [165] phi() - [166] call printf_str - to:print::@9 -print::@9: scope:[print] from print::@10 print::@8 - [167] (byte) print::j#1 ← ++ (byte) print::j#2 - to:print::@5 -print::@8: scope:[print] from print::@6 - [168] phi() - [169] call printf_str - to:print::@9 -print::@2: scope:[print] from print::@1 - [170] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 - [171] call printf_uchar - to:print::@13 -print::@13: scope:[print] from print::@2 - [172] (byte) print::i#1 ← ++ (byte) print::i#2 - to:print::@1 - -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -printf_uchar: scope:[printf_uchar] from print::@14 print::@2 - [173] (byte) printf_uchar::uvalue#2 ← phi( print::@14/(byte) printf_uchar::uvalue#1 print::@2/(byte) printf_uchar::uvalue#0 ) - to:printf_uchar::@1 -printf_uchar::@1: scope:[printf_uchar] from printf_uchar - [174] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [175] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 - [176] call uctoa - to:printf_uchar::@2 -printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 - [177] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [178] call printf_number_buffer - to:printf_uchar::@return -printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 - [179] return +(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) +printf_ulong: scope:[printf_ulong] from main::@9 print::@11 + [100] (dword) printf_ulong::uvalue#2 ← phi( main::@9/(dword) printf_ulong::uvalue#0 print::@11/(dword) printf_ulong::uvalue#1 ) + to:printf_ulong::@1 +printf_ulong::@1: scope:[printf_ulong] from printf_ulong + [101] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [102] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 + [103] call ultoa + to:printf_ulong::@2 +printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 + [104] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [105] call printf_number_buffer + to:printf_ulong::@return +printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 + [106] return to:@return (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_upper_case , (byte) printf_number_buffer::format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@2 printf_uint::@2 printf_ulong::@2 - [180] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_upper_case#0 printf_ulong::@2/(const byte) printf_ulong::format_upper_case#0 ) - [180] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uchar::@2/(byte) printf_number_buffer::buffer_sign#2 printf_uint::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 ) - [180] (byte*) printf_number_buffer::buffer_digits#10 ← phi( printf_uchar::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_uint::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_ulong::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [180] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_zero_padding#0 printf_ulong::@2/(const byte) printf_ulong::format_zero_padding#0 ) - [180] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_justify_left#0 printf_ulong::@2/(const byte) printf_ulong::format_justify_left#0 ) - [180] (byte) printf_number_buffer::format_min_length#3 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_min_length#0 printf_ulong::@2/(const byte) printf_ulong::format_min_length#0 ) - [181] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 + [107] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_upper_case#0 printf_ulong::@2/(byte) 0 ) + [107] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uchar::@2/(byte) printf_number_buffer::buffer_sign#2 printf_uint::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 ) + [107] (byte*) printf_number_buffer::buffer_digits#10 ← phi( printf_uchar::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_uint::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_ulong::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [107] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_zero_padding#0 printf_ulong::@2/(byte) 0 ) + [107] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_justify_left#0 printf_ulong::@2/(byte) 0 ) + [107] (byte) printf_number_buffer::format_min_length#3 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_min_length#0 printf_ulong::@2/(byte) 0 ) + [108] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 to:printf_number_buffer::@6 printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - [182] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - [183] call strlen - [184] (word) strlen::return#2 ← (word) strlen::len#2 + [109] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + [110] call strlen + [111] (word) strlen::return#2 ← (word) strlen::len#2 to:printf_number_buffer::@14 printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 - [185] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - [186] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 - [187] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 + [112] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 + [113] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 + [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 to:printf_number_buffer::@7 printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 - [188] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 + [115] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 to:printf_number_buffer::@13 printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 - [189] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) - [190] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 - [191] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 + [116] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) + [117] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 + [118] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 to:printf_number_buffer::@1 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 - [192] phi() + [119] phi() to:printf_number_buffer::@1 printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [193] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) - [194] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 + [120] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) + [121] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [195] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 + [122] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [196] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 + [123] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 to:printf_number_buffer::@2 printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [197] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 - [198] call printf_padding + [124] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 + [125] call printf_padding to:printf_number_buffer::@2 printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [199] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 + [126] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 to:printf_number_buffer::@9 printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [200] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 - [201] call printf_char + [127] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 + [128] call printf_char to:printf_number_buffer::@3 printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [202] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 + [129] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [203] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 + [130] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 to:printf_number_buffer::@4 printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [204] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 - [205] call printf_padding + [131] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 + [132] call printf_padding to:printf_number_buffer::@4 printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [206] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 + [133] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 to:printf_number_buffer::@11 printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [207] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 - [208] call strupr + [134] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 + [135] call strupr to:printf_number_buffer::@5 printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [209] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - [210] call printf_str + [136] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + [137] call printf_str to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [211] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return + [138] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [212] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return + [139] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [213] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 + [140] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 to:printf_number_buffer::@return printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [214] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 - [215] call printf_padding + [141] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 + [142] call printf_padding to:printf_number_buffer::@return printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [216] return + [143] return to:@return (void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [217] (byte) printf_padding::pad#7 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) - [217] (byte) printf_padding::length#6 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) + [144] (byte) printf_padding::pad#7 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) + [144] (byte) printf_padding::length#6 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) to:printf_padding::@1 printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [218] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) - [219] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 + [145] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) + [146] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 to:printf_padding::@return printf_padding::@return: scope:[printf_padding] from printf_padding::@1 - [220] return + [147] return to:@return printf_padding::@2: scope:[printf_padding] from printf_padding::@1 - [221] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 - [222] call printf_char + [148] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 + [149] call printf_char to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 - [223] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 + [150] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 to:printf_padding::@1 (byte*()) strupr((byte*) strupr::str) strupr: scope:[strupr] from printf_number_buffer::@11 - [224] phi() + [151] phi() to:strupr::@1 strupr::@1: scope:[strupr] from strupr strupr::@3 - [225] (byte*) strupr::src#2 ← phi( strupr/(byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) - [226] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 + [152] (byte*) strupr::src#2 ← phi( strupr/(byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) + [153] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 to:strupr::@return strupr::@return: scope:[strupr] from strupr::@1 - [227] return + [154] return to:@return strupr::@2: scope:[strupr] from strupr::@1 - [228] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) - [229] call toupper - [230] (byte) toupper::return#3 ← (byte) toupper::return#2 + [155] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) + [156] call toupper + [157] (byte) toupper::return#3 ← (byte) toupper::return#2 to:strupr::@3 strupr::@3: scope:[strupr] from strupr::@2 - [231] (byte~) strupr::$0 ← (byte) toupper::return#3 - [232] *((byte*) strupr::src#2) ← (byte~) strupr::$0 - [233] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 + [158] (byte~) strupr::$0 ← (byte) toupper::return#3 + [159] *((byte*) strupr::src#2) ← (byte~) strupr::$0 + [160] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 to:strupr::@1 (byte()) toupper((byte) toupper::ch) toupper: scope:[toupper] from strupr::@2 - [234] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return + [161] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return to:toupper::@2 toupper::@2: scope:[toupper] from toupper - [235] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 + [162] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 to:toupper::@return toupper::@1: scope:[toupper] from toupper::@2 - [236] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' + [163] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' to:toupper::@return toupper::@return: scope:[toupper] from toupper toupper::@1 toupper::@2 - [237] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) - [238] return + [164] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) + [165] return to:@return (word()) strlen((byte*) strlen::str) strlen: scope:[strlen] from printf_number_buffer::@6 - [239] phi() + [166] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [240] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) - [240] (byte*) strlen::str#3 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) - [241] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 + [167] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) + [167] (byte*) strlen::str#3 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) + [168] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [242] return + [169] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [243] (word) strlen::len#1 ← ++ (word) strlen::len#2 - [244] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 + [170] (word) strlen::len#1 ← ++ (word) strlen::len#2 + [171] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 to:strlen::@1 -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -uctoa: scope:[uctoa] from printf_uchar::@1 - [245] phi() - to:uctoa::@1 -uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [246] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [246] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) - [246] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) - [246] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) - [247] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 - to:uctoa::@3 -uctoa::@3: scope:[uctoa] from uctoa::@1 - [248] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) - [249] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 - [250] *((byte*) uctoa::buffer#3) ← (byte) 0 - to:uctoa::@return -uctoa::@return: scope:[uctoa] from uctoa::@3 - [251] return - to:@return -uctoa::@2: scope:[uctoa] from uctoa::@1 - [252] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) - [253] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 - to:uctoa::@7 -uctoa::@7: scope:[uctoa] from uctoa::@2 - [254] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 - to:uctoa::@4 -uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 - [255] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) - [255] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) - [255] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) - [256] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 - to:uctoa::@1 -uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 - [257] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - [258] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - [259] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - [260] call uctoa_append - [261] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - to:uctoa::@6 -uctoa::@6: scope:[uctoa] from uctoa::@5 - [262] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - [263] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 - to:uctoa::@4 - -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -uctoa_append: scope:[uctoa_append] from uctoa::@5 - [264] phi() - to:uctoa_append::@1 -uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 - [265] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) - [265] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) - [266] 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 - [267] *((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 - [268] return - to:@return -uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 - [269] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 - [270] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 - to:uctoa_append::@1 - -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -printf_ulong: scope:[printf_ulong] from print::@11 - [271] phi() - to:printf_ulong::@1 -printf_ulong::@1: scope:[printf_ulong] from printf_ulong - [272] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [273] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - [274] call ultoa - to:printf_ulong::@2 -printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 - [275] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [276] call printf_number_buffer - to:printf_ulong::@return -printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 - [277] return - to:@return - (void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) ultoa: scope:[ultoa] from printf_ulong::@1 - [278] phi() + [172] phi() to:ultoa::@1 ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 - [279] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [279] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) - [279] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) - [279] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) - [280] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 + [173] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [173] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) + [173] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) + [173] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) + [174] if((byte) ultoa::digit#2<(byte) $a-(byte) 1) goto ultoa::@2 to:ultoa::@3 ultoa::@3: scope:[ultoa] from ultoa::@1 - [281] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 - [282] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) - [283] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 - [284] *((byte*) ultoa::buffer#3) ← (byte) 0 + [175] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 + [176] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) + [177] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 + [178] *((byte*) ultoa::buffer#3) ← (byte) 0 to:ultoa::@return ultoa::@return: scope:[ultoa] from ultoa::@3 - [285] return + [179] return to:@return ultoa::@2: scope:[ultoa] from ultoa::@1 - [286] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 - [287] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) - [288] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 + [180] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 + [181] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) + [182] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 to:ultoa::@7 ultoa::@7: scope:[ultoa] from ultoa::@2 - [289] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 + [183] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 to:ultoa::@4 ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7 - [290] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) - [290] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) - [290] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) - [291] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 + [184] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) + [184] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) + [184] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) + [185] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 to:ultoa::@1 ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7 - [292] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - [293] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - [294] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - [295] call ultoa_append - [296] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 + [186] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 + [187] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 + [188] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 + [189] call ultoa_append + [190] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 to:ultoa::@6 ultoa::@6: scope:[ultoa] from ultoa::@5 - [297] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - [298] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 + [191] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 + [192] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 to:ultoa::@4 (dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) ultoa_append: scope:[ultoa_append] from ultoa::@5 - [299] phi() + [193] phi() to:ultoa_append::@1 ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2 - [300] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) - [300] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) - [301] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 + [194] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) + [194] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) + [195] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 to:ultoa_append::@3 ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 - [302] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) + [196] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) to:ultoa_append::@return ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 - [303] return + [197] return to:@return ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 - [304] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 - [305] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 + [198] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 + [199] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 to:ultoa_append::@1 +(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) +tod_str: scope:[tod_str] from main::@7 + [200] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 + [201] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 + [202] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 + [203] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f + [204] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 + [205] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 + [206] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 + [207] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 + [208] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 + [209] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f + [210] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 + [211] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 + [212] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 + [213] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 + [214] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 + [215] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f + [216] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 + [217] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 + [218] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 + [219] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 + [220] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 + [221] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f + [222] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 + [223] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 + to:tod_str::@return +tod_str::@return: scope:[tod_str] from tod_str + [224] return + to:@return + +(struct TIME_OF_DAY()) tod_read() +tod_read: scope:[tod_read] from main::@6 + [225] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) + [226] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) + [227] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) + [228] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) + to:tod_read::@return +tod_read::@return: scope:[tod_read] from tod_read + [229] return + to:@return + +(void()) queens() +queens: scope:[queens] from main::@5 + [230] phi() + to:queens::@1 +queens::@1: scope:[queens] from queens queens::@4 queens::@7 queens::@8 queens::@9 + [231] (dword) count#10 ← phi( queens/(dword) 0 queens::@4/(dword) count#25 queens::@7/(dword) count#10 queens::@8/(dword) count#10 queens::@9/(dword) count#10 ) + [231] (byte) queens::row#10 ← phi( queens/(byte) 1 queens::@4/(byte) queens::row#10 queens::@7/(byte) queens::row#1 queens::@8/(byte) queens::row#2 queens::@9/(byte) queens::row#10 ) + to:queens::@2 +queens::@2: scope:[queens] from queens::@1 + [232] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) + [233] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 + to:queens::@5 +queens::@5: scope:[queens] from queens::@2 + [234] (byte) legal::row#0 ← (byte) queens::row#10 + [235] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) + [236] call legal + [237] (byte) legal::return#0 ← (byte) legal::return#4 + to:queens::@9 +queens::@9: scope:[queens] from queens::@5 + [238] (byte~) queens::$2 ← (byte) legal::return#0 + [239] if((byte) 0==(byte~) queens::$2) goto queens::@1 + to:queens::@6 +queens::@6: scope:[queens] from queens::@9 + [240] if((byte) queens::row#10==(byte) 8) goto queens::@4 + to:queens::@7 +queens::@7: scope:[queens] from queens::@6 + [241] (byte) queens::row#1 ← ++ (byte) queens::row#10 + to:queens::@1 +queens::@4: scope:[queens] from queens::@6 + [242] (dword) count#25 ← ++ (dword) count#10 + [243] call print + to:queens::@1 +queens::@3: scope:[queens] from queens::@2 + [244] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 + [245] if((byte) queens::row#10==(byte) 1) goto queens::@return + to:queens::@8 +queens::@8: scope:[queens] from queens::@3 + [246] (byte) queens::row#2 ← -- (byte) queens::row#10 + to:queens::@1 +queens::@return: scope:[queens] from queens::@3 + [247] return + to:@return + +(void()) print() +print: scope:[print] from queens::@4 + [248] phi() + [249] call printf_str + to:print::@11 +print::@11: scope:[print] from print + [250] (dword) printf_ulong::uvalue#1 ← (dword) count#25 + [251] call printf_ulong + to:print::@12 +print::@12: scope:[print] from print::@11 + [252] phi() + [253] call printf_str + to:print::@1 +print::@1: scope:[print] from print::@12 print::@13 + [254] (byte) print::i#2 ← phi( print::@12/(byte) 1 print::@13/(byte) print::i#1 ) + [255] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 + to:print::@3 +print::@3: scope:[print] from print::@1 print::@7 + [256] (byte) print::i1#2 ← phi( print::@1/(byte) 1 print::@7/(byte) print::i1#1 ) + [257] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 + to:print::@return +print::@return: scope:[print] from print::@3 + [258] return + to:@return +print::@4: scope:[print] from print::@3 + [259] phi() + [260] call printf_str + to:print::@14 +print::@14: scope:[print] from print::@4 + [261] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 + [262] call printf_uchar + to:print::@5 +print::@5: scope:[print] from print::@14 print::@9 + [263] (byte) print::j#2 ← phi( print::@9/(byte) print::j#1 print::@14/(byte) 1 ) + [264] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 + to:print::@7 +print::@7: scope:[print] from print::@5 + [265] (byte) print::i1#1 ← ++ (byte) print::i1#2 + to:print::@3 +print::@6: scope:[print] from print::@5 + [266] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 + to:print::@10 +print::@10: scope:[print] from print::@6 + [267] phi() + [268] call printf_str + to:print::@9 +print::@9: scope:[print] from print::@10 print::@8 + [269] (byte) print::j#1 ← ++ (byte) print::j#2 + to:print::@5 +print::@8: scope:[print] from print::@6 + [270] phi() + [271] call printf_str + to:print::@9 +print::@2: scope:[print] from print::@1 + [272] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 + [273] call printf_uchar + to:print::@13 +print::@13: scope:[print] from print::@2 + [274] (byte) print::i#1 ← ++ (byte) print::i#2 + to:print::@1 + +(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) +printf_uchar: scope:[printf_uchar] from print::@14 print::@2 + [275] (byte) printf_uchar::uvalue#2 ← phi( print::@14/(byte) printf_uchar::uvalue#1 print::@2/(byte) printf_uchar::uvalue#0 ) + to:printf_uchar::@1 +printf_uchar::@1: scope:[printf_uchar] from printf_uchar + [276] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [277] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 + [278] call uctoa + to:printf_uchar::@2 +printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 + [279] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [280] call printf_number_buffer + to:printf_uchar::@return +printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 + [281] return + to:@return + +(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) +uctoa: scope:[uctoa] from printf_uchar::@1 + [282] phi() + to:uctoa::@1 +uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 + [283] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [283] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) + [283] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) + [283] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) + [284] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 + to:uctoa::@3 +uctoa::@3: scope:[uctoa] from uctoa::@1 + [285] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) + [286] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 + [287] *((byte*) uctoa::buffer#3) ← (byte) 0 + to:uctoa::@return +uctoa::@return: scope:[uctoa] from uctoa::@3 + [288] return + to:@return +uctoa::@2: scope:[uctoa] from uctoa::@1 + [289] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) + [290] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 + to:uctoa::@7 +uctoa::@7: scope:[uctoa] from uctoa::@2 + [291] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 + to:uctoa::@4 +uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 + [292] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) + [292] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) + [292] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) + [293] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 + to:uctoa::@1 +uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 + [294] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + [295] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + [296] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + [297] call uctoa_append + [298] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + to:uctoa::@6 +uctoa::@6: scope:[uctoa] from uctoa::@5 + [299] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + [300] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 + to:uctoa::@4 + +(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) +uctoa_append: scope:[uctoa_append] from uctoa::@5 + [301] phi() + to:uctoa_append::@1 +uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 + [302] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) + [302] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) + [303] 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 + [304] *((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 + [305] return + to:@return +uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 + [306] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 + [307] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 + to:uctoa_append::@1 + (byte()) legal((byte) legal::row , (byte) legal::column) legal: scope:[legal] from queens::@5 - [306] phi() + [308] phi() to:legal::@1 legal::@1: scope:[legal] from legal legal::@3 - [307] (byte) legal::i#10 ← phi( legal/(byte) 1 legal::@3/(byte) legal::i#1 ) - [308] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 - [309] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 + [309] (byte) legal::i#10 ← phi( legal/(byte) 1 legal::@3/(byte) legal::i#1 ) + [310] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 + [311] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 to:legal::@return legal::@return: scope:[legal] from legal::@1 legal::@2 legal::@5 - [310] (byte) legal::return#4 ← phi( legal::@1/(byte) 1 legal::@2/(byte) 0 legal::@5/(byte) 0 ) - [311] return + [312] (byte) legal::return#4 ← phi( legal::@1/(byte) 1 legal::@2/(byte) 0 legal::@5/(byte) 0 ) + [313] return to:@return legal::@2: scope:[legal] from legal::@1 - [312] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return + [314] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return to:legal::@4 legal::@4: scope:[legal] from legal::@2 - [313] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) + [315] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) to:legal::diff1 legal::diff1: scope:[legal] from legal::@4 - [314] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 + [316] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 to:legal::diff1_@3 legal::diff1_@3: scope:[legal] from legal::diff1 - [315] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 + [317] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 to:legal::diff1_@return legal::diff1_@return: scope:[legal] from legal::diff1_@1 legal::diff1_@3 - [316] (byte) legal::diff1_return#2 ← phi( legal::diff1_@1/(byte) legal::diff1_return#0 legal::diff1_@3/(byte) legal::diff1_return#1 ) + [318] (byte) legal::diff1_return#2 ← phi( legal::diff1_@1/(byte) legal::diff1_return#0 legal::diff1_@3/(byte) legal::diff1_return#1 ) to:legal::diff2 legal::diff2: scope:[legal] from legal::diff1_@return - [317] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 + [319] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 to:legal::diff2_@3 legal::diff2_@3: scope:[legal] from legal::diff2 - [318] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 + [320] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 to:legal::diff2_@return legal::diff2_@return: scope:[legal] from legal::diff2_@1 legal::diff2_@3 - [319] (byte) legal::diff2_return#2 ← phi( legal::diff2_@1/(byte) legal::diff2_return#0 legal::diff2_@3/(byte) legal::diff2_return#1 ) + [321] (byte) legal::diff2_return#2 ← phi( legal::diff2_@1/(byte) legal::diff2_return#0 legal::diff2_@3/(byte) legal::diff2_return#1 ) to:legal::@5 legal::@5: scope:[legal] from legal::diff2_@return - [320] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 + [322] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 to:legal::@return legal::@3: scope:[legal] from legal::@5 - [321] (byte) legal::i#1 ← ++ (byte) legal::i#10 + [323] (byte) legal::i#1 ← ++ (byte) legal::i#10 to:legal::@1 legal::diff2_@1: scope:[legal] from legal::diff2 - [322] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 + [324] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 to:legal::diff2_@return legal::diff1_@1: scope:[legal] from legal::diff1 - [323] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 + [325] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 to:legal::diff1_@return (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) tod_init: scope:[tod_init] from main::@4 - [324] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 - [325] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f - [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 - [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 - [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 - [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 + [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 + [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f + [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 + [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 + [330] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 + [331] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 to:tod_init::@return tod_init::@return: scope:[tod_init] from tod_init - [330] return + [332] return to:@return (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_upper_case , (byte) printf_uint::format_radix) printf_uint: scope:[printf_uint] from main::@3 - [331] phi() + [333] phi() to:printf_uint::@1 printf_uint::@1: scope:[printf_uint] from printf_uint - [332] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [333] call utoa + [334] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [335] call utoa to:printf_uint::@2 printf_uint::@2: scope:[printf_uint] from printf_uint::@1 - [334] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [335] call printf_number_buffer + [336] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [337] call printf_number_buffer to:printf_uint::@return printf_uint::@return: scope:[printf_uint] from printf_uint::@2 - [336] return + [338] return to:@return (void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) utoa: scope:[utoa] from printf_uint::@1 - [337] phi() + [339] phi() to:utoa::@1 utoa::@1: scope:[utoa] from utoa utoa::@4 - [338] (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 ) - [338] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) - [338] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) - [338] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) - [339] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 + [340] (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 ) + [340] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) + [340] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) + [340] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) + [341] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 to:utoa::@3 utoa::@3: scope:[utoa] from utoa::@1 - [340] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 - [341] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) - [342] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 - [343] *((byte*) utoa::buffer#3) ← (byte) 0 + [342] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 + [343] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) + [344] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 + [345] *((byte*) utoa::buffer#3) ← (byte) 0 to:utoa::@return utoa::@return: scope:[utoa] from utoa::@3 - [344] return + [346] return to:@return utoa::@2: scope:[utoa] from utoa::@1 - [345] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 - [346] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) - [347] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 + [347] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 + [348] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) + [349] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 to:utoa::@7 utoa::@7: scope:[utoa] from utoa::@2 - [348] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 + [350] 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 - [349] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) - [349] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) - [349] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) - [350] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 + [351] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) + [351] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) + [351] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) + [352] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 to:utoa::@1 utoa::@5: scope:[utoa] from utoa::@2 utoa::@7 - [351] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - [352] (word) utoa_append::value#0 ← (word) utoa::value#2 - [353] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - [354] call utoa_append - [355] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + [353] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + [354] (word) utoa_append::value#0 ← (word) utoa::value#2 + [355] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + [356] call utoa_append + [357] (word) utoa_append::return#0 ← (word) utoa_append::value#2 to:utoa::@6 utoa::@6: scope:[utoa] from utoa::@5 - [356] (word) utoa::value#0 ← (word) utoa_append::return#0 - [357] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 + [358] (word) utoa::value#0 ← (word) utoa_append::return#0 + [359] (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 - [358] phi() + [360] phi() to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [359] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) - [359] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) - [360] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 + [361] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) + [361] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) + [362] 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 - [361] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) + [363] *((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 - [362] return + [364] return to:@return utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [363] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 - [364] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 + [365] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 + [366] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 to:utoa_append::@1 (void()) printf_cls() printf_cls: scope:[printf_cls] from main - [365] phi() - [366] call memset + [367] phi() + [368] call memset to:printf_cls::@1 printf_cls::@1: scope:[printf_cls] from printf_cls - [367] (byte*) printf_cursor_ptr ← (byte*) 1024 - [368] (byte) printf_cursor_x ← (byte) 0 - [369] (byte) printf_cursor_y ← (byte) 0 + [369] (byte*) printf_cursor_ptr ← (byte*) 1024 + [370] (byte) printf_cursor_x ← (byte) 0 + [371] (byte) printf_cursor_y ← (byte) 0 to:printf_cls::@return printf_cls::@return: scope:[printf_cls] from printf_cls::@1 - [370] return + [372] return to:@return diff --git a/src/test/ref/examples/eightqueens/eightqueens.log b/src/test/ref/examples/eightqueens/eightqueens.log index 3c485bb3f..4cf99a9ed 100644 --- a/src/test/ref/examples/eightqueens/eightqueens.log +++ b/src/test/ref/examples/eightqueens/eightqueens.log @@ -3,6 +3,7 @@ Fixing struct type size struct printf_buffer_number to 12 Fixing struct type SIZE_OF struct printf_buffer_number to 12 Fixing struct type SIZE_OF struct printf_buffer_number to 12 Added struct type cast to parameter value list call printf_uint (number) 8 (struct printf_format_number){ (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) DECIMAL } +Added struct type cast to parameter value list call printf_ulong (dword) count (struct printf_format_number){ (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) DECIMAL } Added struct type cast to parameter value list call printf_string (byte*~) main::$6 (struct printf_format_string){ (byte) 0, (byte) 0 } Added struct type cast to parameter value list call printf_ulong (dword) count (struct printf_format_number){ (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) DECIMAL } Added struct type cast to parameter value list call printf_uchar (byte) print::i (struct printf_format_number){ (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (const byte) HEXADECIMAL } @@ -82,11 +83,6 @@ Created struct value member variable (byte) tod_str::tod_SEC Created struct value member variable (byte) tod_str::tod_MIN Created struct value member variable (byte) tod_str::tod_HOURS Converted struct value to member variables (struct TIME_OF_DAY) tod_str::tod -Created struct value member variable (byte) main::tod_TENTHS -Created struct value member variable (byte) main::tod_SEC -Created struct value member variable (byte) main::tod_MIN -Created struct value member variable (byte) main::tod_HOURS -Converted struct value to member variables (struct TIME_OF_DAY) main::tod Created struct value member variable (byte~) main::$5_TENTHS Created struct value member variable (byte~) main::$5_SEC Created struct value member variable (byte~) main::$5_MIN @@ -127,12 +123,8 @@ Converted procedure struct return value to member unwinding return { (byte) tod_ Converted call struct value parameter to member unwinding call printf_uint (number) 8 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (const byte) DECIMAL Converted call struct value parameter to member unwinding (void~) main::$3 ← call tod_init *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS) *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC) *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN) *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS) Converted procedure call LValue to member unwinding { (byte~) main::$5_TENTHS, (byte~) main::$5_SEC, (byte~) main::$5_MIN, (byte~) main::$5_HOURS } ← call tod_read -Unwinding value copy (struct TIME_OF_DAY) main::tod ← (struct TIME_OF_DAY~) main::$5 -Adding value simple copy (byte) main::tod_TENTHS ← (byte~) main::$5_TENTHS -Adding value simple copy (byte) main::tod_SEC ← (byte~) main::$5_SEC -Adding value simple copy (byte) main::tod_MIN ← (byte~) main::$5_MIN -Adding value simple copy (byte) main::tod_HOURS ← (byte~) main::$5_HOURS -Converted call struct value parameter to member unwinding (byte*~) main::$6 ← call tod_str (byte) main::tod_TENTHS (byte) main::tod_SEC (byte) main::tod_MIN (byte) main::tod_HOURS +Converted call struct value parameter to member unwinding (byte*~) main::$6 ← call tod_str (byte~) main::$5_TENTHS (byte~) main::$5_SEC (byte~) main::$5_MIN (byte~) main::$5_HOURS +Converted call struct value parameter to member unwinding call printf_ulong (dword) count (byte) 0 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (const byte) DECIMAL Converted call struct value parameter to member unwinding call printf_string (byte*~) main::$6 (byte) 0 (byte) 0 Converted call struct value parameter to member unwinding call printf_ulong (dword) count (byte) 0 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (const byte) DECIMAL Converted call struct value parameter to member unwinding call printf_uchar (byte) print::i (byte) 0 (byte) 0 (byte) 0 (byte) 0 (byte) 0 (const byte) HEXADECIMAL @@ -1052,110 +1044,110 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 to:@return (void()) printf_str((byte*) printf_str::str) -printf_str: scope:[printf_str] from main::@1 main::@2 main::@8 print print::@11 print::@13 print::@5 print::@9 printf_number_buffer::@5 printf_string::@2 - (byte*) printf_str::str#13 ← phi( main::@1/(byte*) printf_str::str#3 main::@2/(byte*) printf_str::str#4 main::@8/(byte*) printf_str::str#5 print/(byte*) printf_str::str#6 print::@11/(byte*) printf_str::str#10 print::@13/(byte*) printf_str::str#7 print::@5/(byte*) printf_str::str#8 print::@9/(byte*) printf_str::str#9 printf_number_buffer::@5/(byte*) printf_str::str#1 printf_string::@2/(byte*) printf_str::str#2 ) +printf_str: scope:[printf_str] from main::@1 main::@10 main::@12 main::@2 main::@8 print print::@11 print::@13 print::@5 print::@9 printf_number_buffer::@5 printf_string::@2 + (byte*) printf_str::str#15 ← phi( main::@1/(byte*) printf_str::str#3 main::@10/(byte*) printf_str::str#6 main::@12/(byte*) printf_str::str#7 main::@2/(byte*) printf_str::str#4 main::@8/(byte*) printf_str::str#5 print/(byte*) printf_str::str#8 print::@11/(byte*) printf_str::str#12 print::@13/(byte*) printf_str::str#9 print::@5/(byte*) printf_str::str#10 print::@9/(byte*) printf_str::str#11 printf_number_buffer::@5/(byte*) printf_str::str#1 printf_string::@2/(byte*) printf_str::str#2 ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@6 printf_str::@7 - (byte*) printf_str::str#12 ← phi( printf_str/(byte*) printf_str::str#13 printf_str::@6/(byte*) printf_str::str#14 printf_str::@7/(byte*) printf_str::str#15 ) + (byte*) printf_str::str#14 ← phi( printf_str/(byte*) printf_str::str#15 printf_str::@6/(byte*) printf_str::str#16 printf_str::@7/(byte*) printf_str::str#17 ) if(true) goto printf_str::@2 to:printf_str::@return printf_str::@2: scope:[printf_str] from printf_str::@1 - (byte*) printf_str::str#11 ← phi( printf_str::@1/(byte*) printf_str::str#12 ) - (byte) printf_str::ch#0 ← *((byte*) printf_str::str#11) - (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#11 + (byte*) printf_str::str#13 ← phi( printf_str::@1/(byte*) printf_str::str#14 ) + (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) + (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 (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::@3 to:printf_str::@return printf_str::@3: scope:[printf_str] from printf_str::@2 - (byte*) printf_str::str#18 ← phi( printf_str::@2/(byte*) printf_str::str#0 ) + (byte*) printf_str::str#20 ← 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::@4 to:printf_str::@5 printf_str::@4: scope:[printf_str] from printf_str::@3 - (byte*) printf_str::str#16 ← phi( printf_str::@3/(byte*) printf_str::str#18 ) + (byte*) printf_str::str#18 ← phi( printf_str::@3/(byte*) printf_str::str#20 ) call printf_ln to:printf_str::@6 printf_str::@6: scope:[printf_str] from printf_str::@4 - (byte*) printf_str::str#14 ← phi( printf_str::@4/(byte*) printf_str::str#16 ) + (byte*) printf_str::str#16 ← phi( printf_str::@4/(byte*) printf_str::str#18 ) to:printf_str::@1 printf_str::@5: scope:[printf_str] from printf_str::@3 - (byte*) printf_str::str#17 ← phi( printf_str::@3/(byte*) printf_str::str#18 ) + (byte*) printf_str::str#19 ← phi( printf_str::@3/(byte*) printf_str::str#20 ) (byte) printf_str::ch#2 ← phi( printf_str::@3/(byte) printf_str::ch#1 ) (byte) printf_char::ch#1 ← (byte) printf_str::ch#2 call printf_char to:printf_str::@7 printf_str::@7: scope:[printf_str] from printf_str::@5 - (byte*) printf_str::str#15 ← phi( printf_str::@5/(byte*) printf_str::str#17 ) + (byte*) printf_str::str#17 ← phi( printf_str::@5/(byte*) printf_str::str#19 ) to:printf_str::@1 printf_str::@return: scope:[printf_str] from printf_str::@1 printf_str::@2 return to:@return (void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -printf_ulong: scope:[printf_ulong] from print::@12 - (byte) printf_ulong::format_upper_case#5 ← phi( print::@12/(byte) printf_ulong::format_upper_case#0 ) - (byte) printf_ulong::format_zero_padding#5 ← phi( print::@12/(byte) printf_ulong::format_zero_padding#0 ) - (byte) printf_ulong::format_justify_left#5 ← phi( print::@12/(byte) printf_ulong::format_justify_left#0 ) - (byte) printf_ulong::format_min_length#5 ← phi( print::@12/(byte) printf_ulong::format_min_length#0 ) - (byte) printf_ulong::format_radix#5 ← phi( print::@12/(byte) printf_ulong::format_radix#0 ) - (dword) printf_ulong::uvalue#4 ← phi( print::@12/(dword) printf_ulong::uvalue#0 ) - (byte) printf_ulong::format_sign_always#1 ← phi( print::@12/(byte) printf_ulong::format_sign_always#0 ) - (bool~) printf_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#1 +printf_ulong: scope:[printf_ulong] from main::@9 print::@12 + (byte) printf_ulong::format_upper_case#6 ← phi( main::@9/(byte) printf_ulong::format_upper_case#0 print::@12/(byte) printf_ulong::format_upper_case#1 ) + (byte) printf_ulong::format_zero_padding#6 ← phi( main::@9/(byte) printf_ulong::format_zero_padding#0 print::@12/(byte) printf_ulong::format_zero_padding#1 ) + (byte) printf_ulong::format_justify_left#6 ← phi( main::@9/(byte) printf_ulong::format_justify_left#0 print::@12/(byte) printf_ulong::format_justify_left#1 ) + (byte) printf_ulong::format_min_length#6 ← phi( main::@9/(byte) printf_ulong::format_min_length#0 print::@12/(byte) printf_ulong::format_min_length#1 ) + (byte) printf_ulong::format_radix#6 ← phi( main::@9/(byte) printf_ulong::format_radix#0 print::@12/(byte) printf_ulong::format_radix#1 ) + (dword) printf_ulong::uvalue#5 ← phi( main::@9/(dword) printf_ulong::uvalue#0 print::@12/(dword) printf_ulong::uvalue#1 ) + (byte) printf_ulong::format_sign_always#2 ← phi( main::@9/(byte) printf_ulong::format_sign_always#0 print::@12/(byte) printf_ulong::format_sign_always#1 ) + (bool~) printf_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#2 if((bool~) printf_ulong::$5) goto printf_ulong::@1 to:printf_ulong::@2 printf_ulong::@1: scope:[printf_ulong] from printf_ulong - (byte) printf_ulong::format_upper_case#3 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#5 ) - (byte) printf_ulong::format_zero_padding#3 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#5 ) - (byte) printf_ulong::format_sign_always#4 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#1 ) - (byte) printf_ulong::format_justify_left#3 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#5 ) - (byte) printf_ulong::format_min_length#3 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#5 ) - (byte) printf_ulong::format_radix#3 ← phi( printf_ulong/(byte) printf_ulong::format_radix#5 ) - (dword) printf_ulong::uvalue#2 ← phi( printf_ulong/(dword) printf_ulong::uvalue#4 ) + (byte) printf_ulong::format_upper_case#4 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#6 ) + (byte) printf_ulong::format_zero_padding#4 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#6 ) + (byte) printf_ulong::format_sign_always#5 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#2 ) + (byte) printf_ulong::format_justify_left#4 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#6 ) + (byte) printf_ulong::format_min_length#4 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#6 ) + (byte) printf_ulong::format_radix#4 ← phi( printf_ulong/(byte) printf_ulong::format_radix#6 ) + (dword) printf_ulong::uvalue#3 ← phi( printf_ulong/(dword) printf_ulong::uvalue#5 ) (byte~) printf_ulong::$1 ← (byte) '+' to:printf_ulong::@3 printf_ulong::@2: scope:[printf_ulong] from printf_ulong - (byte) printf_ulong::format_upper_case#4 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#5 ) - (byte) printf_ulong::format_zero_padding#4 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#5 ) - (byte) printf_ulong::format_sign_always#5 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#1 ) - (byte) printf_ulong::format_justify_left#4 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#5 ) - (byte) printf_ulong::format_min_length#4 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#5 ) - (byte) printf_ulong::format_radix#4 ← phi( printf_ulong/(byte) printf_ulong::format_radix#5 ) - (dword) printf_ulong::uvalue#3 ← phi( printf_ulong/(dword) printf_ulong::uvalue#4 ) + (byte) printf_ulong::format_upper_case#5 ← phi( printf_ulong/(byte) printf_ulong::format_upper_case#6 ) + (byte) printf_ulong::format_zero_padding#5 ← phi( printf_ulong/(byte) printf_ulong::format_zero_padding#6 ) + (byte) printf_ulong::format_sign_always#6 ← phi( printf_ulong/(byte) printf_ulong::format_sign_always#2 ) + (byte) printf_ulong::format_justify_left#5 ← phi( printf_ulong/(byte) printf_ulong::format_justify_left#6 ) + (byte) printf_ulong::format_min_length#5 ← phi( printf_ulong/(byte) printf_ulong::format_min_length#6 ) + (byte) printf_ulong::format_radix#5 ← phi( printf_ulong/(byte) printf_ulong::format_radix#6 ) + (dword) printf_ulong::uvalue#4 ← phi( printf_ulong/(dword) printf_ulong::uvalue#5 ) (number~) printf_ulong::$0 ← (number) 0 to:printf_ulong::@3 printf_ulong::@3: scope:[printf_ulong] from printf_ulong::@1 printf_ulong::@2 - (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#3 printf_ulong::@2/(byte) printf_ulong::format_upper_case#4 ) - (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#3 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#4 ) - (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#4 printf_ulong::@2/(byte) printf_ulong::format_sign_always#5 ) - (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#3 printf_ulong::@2/(byte) printf_ulong::format_justify_left#4 ) - (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#3 printf_ulong::@2/(byte) printf_ulong::format_min_length#4 ) - (byte) printf_ulong::format_radix#1 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#3 printf_ulong::@2/(byte) printf_ulong::format_radix#4 ) - (dword) printf_ulong::uvalue#1 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#2 printf_ulong::@2/(dword) printf_ulong::uvalue#3 ) + (byte) printf_ulong::format_upper_case#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#4 printf_ulong::@2/(byte) printf_ulong::format_upper_case#5 ) + (byte) printf_ulong::format_zero_padding#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#4 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#5 ) + (byte) printf_ulong::format_sign_always#4 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#5 printf_ulong::@2/(byte) printf_ulong::format_sign_always#6 ) + (byte) printf_ulong::format_justify_left#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#4 printf_ulong::@2/(byte) printf_ulong::format_justify_left#5 ) + (byte) printf_ulong::format_min_length#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#4 printf_ulong::@2/(byte) printf_ulong::format_min_length#5 ) + (byte) printf_ulong::format_radix#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#4 printf_ulong::@2/(byte) printf_ulong::format_radix#5 ) + (dword) printf_ulong::uvalue#2 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#3 printf_ulong::@2/(dword) printf_ulong::uvalue#4 ) (number~) printf_ulong::$2 ← phi( printf_ulong::@1/(byte~) printf_ulong::$1 printf_ulong::@2/(number~) printf_ulong::$0 ) *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (number~) printf_ulong::$2 - (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#1 + (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 (byte*) ultoa::buffer#5 ← (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - (byte) ultoa::radix#0 ← (byte) printf_ulong::format_radix#1 + (byte) ultoa::radix#0 ← (byte) printf_ulong::format_radix#2 call ultoa to:printf_ulong::@4 printf_ulong::@4: scope:[printf_ulong] from printf_ulong::@3 - (byte) printf_ulong::format_radix#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_radix#1 ) - (byte) printf_ulong::format_upper_case#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_upper_case#2 ) - (byte) printf_ulong::format_zero_padding#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_zero_padding#2 ) - (byte) printf_ulong::format_sign_always#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_sign_always#3 ) - (byte) printf_ulong::format_justify_left#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_justify_left#2 ) - (byte) printf_ulong::format_min_length#1 ← phi( printf_ulong::@3/(byte) printf_ulong::format_min_length#2 ) + (byte) printf_ulong::format_radix#3 ← phi( printf_ulong::@3/(byte) printf_ulong::format_radix#2 ) + (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_upper_case#3 ) + (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_zero_padding#3 ) + (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@3/(byte) printf_ulong::format_sign_always#4 ) + (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_justify_left#3 ) + (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@3/(byte) printf_ulong::format_min_length#3 ) (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) (byte*) printf_number_buffer::buffer_digits#0 ← (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - (byte) printf_number_buffer::format_min_length#0 ← (byte) printf_ulong::format_min_length#1 - (byte) printf_number_buffer::format_justify_left#0 ← (byte) printf_ulong::format_justify_left#1 - (byte) printf_number_buffer::format_sign_always#0 ← (byte) printf_ulong::format_sign_always#2 - (byte) printf_number_buffer::format_zero_padding#0 ← (byte) printf_ulong::format_zero_padding#1 - (byte) printf_number_buffer::format_upper_case#0 ← (byte) printf_ulong::format_upper_case#1 - (byte) printf_number_buffer::format_radix#0 ← (byte) printf_ulong::format_radix#2 + (byte) printf_number_buffer::format_min_length#0 ← (byte) printf_ulong::format_min_length#2 + (byte) printf_number_buffer::format_justify_left#0 ← (byte) printf_ulong::format_justify_left#2 + (byte) printf_number_buffer::format_sign_always#0 ← (byte) printf_ulong::format_sign_always#3 + (byte) printf_number_buffer::format_zero_padding#0 ← (byte) printf_ulong::format_zero_padding#2 + (byte) printf_number_buffer::format_upper_case#0 ← (byte) printf_ulong::format_upper_case#2 + (byte) printf_number_buffer::format_radix#0 ← (byte) printf_ulong::format_radix#3 call printf_number_buffer to:printf_ulong::@5 printf_ulong::@5: scope:[printf_ulong] from printf_ulong::@4 @@ -1522,10 +1514,10 @@ printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_ to:@return (void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) -printf_string: scope:[printf_string] from main::@9 - (byte*) printf_string::str#3 ← phi( main::@9/(byte*) printf_string::str#0 ) - (byte) printf_string::format_justify_left#3 ← phi( main::@9/(byte) printf_string::format_justify_left#0 ) - (byte) printf_string::format_min_length#1 ← phi( main::@9/(byte) printf_string::format_min_length#0 ) +printf_string: scope:[printf_string] from main::@11 + (byte*) printf_string::str#3 ← phi( main::@11/(byte*) printf_string::str#0 ) + (byte) printf_string::format_justify_left#3 ← phi( main::@11/(byte) printf_string::format_justify_left#0 ) + (byte) printf_string::format_min_length#1 ← phi( main::@11/(byte) printf_string::format_min_length#0 ) (signed byte) printf_string::padding#0 ← (signed byte) 0 (bool~) printf_string::$14 ← (number) 0 != (byte) printf_string::format_min_length#1 (bool~) printf_string::$0 ← ! (bool~) printf_string::$14 @@ -1696,21 +1688,21 @@ tod_str::@return: scope:[tod_str] from tod_str (void()) main() main: scope:[main] from @3 - (dword) count#33 ← phi( @3/(dword) count#18 ) + (dword) count#36 ← phi( @3/(dword) count#20 ) call printf_cls to:main::@1 main::@1: scope:[main] from main - (dword) count#32 ← phi( main/(dword) count#33 ) + (dword) count#35 ← phi( main/(dword) count#36 ) (byte*) printf_str::str#3 ← (const byte*) main::str call printf_str to:main::@2 main::@2: scope:[main] from main::@1 - (dword) count#30 ← phi( main::@1/(dword) count#32 ) + (dword) count#33 ← phi( main::@1/(dword) count#35 ) (byte*) printf_str::str#4 ← (const byte*) main::str1 call printf_str to:main::@3 main::@3: scope:[main] from main::@2 - (dword) count#27 ← phi( main::@2/(dword) count#30 ) + (dword) count#30 ← phi( main::@2/(dword) count#33 ) (word) printf_uint::uvalue#0 ← (number) 8 (byte) printf_uint::format_min_length#0 ← (byte) 0 (byte) printf_uint::format_justify_left#0 ← (byte) 0 @@ -1721,7 +1713,7 @@ main::@3: scope:[main] from main::@2 call printf_uint to:main::@4 main::@4: scope:[main] from main::@3 - (dword) count#19 ← phi( main::@3/(dword) count#27 ) + (dword) count#21 ← phi( main::@3/(dword) count#30 ) (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS) (byte) tod_init::tod_SEC#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC) (byte) tod_init::tod_MIN#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN) @@ -1729,7 +1721,7 @@ main::@4: scope:[main] from main::@3 call tod_init to:main::@5 main::@5: scope:[main] from main::@4 - (dword) count#12 ← phi( main::@4/(dword) count#19 ) + (dword) count#13 ← phi( main::@4/(dword) count#21 ) call queens to:main::@6 main::@6: scope:[main] from main::@5 @@ -1742,7 +1734,7 @@ main::@6: scope:[main] from main::@5 (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#1 to:main::@7 main::@7: scope:[main] from main::@6 - (dword) count#31 ← phi( main::@6/(dword) count#1 ) + (dword) count#22 ← phi( main::@6/(dword) count#1 ) (byte) tod_read::return_HOURS#4 ← phi( main::@6/(byte) tod_read::return_HOURS#2 ) (byte) tod_read::return_MIN#4 ← phi( main::@6/(byte) tod_read::return_MIN#2 ) (byte) tod_read::return_SEC#4 ← phi( main::@6/(byte) tod_read::return_SEC#2 ) @@ -1751,67 +1743,84 @@ main::@7: scope:[main] from main::@6 (byte~) main::$5_SEC ← (byte) tod_read::return_SEC#4 (byte~) main::$5_MIN ← (byte) tod_read::return_MIN#4 (byte~) main::$5_HOURS ← (byte) tod_read::return_HOURS#4 - (byte) main::tod_TENTHS#0 ← (byte~) main::$5_TENTHS - (byte) main::tod_SEC#0 ← (byte~) main::$5_SEC - (byte) main::tod_MIN#0 ← (byte~) main::$5_MIN - (byte) main::tod_HOURS#0 ← (byte~) main::$5_HOURS - (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 - (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 - (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 - (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 + (byte) tod_str::tod_TENTHS#0 ← (byte~) main::$5_TENTHS + (byte) tod_str::tod_SEC#0 ← (byte~) main::$5_SEC + (byte) tod_str::tod_MIN#0 ← (byte~) main::$5_MIN + (byte) tod_str::tod_HOURS#0 ← (byte~) main::$5_HOURS call tod_str (byte*) tod_str::return#2 ← (byte*) tod_str::return#1 to:main::@8 main::@8: scope:[main] from main::@7 - (dword) count#28 ← phi( main::@7/(dword) count#31 ) + (dword) count#14 ← phi( main::@7/(dword) count#22 ) (byte*) tod_str::return#4 ← phi( main::@7/(byte*) tod_str::return#2 ) (byte*~) main::$6 ← (byte*) tod_str::return#4 (byte*) printf_str::str#5 ← (const byte*) main::str2 call printf_str to:main::@9 main::@9: scope:[main] from main::@8 - (dword) count#20 ← phi( main::@8/(dword) count#28 ) + (dword) count#7 ← phi( main::@8/(dword) count#14 ) + (dword) printf_ulong::uvalue#0 ← (dword) count#7 + (byte) printf_ulong::format_min_length#0 ← (byte) 0 + (byte) printf_ulong::format_justify_left#0 ← (byte) 0 + (byte) printf_ulong::format_sign_always#0 ← (byte) 0 + (byte) printf_ulong::format_zero_padding#0 ← (byte) 0 + (byte) printf_ulong::format_upper_case#0 ← (byte) 0 + (byte) printf_ulong::format_radix#0 ← (const byte) DECIMAL + call printf_ulong + to:main::@10 +main::@10: scope:[main] from main::@9 + (dword) count#34 ← phi( main::@9/(dword) count#7 ) + (byte*) printf_str::str#6 ← (const byte*) main::str3 + call printf_str + to:main::@11 +main::@11: scope:[main] from main::@10 + (dword) count#31 ← phi( main::@10/(dword) count#34 ) (byte*) printf_string::str#0 ← (byte*~) main::$6 (byte) printf_string::format_min_length#0 ← (byte) 0 (byte) printf_string::format_justify_left#0 ← (byte) 0 call printf_string - to:main::@10 -main::@10: scope:[main] from main::@9 - (dword) count#13 ← phi( main::@9/(dword) count#20 ) + to:main::@12 +main::@12: scope:[main] from main::@11 + (dword) count#23 ← phi( main::@11/(dword) count#31 ) + (byte*) printf_str::str#7 ← (const byte*) main::str4 + call printf_str + to:main::@13 +main::@13: scope:[main] from main::@12 + (dword) count#15 ← phi( main::@12/(dword) count#23 ) to:main::@return -main::@return: scope:[main] from main::@10 - (dword) count#7 ← phi( main::@10/(dword) count#13 ) - (dword) count#2 ← (dword) count#7 +main::@return: scope:[main] from main::@13 + (dword) count#8 ← phi( main::@13/(dword) count#15 ) + (dword) count#2 ← (dword) count#8 return to:@return (void()) queens() queens: scope:[queens] from main::@5 - (dword) count#21 ← phi( main::@5/(dword) count#12 ) + (dword) count#24 ← phi( main::@5/(dword) count#13 ) (byte) queens::row#0 ← (byte) 1 to:queens::@1 queens::@1: scope:[queens] from queens queens::@10 queens::@7 queens::@8 queens::@9 - (dword) count#15 ← phi( queens/(dword) count#21 queens::@10/(dword) count#22 queens::@7/(dword) count#23 queens::@8/(dword) count#24 queens::@9/(dword) count#25 ) + (dword) count#17 ← phi( queens/(dword) count#24 queens::@10/(dword) count#25 queens::@7/(dword) count#26 queens::@8/(dword) count#27 queens::@9/(dword) count#28 ) (byte) queens::row#9 ← phi( queens/(byte) queens::row#0 queens::@10/(byte) queens::row#11 queens::@7/(byte) queens::row#1 queens::@8/(byte) queens::row#2 queens::@9/(byte) queens::row#10 ) (bool~) queens::$7 ← (number) 0 != (number) 1 if((bool~) queens::$7) goto queens::@2 to:queens::@return queens::@2: scope:[queens] from queens::@1 - (dword) count#26 ← phi( queens::@1/(dword) count#15 ) + (dword) count#29 ← phi( queens::@1/(dword) count#17 ) (byte) queens::row#3 ← phi( queens::@1/(byte) queens::row#9 ) *((const byte*) board + (byte) queens::row#3) ← ++ *((const byte*) board + (byte) queens::row#3) (bool~) queens::$1 ← *((const byte*) board + (byte) queens::row#3) == (number) 8+(number) 1 if((bool~) queens::$1) goto queens::@3 to:queens::@5 queens::@3: scope:[queens] from queens::@2 - (dword) count#16 ← phi( queens::@2/(dword) count#26 ) + (dword) count#18 ← phi( queens::@2/(dword) count#29 ) (byte) queens::row#4 ← phi( queens::@2/(byte) queens::row#3 ) *((const byte*) board + (byte) queens::row#4) ← (number) 0 (bool~) queens::$6 ← (byte) queens::row#4 == (number) 1 if((bool~) queens::$6) goto queens::@return to:queens::@8 queens::@5: scope:[queens] from queens::@2 - (dword) count#29 ← phi( queens::@2/(dword) count#26 ) + (dword) count#32 ← phi( queens::@2/(dword) count#29 ) (byte) queens::row#5 ← phi( queens::@2/(byte) queens::row#3 ) (byte) legal::row#0 ← (byte) queens::row#5 (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#5) @@ -1819,7 +1828,7 @@ queens::@5: scope:[queens] from queens::@2 (byte) legal::return#0 ← (byte) legal::return#4 to:queens::@9 queens::@9: scope:[queens] from queens::@5 - (dword) count#25 ← phi( queens::@5/(dword) count#29 ) + (dword) count#28 ← phi( queens::@5/(dword) count#32 ) (byte) queens::row#10 ← phi( queens::@5/(byte) queens::row#5 ) (byte) legal::return#5 ← phi( queens::@5/(byte) legal::return#0 ) (byte~) queens::$2 ← (byte) legal::return#5 @@ -1828,34 +1837,34 @@ queens::@9: scope:[queens] from queens::@5 if((bool~) queens::$3) goto queens::@1 to:queens::@6 queens::@6: scope:[queens] from queens::@9 - (dword) count#14 ← phi( queens::@9/(dword) count#25 ) + (dword) count#16 ← phi( queens::@9/(dword) count#28 ) (byte) queens::row#6 ← phi( queens::@9/(byte) queens::row#10 ) (bool~) queens::$4 ← (byte) queens::row#6 == (number) 8 if((bool~) queens::$4) goto queens::@4 to:queens::@7 queens::@4: scope:[queens] from queens::@6 (byte) queens::row#12 ← phi( queens::@6/(byte) queens::row#6 ) - (dword) count#8 ← phi( queens::@6/(dword) count#14 ) - (dword) count#3 ← ++ (dword) count#8 + (dword) count#9 ← phi( queens::@6/(dword) count#16 ) + (dword) count#3 ← ++ (dword) count#9 call print to:queens::@10 queens::@10: scope:[queens] from queens::@4 - (dword) count#22 ← phi( queens::@4/(dword) count#3 ) + (dword) count#25 ← phi( queens::@4/(dword) count#3 ) (byte) queens::row#11 ← phi( queens::@4/(byte) queens::row#12 ) to:queens::@1 queens::@7: scope:[queens] from queens::@6 - (dword) count#23 ← phi( queens::@6/(dword) count#14 ) + (dword) count#26 ← phi( queens::@6/(dword) count#16 ) (byte) queens::row#7 ← phi( queens::@6/(byte) queens::row#6 ) (byte) queens::row#1 ← ++ (byte) queens::row#7 to:queens::@1 queens::@8: scope:[queens] from queens::@3 - (dword) count#24 ← phi( queens::@3/(dword) count#16 ) + (dword) count#27 ← phi( queens::@3/(dword) count#18 ) (byte) queens::row#8 ← phi( queens::@3/(byte) queens::row#4 ) (byte) queens::row#2 ← -- (byte) queens::row#8 to:queens::@1 queens::@return: scope:[queens] from queens::@1 queens::@3 - (dword) count#9 ← phi( queens::@1/(dword) count#15 queens::@3/(dword) count#16 ) - (dword) count#4 ← (dword) count#9 + (dword) count#10 ← phi( queens::@1/(dword) count#17 queens::@3/(dword) count#18 ) + (dword) count#4 ← (dword) count#10 return to:@return @@ -1997,23 +2006,23 @@ legal::@5: scope:[legal] from legal::@9 (void()) print() print: scope:[print] from queens::@4 - (dword) count#17 ← phi( queens::@4/(dword) count#3 ) - (byte*) printf_str::str#6 ← (const byte*) print::str + (dword) count#19 ← phi( queens::@4/(dword) count#3 ) + (byte*) printf_str::str#8 ← (const byte*) print::str call printf_str to:print::@12 print::@12: scope:[print] from print - (dword) count#10 ← phi( print/(dword) count#17 ) - (dword) printf_ulong::uvalue#0 ← (dword) count#10 - (byte) printf_ulong::format_min_length#0 ← (byte) 0 - (byte) printf_ulong::format_justify_left#0 ← (byte) 0 - (byte) printf_ulong::format_sign_always#0 ← (byte) 0 - (byte) printf_ulong::format_zero_padding#0 ← (byte) 0 - (byte) printf_ulong::format_upper_case#0 ← (byte) 0 - (byte) printf_ulong::format_radix#0 ← (const byte) DECIMAL + (dword) count#11 ← phi( print/(dword) count#19 ) + (dword) printf_ulong::uvalue#1 ← (dword) count#11 + (byte) printf_ulong::format_min_length#1 ← (byte) 0 + (byte) printf_ulong::format_justify_left#1 ← (byte) 0 + (byte) printf_ulong::format_sign_always#1 ← (byte) 0 + (byte) printf_ulong::format_zero_padding#1 ← (byte) 0 + (byte) printf_ulong::format_upper_case#1 ← (byte) 0 + (byte) printf_ulong::format_radix#1 ← (const byte) DECIMAL call printf_ulong to:print::@13 print::@13: scope:[print] from print::@12 - (byte*) printf_str::str#7 ← (const byte*) print::str1 + (byte*) printf_str::str#9 ← (const byte*) print::str1 call printf_str to:print::@14 print::@14: scope:[print] from print::@13 @@ -2049,7 +2058,7 @@ print::@4: scope:[print] from print::@3 print::@8 to:print::@return print::@5: scope:[print] from print::@4 (byte) print::i1#6 ← phi( print::@4/(byte) print::i1#2 ) - (byte*) printf_str::str#8 ← (const byte*) print::str2 + (byte*) printf_str::str#10 ← (const byte*) print::str2 call printf_str to:print::@16 print::@16: scope:[print] from print::@5 @@ -2086,7 +2095,7 @@ print::@8: scope:[print] from print::@6 print::@9: scope:[print] from print::@7 (byte) print::i1#12 ← phi( print::@7/(byte) print::i1#4 ) (byte) print::j#7 ← phi( print::@7/(byte) print::j#3 ) - (byte*) printf_str::str#9 ← (const byte*) print::str3 + (byte*) printf_str::str#11 ← (const byte*) print::str3 call printf_str to:print::@18 print::@18: scope:[print] from print::@9 @@ -2096,7 +2105,7 @@ print::@18: scope:[print] from print::@9 print::@11: scope:[print] from print::@7 (byte) print::i1#13 ← phi( print::@7/(byte) print::i1#4 ) (byte) print::j#8 ← phi( print::@7/(byte) print::j#3 ) - (byte*) printf_str::str#10 ← (const byte*) print::str4 + (byte*) printf_str::str#12 ← (const byte*) print::str4 call printf_str to:print::@19 print::@19: scope:[print] from print::@11 @@ -2112,12 +2121,12 @@ print::@return: scope:[print] from print::@4 return to:@return @3: scope:[] from @2 - (dword) count#18 ← phi( @2/(dword) count#0 ) + (dword) count#20 ← phi( @2/(dword) count#0 ) call main to:@4 @4: scope:[] from @3 - (dword) count#11 ← phi( @3/(dword) count#2 ) - (dword) count#5 ← (dword) count#11 + (dword) count#12 ← phi( @3/(dword) count#2 ) + (dword) count#5 ← (dword) count#12 to:@end @end: scope:[] from @4 @@ -2213,6 +2222,9 @@ SYMBOL TABLE SSA (dword) count#31 (dword) count#32 (dword) count#33 +(dword) count#34 +(dword) count#35 +(dword) count#36 (dword) count#4 (dword) count#5 (dword) count#6 @@ -2350,6 +2362,9 @@ SYMBOL TABLE SSA (byte*~) main::$6 (label) main::@1 (label) main::@10 +(label) main::@11 +(label) main::@12 +(label) main::@13 (label) main::@2 (label) main::@3 (label) main::@4 @@ -2362,16 +2377,11 @@ SYMBOL TABLE SSA (const byte*) main::str[(byte) $29] = (byte*) " - n queens problem using backtracking -" (const byte*) main::str1[(byte) $13] = (byte*) " number of queens:" -(const byte*) main::str2[(byte) 8] = (byte*) " -time: " -(byte) main::tod_HOURS -(byte) main::tod_HOURS#0 -(byte) main::tod_MIN -(byte) main::tod_MIN#0 -(byte) main::tod_SEC -(byte) main::tod_SEC#0 -(byte) main::tod_TENTHS -(byte) main::tod_TENTHS#0 +(const byte*) main::str2[(byte) $d] = (byte*) " +solutions: " +(const byte*) main::str3[(byte) 8] = (byte*) " time: " +(const byte*) main::str4[(byte) 3] = (byte*) ". +" (void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) (byte*~) memcpy::$0 (bool~) memcpy::$1 @@ -2821,7 +2831,9 @@ time: " (byte*) printf_str::str#16 (byte*) printf_str::str#17 (byte*) printf_str::str#18 +(byte*) printf_str::str#19 (byte*) printf_str::str#2 +(byte*) printf_str::str#20 (byte*) printf_str::str#3 (byte*) printf_str::str#4 (byte*) printf_str::str#5 @@ -3039,6 +3051,7 @@ time: " (byte) printf_ulong::format_justify_left#3 (byte) printf_ulong::format_justify_left#4 (byte) printf_ulong::format_justify_left#5 +(byte) printf_ulong::format_justify_left#6 (byte) printf_ulong::format_min_length (byte) printf_ulong::format_min_length#0 (byte) printf_ulong::format_min_length#1 @@ -3046,6 +3059,7 @@ time: " (byte) printf_ulong::format_min_length#3 (byte) printf_ulong::format_min_length#4 (byte) printf_ulong::format_min_length#5 +(byte) printf_ulong::format_min_length#6 (byte) printf_ulong::format_radix (byte) printf_ulong::format_radix#0 (byte) printf_ulong::format_radix#1 @@ -3053,6 +3067,7 @@ time: " (byte) printf_ulong::format_radix#3 (byte) printf_ulong::format_radix#4 (byte) printf_ulong::format_radix#5 +(byte) printf_ulong::format_radix#6 (byte) printf_ulong::format_sign_always (byte) printf_ulong::format_sign_always#0 (byte) printf_ulong::format_sign_always#1 @@ -3060,6 +3075,7 @@ time: " (byte) printf_ulong::format_sign_always#3 (byte) printf_ulong::format_sign_always#4 (byte) printf_ulong::format_sign_always#5 +(byte) printf_ulong::format_sign_always#6 (byte) printf_ulong::format_upper_case (byte) printf_ulong::format_upper_case#0 (byte) printf_ulong::format_upper_case#1 @@ -3067,6 +3083,7 @@ time: " (byte) printf_ulong::format_upper_case#3 (byte) printf_ulong::format_upper_case#4 (byte) printf_ulong::format_upper_case#5 +(byte) printf_ulong::format_upper_case#6 (byte) printf_ulong::format_zero_padding (byte) printf_ulong::format_zero_padding#0 (byte) printf_ulong::format_zero_padding#1 @@ -3074,12 +3091,14 @@ time: " (byte) printf_ulong::format_zero_padding#3 (byte) printf_ulong::format_zero_padding#4 (byte) printf_ulong::format_zero_padding#5 +(byte) printf_ulong::format_zero_padding#6 (dword) printf_ulong::uvalue (dword) printf_ulong::uvalue#0 (dword) printf_ulong::uvalue#1 (dword) printf_ulong::uvalue#2 (dword) printf_ulong::uvalue#3 (dword) printf_ulong::uvalue#4 +(dword) printf_ulong::uvalue#5 (void()) queens() (bool~) queens::$1 (byte~) queens::$2 @@ -3782,22 +3801,22 @@ Adding number conversion cast (unumber) $28*$19-$28 in (word) memcpy::num#0 ← Adding number conversion cast (unumber) $28 in (word) memset::num#1 ← (number) $28 Adding number conversion cast (unumber) $28 in (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (number) $28 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_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#1 -Adding number conversion cast (unumber) printf_ulong::$2 in (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#3 printf_ulong::@2/(byte) printf_ulong::format_upper_case#4 ) - (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#3 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#4 ) - (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#4 printf_ulong::@2/(byte) printf_ulong::format_sign_always#5 ) - (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#3 printf_ulong::@2/(byte) printf_ulong::format_justify_left#4 ) - (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#3 printf_ulong::@2/(byte) printf_ulong::format_min_length#4 ) - (byte) printf_ulong::format_radix#1 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#3 printf_ulong::@2/(byte) printf_ulong::format_radix#4 ) - (dword) printf_ulong::uvalue#1 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#2 printf_ulong::@2/(dword) printf_ulong::uvalue#3 ) +Adding number conversion cast (unumber) 0 in (bool~) printf_ulong::$5 ← (number) 0 != (byte) printf_ulong::format_sign_always#2 +Adding number conversion cast (unumber) printf_ulong::$2 in (byte) printf_ulong::format_upper_case#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#4 printf_ulong::@2/(byte) printf_ulong::format_upper_case#5 ) + (byte) printf_ulong::format_zero_padding#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#4 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#5 ) + (byte) printf_ulong::format_sign_always#4 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#5 printf_ulong::@2/(byte) printf_ulong::format_sign_always#6 ) + (byte) printf_ulong::format_justify_left#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#4 printf_ulong::@2/(byte) printf_ulong::format_justify_left#5 ) + (byte) printf_ulong::format_min_length#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#4 printf_ulong::@2/(byte) printf_ulong::format_min_length#5 ) + (byte) printf_ulong::format_radix#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#4 printf_ulong::@2/(byte) printf_ulong::format_radix#5 ) + (dword) printf_ulong::uvalue#2 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#3 printf_ulong::@2/(dword) printf_ulong::uvalue#4 ) (number~) printf_ulong::$2 ← phi( printf_ulong::@1/(byte~) printf_ulong::$1 printf_ulong::@2/(number~) printf_ulong::$0 ) -Adding number conversion cast (unumber) printf_ulong::$0 in (byte) printf_ulong::format_upper_case#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#3 printf_ulong::@2/(byte) printf_ulong::format_upper_case#4 ) - (byte) printf_ulong::format_zero_padding#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#3 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#4 ) - (byte) printf_ulong::format_sign_always#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#4 printf_ulong::@2/(byte) printf_ulong::format_sign_always#5 ) - (byte) printf_ulong::format_justify_left#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#3 printf_ulong::@2/(byte) printf_ulong::format_justify_left#4 ) - (byte) printf_ulong::format_min_length#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#3 printf_ulong::@2/(byte) printf_ulong::format_min_length#4 ) - (byte) printf_ulong::format_radix#1 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#3 printf_ulong::@2/(byte) printf_ulong::format_radix#4 ) - (dword) printf_ulong::uvalue#1 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#2 printf_ulong::@2/(dword) printf_ulong::uvalue#3 ) +Adding number conversion cast (unumber) printf_ulong::$0 in (byte) printf_ulong::format_upper_case#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_upper_case#4 printf_ulong::@2/(byte) printf_ulong::format_upper_case#5 ) + (byte) printf_ulong::format_zero_padding#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_zero_padding#4 printf_ulong::@2/(byte) printf_ulong::format_zero_padding#5 ) + (byte) printf_ulong::format_sign_always#4 ← phi( printf_ulong::@1/(byte) printf_ulong::format_sign_always#5 printf_ulong::@2/(byte) printf_ulong::format_sign_always#6 ) + (byte) printf_ulong::format_justify_left#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_justify_left#4 printf_ulong::@2/(byte) printf_ulong::format_justify_left#5 ) + (byte) printf_ulong::format_min_length#3 ← phi( printf_ulong::@1/(byte) printf_ulong::format_min_length#4 printf_ulong::@2/(byte) printf_ulong::format_min_length#5 ) + (byte) printf_ulong::format_radix#2 ← phi( printf_ulong::@1/(byte) printf_ulong::format_radix#4 printf_ulong::@2/(byte) printf_ulong::format_radix#5 ) + (dword) printf_ulong::uvalue#2 ← phi( printf_ulong::@1/(dword) printf_ulong::uvalue#3 printf_ulong::@2/(dword) printf_ulong::uvalue#4 ) (unumber~) printf_ulong::$2 ← phi( printf_ulong::@1/(byte~) printf_ulong::$1 printf_ulong::@2/(number~) printf_ulong::$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_upper_case#2 ← phi( printf_uint::@1/(byte) printf_uint::format_upper_case#3 printf_uint::@2/(byte) printf_uint::format_upper_case#4 ) @@ -4147,8 +4166,8 @@ Inversing boolean not [540] (bool~) printf_number_buffer::$14 ← (byte) 0 == (b Inversing boolean not [558] (bool~) printf_string::$0 ← (byte) 0 == (byte) printf_string::format_min_length#1 from [557] (bool~) printf_string::$14 ← (byte) 0 != (byte) printf_string::format_min_length#1 Inversing boolean not [562] (bool~) printf_string::$1 ← (byte) 0 == (byte) printf_string::format_justify_left#1 from [561] (bool~) printf_string::$15 ← (byte) 0 != (byte) printf_string::format_justify_left#1 Inversing boolean not [577] (bool~) printf_string::$12 ← (signed byte) printf_string::padding#1 >= (signed byte) 0 from [576] (bool~) printf_string::$11 ← (signed byte) printf_string::padding#1 < (signed byte) 0 -Inversing boolean not [737] (bool~) queens::$3 ← (byte) 0 == (byte~) queens::$2 from [736] (bool~) queens::$8 ← (byte) 0 != (byte~) queens::$2 -Inversing boolean not [796] (bool~) legal::$6 ← (byte~) legal::$3 != (byte~) legal::$4 from [795] (bool~) legal::$5 ← (byte~) legal::$3 == (byte~) legal::$4 +Inversing boolean not [748] (bool~) queens::$3 ← (byte) 0 == (byte~) queens::$2 from [747] (bool~) queens::$8 ← (byte) 0 != (byte~) queens::$2 +Inversing boolean not [807] (bool~) legal::$6 ← (byte~) legal::$3 != (byte~) legal::$4 from [806] (bool~) legal::$5 ← (byte~) legal::$3 == (byte~) legal::$4 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias toupper::ch#1 = toupper::ch#2 toupper::ch#3 toupper::return#1 @@ -4225,22 +4244,22 @@ Alias ultoa_append::buffer#1 = ultoa_append::buffer#4 ultoa_append::buffer#2 Alias printf_padding::pad#5 = printf_padding::pad#6 printf_padding::pad#8 Alias printf_padding::i#2 = printf_padding::i#4 printf_padding::i#3 Alias printf_padding::length#5 = printf_padding::length#8 printf_padding::length#7 -Alias printf_str::str#11 = printf_str::str#12 +Alias printf_str::str#13 = printf_str::str#14 Alias printf_str::ch#0 = printf_str::ch#1 printf_str::ch#2 -Alias printf_str::str#0 = printf_str::str#18 printf_str::str#16 printf_str::str#14 printf_str::str#17 printf_str::str#15 -Alias printf_ulong::uvalue#2 = printf_ulong::uvalue#4 printf_ulong::uvalue#3 -Alias printf_ulong::format_radix#3 = printf_ulong::format_radix#5 printf_ulong::format_radix#4 -Alias printf_ulong::format_min_length#3 = printf_ulong::format_min_length#5 printf_ulong::format_min_length#4 -Alias printf_ulong::format_justify_left#3 = printf_ulong::format_justify_left#5 printf_ulong::format_justify_left#4 -Alias printf_ulong::format_sign_always#1 = printf_ulong::format_sign_always#4 printf_ulong::format_sign_always#5 -Alias printf_ulong::format_zero_padding#3 = printf_ulong::format_zero_padding#5 printf_ulong::format_zero_padding#4 -Alias printf_ulong::format_upper_case#3 = printf_ulong::format_upper_case#5 printf_ulong::format_upper_case#4 -Alias printf_ulong::format_min_length#1 = printf_ulong::format_min_length#2 -Alias printf_ulong::format_justify_left#1 = printf_ulong::format_justify_left#2 -Alias printf_ulong::format_sign_always#2 = printf_ulong::format_sign_always#3 -Alias printf_ulong::format_zero_padding#1 = printf_ulong::format_zero_padding#2 -Alias printf_ulong::format_upper_case#1 = printf_ulong::format_upper_case#2 -Alias printf_ulong::format_radix#1 = printf_ulong::format_radix#2 +Alias printf_str::str#0 = printf_str::str#20 printf_str::str#18 printf_str::str#16 printf_str::str#19 printf_str::str#17 +Alias printf_ulong::uvalue#3 = printf_ulong::uvalue#5 printf_ulong::uvalue#4 +Alias printf_ulong::format_radix#4 = printf_ulong::format_radix#6 printf_ulong::format_radix#5 +Alias printf_ulong::format_min_length#4 = printf_ulong::format_min_length#6 printf_ulong::format_min_length#5 +Alias printf_ulong::format_justify_left#4 = printf_ulong::format_justify_left#6 printf_ulong::format_justify_left#5 +Alias printf_ulong::format_sign_always#2 = printf_ulong::format_sign_always#5 printf_ulong::format_sign_always#6 +Alias printf_ulong::format_zero_padding#4 = printf_ulong::format_zero_padding#6 printf_ulong::format_zero_padding#5 +Alias printf_ulong::format_upper_case#4 = printf_ulong::format_upper_case#6 printf_ulong::format_upper_case#5 +Alias printf_ulong::format_min_length#2 = printf_ulong::format_min_length#3 +Alias printf_ulong::format_justify_left#2 = printf_ulong::format_justify_left#3 +Alias printf_ulong::format_sign_always#3 = printf_ulong::format_sign_always#4 +Alias printf_ulong::format_zero_padding#2 = printf_ulong::format_zero_padding#3 +Alias printf_ulong::format_upper_case#2 = printf_ulong::format_upper_case#3 +Alias printf_ulong::format_radix#2 = printf_ulong::format_radix#3 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 @@ -4320,23 +4339,23 @@ Alias tod_read::return_SEC#0 = tod_read::tod_SEC#0 tod_read::secs#0 tod_read::re Alias tod_read::return_MIN#0 = tod_read::tod_MIN#0 tod_read::mins#0 tod_read::return_MIN#3 tod_read::return_MIN#1 Alias tod_read::return_HOURS#0 = tod_read::tod_HOURS#0 tod_read::hours#0 tod_read::return_HOURS#3 tod_read::return_HOURS#1 Alias tod_str::return#0 = tod_str::return#3 tod_str::return#1 -Alias count#12 = count#32 count#33 count#30 count#27 count#19 -Alias count#1 = count#6 count#31 count#28 count#20 count#13 count#7 count#2 +Alias count#13 = count#35 count#36 count#33 count#30 count#21 +Alias count#1 = count#6 count#22 count#14 count#7 count#34 count#31 count#23 count#15 count#8 count#2 Alias tod_read::return_TENTHS#2 = tod_read::return_TENTHS#4 Alias tod_read::return_SEC#2 = tod_read::return_SEC#4 Alias tod_read::return_MIN#2 = tod_read::return_MIN#4 Alias tod_read::return_HOURS#2 = tod_read::return_HOURS#4 -Alias main::tod_TENTHS#0 = main::$5_TENTHS -Alias main::tod_SEC#0 = main::$5_SEC -Alias main::tod_MIN#0 = main::$5_MIN -Alias main::tod_HOURS#0 = main::$5_HOURS +Alias tod_str::tod_TENTHS#0 = main::$5_TENTHS +Alias tod_str::tod_SEC#0 = main::$5_SEC +Alias tod_str::tod_MIN#0 = main::$5_MIN +Alias tod_str::tod_HOURS#0 = main::$5_HOURS Alias tod_str::return#2 = tod_str::return#4 Alias printf_string::str#0 = main::$6 Alias queens::row#10 = queens::row#3 queens::row#9 queens::row#4 queens::row#5 queens::row#6 queens::row#12 queens::row#11 queens::row#7 queens::row#8 -Alias count#14 = count#26 count#15 count#16 count#29 count#25 count#8 count#23 count#24 +Alias count#16 = count#29 count#17 count#18 count#32 count#28 count#9 count#26 count#27 Alias legal::return#0 = legal::return#5 -Alias count#22 = count#3 -Alias count#4 = count#9 +Alias count#25 = count#3 +Alias count#10 = count#4 Alias legal::i#10 = legal::i#3 legal::i#2 legal::i#4 legal::i#12 legal::i#9 Alias legal::column#1 = legal::column#3 legal::column#2 legal::diff1_b#0 legal::diff1_b#1 legal::column#15 legal::diff1_b#2 legal::column#13 legal::diff1_b#3 legal::column#14 Alias legal::row#1 = legal::row#14 legal::row#11 legal::row#9 legal::row#6 legal::row#7 @@ -4354,13 +4373,13 @@ Alias legal::i#11 = legal::i#8 legal::i#6 Alias legal::row#10 = legal::row#8 legal::row#4 Alias legal::column#5 = legal::column#6 legal::column#7 Alias legal::return#4 = legal::return#6 -Alias count#10 = count#17 +Alias count#11 = count#19 Alias print::i#2 = print::i#3 print::i#4 Alias print::i1#2 = print::i1#6 print::i1#3 print::i1#9 Alias print::i1#10 = print::i1#4 print::i1#7 print::i1#5 print::i1#12 print::i1#13 print::i1#11 Alias print::j#2 = print::j#3 print::j#7 print::j#5 print::j#8 print::j#6 -Alias count#0 = count#18 -Alias count#11 = count#5 +Alias count#0 = count#20 +Alias count#12 = count#5 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias uctoa::value#10 = uctoa::value#7 @@ -4378,13 +4397,13 @@ Alias ultoa::buffer#10 = ultoa::buffer#15 Alias ultoa::digit#2 = ultoa::digit#4 Alias ultoa::max_digits#10 = ultoa::max_digits#6 Alias ultoa::digit_values#10 = ultoa::digit_values#7 -Alias printf_ulong::uvalue#1 = printf_ulong::uvalue#2 -Alias printf_ulong::format_radix#1 = printf_ulong::format_radix#3 -Alias printf_ulong::format_min_length#1 = printf_ulong::format_min_length#3 -Alias printf_ulong::format_justify_left#1 = printf_ulong::format_justify_left#3 -Alias printf_ulong::format_sign_always#1 = printf_ulong::format_sign_always#2 -Alias printf_ulong::format_zero_padding#1 = printf_ulong::format_zero_padding#3 -Alias printf_ulong::format_upper_case#1 = printf_ulong::format_upper_case#3 +Alias printf_ulong::uvalue#2 = printf_ulong::uvalue#3 +Alias printf_ulong::format_radix#2 = printf_ulong::format_radix#4 +Alias printf_ulong::format_min_length#2 = printf_ulong::format_min_length#4 +Alias printf_ulong::format_justify_left#2 = printf_ulong::format_justify_left#4 +Alias printf_ulong::format_sign_always#2 = printf_ulong::format_sign_always#3 +Alias printf_ulong::format_zero_padding#2 = printf_ulong::format_zero_padding#4 +Alias printf_ulong::format_upper_case#2 = printf_ulong::format_upper_case#4 Alias printf_uint::uvalue#1 = printf_uint::uvalue#2 Alias printf_uint::format_radix#1 = printf_uint::format_radix#3 Alias printf_uint::format_min_length#1 = printf_uint::format_min_length#3 @@ -4414,7 +4433,7 @@ Alias printf_number_buffer::format_justify_left#11 = printf_number_buffer::forma Alias printf_string::format_justify_left#1 = printf_string::format_justify_left#3 printf_string::format_justify_left#2 Alias printf_string::str#1 = printf_string::str#4 printf_string::str#2 Alias printf_string::padding#3 = printf_string::padding#4 -Alias count#14 = count#4 +Alias count#10 = count#16 Alias legal::i#10 = legal::i#13 legal::i#11 Alias legal::row#1 = legal::row#12 legal::row#10 Alias legal::column#1 = legal::column#10 legal::column#5 @@ -4472,13 +4491,6 @@ Identical Phi Values (dword) ultoa_append::sub#1 (dword) ultoa_append::sub#3 Identical Phi Values (byte*) ultoa_append::buffer#1 (byte*) ultoa_append::buffer#3 Identical Phi Values (byte) printf_padding::length#5 (byte) printf_padding::length#6 Identical Phi Values (byte) printf_padding::pad#5 (byte) printf_padding::pad#7 -Identical Phi Values (byte) printf_ulong::format_sign_always#1 (byte) printf_ulong::format_sign_always#0 -Identical Phi Values (dword) printf_ulong::uvalue#1 (dword) printf_ulong::uvalue#0 -Identical Phi Values (byte) printf_ulong::format_radix#1 (byte) printf_ulong::format_radix#0 -Identical Phi Values (byte) printf_ulong::format_min_length#1 (byte) printf_ulong::format_min_length#0 -Identical Phi Values (byte) printf_ulong::format_justify_left#1 (byte) printf_ulong::format_justify_left#0 -Identical Phi Values (byte) printf_ulong::format_zero_padding#1 (byte) printf_ulong::format_zero_padding#0 -Identical Phi Values (byte) printf_ulong::format_upper_case#1 (byte) printf_ulong::format_upper_case#0 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 @@ -4497,16 +4509,16 @@ Identical Phi Values (byte) tod_str::tod_HOURS#1 (byte) tod_str::tod_HOURS#0 Identical Phi Values (byte) tod_str::tod_MIN#1 (byte) tod_str::tod_MIN#0 Identical Phi Values (byte) tod_str::tod_SEC#1 (byte) tod_str::tod_SEC#0 Identical Phi Values (byte) tod_str::tod_TENTHS#1 (byte) tod_str::tod_TENTHS#0 -Identical Phi Values (dword) count#12 (dword) count#0 -Identical Phi Values (dword) count#1 (dword) count#14 -Identical Phi Values (dword) count#21 (dword) count#12 +Identical Phi Values (dword) count#13 (dword) count#0 +Identical Phi Values (dword) count#1 (dword) count#10 +Identical Phi Values (dword) count#24 (dword) count#13 Identical Phi Values (byte) legal::row#3 (byte) legal::row#0 Identical Phi Values (byte) legal::column#4 (byte) legal::column#0 Identical Phi Values (byte) legal::row#1 (byte) legal::row#3 Identical Phi Values (byte) legal::column#1 (byte) legal::column#4 -Identical Phi Values (dword) count#10 (dword) count#22 +Identical Phi Values (dword) count#11 (dword) count#25 Identical Phi Values (byte) print::i1#10 (byte) print::i1#2 -Identical Phi Values (dword) count#11 (dword) count#1 +Identical Phi Values (dword) count#12 (dword) count#1 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values (void*) memset::return#0 (void*) memset::str#3 Successful SSA optimization Pass2IdenticalPhiElimination @@ -4539,7 +4551,7 @@ Simple Condition (bool~) printf_padding::$0 [288] if((byte) printf_padding::i#2< Simple Condition (bool~) printf_str::$1 [299] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 Simple Condition (bool~) printf_str::$2 [301] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -Simple Condition (bool~) printf_ulong::$5 [308] if((byte) 0!=(byte) printf_ulong::format_sign_always#0) goto printf_ulong::@1 +Simple Condition (bool~) printf_ulong::$5 [308] if((byte) 0!=(byte) printf_ulong::format_sign_always#2) goto printf_ulong::@1 Simple Condition (bool~) printf_uint::$5 [329] if((byte) 0!=(byte) printf_uint::format_sign_always#0) goto printf_uint::@1 Simple Condition (bool~) printf_uchar::$5 [350] if((byte) 0!=(byte) printf_uchar::format_sign_always#2) goto printf_uchar::@1 Simple Condition (bool~) printf_number_buffer::$0 [372] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 @@ -4549,20 +4561,20 @@ Simple Condition (bool~) printf_number_buffer::$7 [395] if((byte) 0==(byte) prin Simple Condition (bool~) printf_number_buffer::$12 [405] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 Simple Condition (bool~) printf_string::$0 [426] if((byte) 0==(byte) printf_string::format_min_length#0) goto printf_string::@1 Simple Condition (bool~) printf_string::$12 [440] if((signed byte) printf_string::padding#1>=(signed byte) 0) goto printf_string::@1 -Simple Condition (bool~) queens::$7 [544] if((number) 0!=(number) 1) goto queens::@2 -Simple Condition (bool~) queens::$1 [547] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 -Simple Condition (bool~) queens::$6 [550] if((byte) queens::row#10==(byte) 1) goto queens::@return -Simple Condition (bool~) queens::$3 [557] if((byte) 0==(byte~) queens::$2) goto queens::@1 -Simple Condition (bool~) queens::$4 [559] if((byte) queens::row#10==(byte) 8) goto queens::@4 -Simple Condition (bool~) legal::$1 [570] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 -Simple Condition (bool~) legal::$2 [572] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@4 -Simple Condition (bool~) legal::diff1_$0 [577] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 -Simple Condition (bool~) legal::diff2_$0 [582] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 -Simple Condition (bool~) legal::$6 [587] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@5 -Simple Condition (bool~) print::$1 [608] if((byte) print::i#2<=(byte) 8) goto print::@2 -Simple Condition (bool~) print::$3 [621] if((byte) print::i1#2<=(byte) 8) goto print::@5 -Simple Condition (bool~) print::$5 [635] if((byte) print::j#2<=(byte) 8) goto print::@7 -Simple Condition (bool~) print::$6 [637] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@9 +Simple Condition (bool~) queens::$7 [552] if((number) 0!=(number) 1) goto queens::@2 +Simple Condition (bool~) queens::$1 [555] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 +Simple Condition (bool~) queens::$6 [558] if((byte) queens::row#10==(byte) 1) goto queens::@return +Simple Condition (bool~) queens::$3 [565] if((byte) 0==(byte~) queens::$2) goto queens::@1 +Simple Condition (bool~) queens::$4 [567] if((byte) queens::row#10==(byte) 8) goto queens::@4 +Simple Condition (bool~) legal::$1 [578] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 +Simple Condition (bool~) legal::$2 [580] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@4 +Simple Condition (bool~) legal::diff1_$0 [585] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 +Simple Condition (bool~) legal::diff2_$0 [590] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 +Simple Condition (bool~) legal::$6 [595] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@5 +Simple Condition (bool~) print::$1 [616] if((byte) print::i#2<=(byte) 8) goto print::@2 +Simple Condition (bool~) print::$3 [629] if((byte) print::i1#2<=(byte) 8) goto print::@5 +Simple Condition (bool~) print::$5 [643] if((byte) print::j#2<=(byte) 8) goto print::@7 +Simple Condition (bool~) print::$6 [645] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@9 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting && if()-condition to two if()s [3] (bool~) toupper::$2 ← (bool~) toupper::$0 && (bool~) toupper::$1 Rewriting ! if()-condition to reversed if() [89] (bool~) uctoa::$8 ← ! (bool~) uctoa::$7 @@ -4684,21 +4696,29 @@ Constant (const byte) printf_uint::format_zero_padding#0 = 0 Constant (const byte) printf_uint::format_upper_case#0 = 0 Constant (const byte) printf_uint::format_radix#0 = DECIMAL Constant (const byte*) printf_str::str#5 = main::str2 -Constant (const byte) printf_string::format_min_length#0 = 0 -Constant (const byte) printf_string::format_justify_left#0 = 0 -Constant (const byte) queens::row#0 = 1 -Constant (const byte) legal::i#0 = 1 -Constant (const byte) legal::return#1 = 1 -Constant (const byte) legal::return#2 = 0 -Constant (const byte) legal::return#3 = 0 -Constant (const byte*) printf_str::str#6 = print::str Constant (const byte) printf_ulong::format_min_length#0 = 0 Constant (const byte) printf_ulong::format_justify_left#0 = 0 Constant (const byte) printf_ulong::format_sign_always#0 = 0 Constant (const byte) printf_ulong::format_zero_padding#0 = 0 Constant (const byte) printf_ulong::format_upper_case#0 = 0 Constant (const byte) printf_ulong::format_radix#0 = DECIMAL -Constant (const byte*) printf_str::str#7 = print::str1 +Constant (const byte*) printf_str::str#6 = main::str3 +Constant (const byte) printf_string::format_min_length#0 = 0 +Constant (const byte) printf_string::format_justify_left#0 = 0 +Constant (const byte*) printf_str::str#7 = main::str4 +Constant (const byte) queens::row#0 = 1 +Constant (const byte) legal::i#0 = 1 +Constant (const byte) legal::return#1 = 1 +Constant (const byte) legal::return#2 = 0 +Constant (const byte) legal::return#3 = 0 +Constant (const byte*) printf_str::str#8 = print::str +Constant (const byte) printf_ulong::format_min_length#1 = 0 +Constant (const byte) printf_ulong::format_justify_left#1 = 0 +Constant (const byte) printf_ulong::format_sign_always#1 = 0 +Constant (const byte) printf_ulong::format_zero_padding#1 = 0 +Constant (const byte) printf_ulong::format_upper_case#1 = 0 +Constant (const byte) printf_ulong::format_radix#1 = DECIMAL +Constant (const byte*) printf_str::str#9 = print::str1 Constant (const byte) print::i#0 = 1 Constant (const byte) printf_uchar::format_min_length#0 = 0 Constant (const byte) printf_uchar::format_justify_left#0 = 0 @@ -4707,7 +4727,7 @@ Constant (const byte) printf_uchar::format_zero_padding#0 = 0 Constant (const byte) printf_uchar::format_upper_case#0 = 0 Constant (const byte) printf_uchar::format_radix#0 = HEXADECIMAL Constant (const byte) print::i1#0 = 1 -Constant (const byte*) printf_str::str#8 = print::str2 +Constant (const byte*) printf_str::str#10 = print::str2 Constant (const byte) printf_uchar::format_min_length#1 = 0 Constant (const byte) printf_uchar::format_justify_left#1 = 0 Constant (const byte) printf_uchar::format_sign_always#1 = 0 @@ -4715,20 +4735,13 @@ Constant (const byte) printf_uchar::format_zero_padding#1 = 0 Constant (const byte) printf_uchar::format_upper_case#1 = 0 Constant (const byte) printf_uchar::format_radix#1 = HEXADECIMAL Constant (const byte) print::j#0 = 1 -Constant (const byte*) printf_str::str#9 = print::str3 -Constant (const byte*) printf_str::str#10 = print::str4 +Constant (const byte*) printf_str::str#11 = print::str3 +Constant (const byte*) printf_str::str#12 = print::str4 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) memcpy::src#0 = (byte*)memcpy::source#0 Constant (const byte*) memcpy::dst#0 = (byte*)memcpy::destination#0 Constant (const byte*) memcpy::$2 = (byte*)memcpy::source#0 Constant (const void*) memcpy::return#2 = memcpy::destination#0 -Constant (const byte) ultoa::radix#0 = printf_ulong::format_radix#0 -Constant (const byte) printf_number_buffer::format_min_length#0 = printf_ulong::format_min_length#0 -Constant (const byte) printf_number_buffer::format_justify_left#0 = printf_ulong::format_justify_left#0 -Constant (const byte) printf_number_buffer::format_sign_always#0 = printf_ulong::format_sign_always#0 -Constant (const byte) printf_number_buffer::format_zero_padding#0 = printf_ulong::format_zero_padding#0 -Constant (const byte) printf_number_buffer::format_upper_case#0 = printf_ulong::format_upper_case#0 -Constant (const byte) printf_number_buffer::format_radix#0 = printf_ulong::format_radix#0 Constant (const word) utoa::value#1 = printf_uint::uvalue#0 Constant (const byte) utoa::radix#0 = printf_uint::format_radix#0 Constant (const byte) printf_number_buffer::format_min_length#1 = printf_uint::format_min_length#0 @@ -4749,19 +4762,14 @@ if() condition always true - replacing block destination [117] if((const byte) u if() condition always false - eliminating [121] if((const byte) utoa::radix#0==(const byte) HEXADECIMAL) goto utoa::@2 if() condition always false - eliminating [125] if((const byte) utoa::radix#0==(const byte) OCTAL) goto utoa::@3 if() condition always false - eliminating [129] if((const byte) utoa::radix#0==(const byte) BINARY) goto utoa::@4 -if() condition always true - replacing block destination [180] if((const byte) ultoa::radix#0==(const byte) DECIMAL) goto ultoa::@1 -if() condition always false - eliminating [184] if((const byte) ultoa::radix#0==(const byte) HEXADECIMAL) goto ultoa::@2 -if() condition always false - eliminating [188] if((const byte) ultoa::radix#0==(const byte) OCTAL) goto ultoa::@3 -if() condition always false - eliminating [192] if((const byte) ultoa::radix#0==(const byte) BINARY) goto ultoa::@4 if() condition always true - replacing block destination [295] if(true) goto printf_str::@2 -if() condition always false - eliminating [308] if((byte) 0!=(const byte) printf_ulong::format_sign_always#0) goto printf_ulong::@1 if() condition always false - eliminating [329] if((byte) 0!=(const byte) printf_uint::format_sign_always#0) goto printf_uint::@1 if() condition always true - replacing block destination [426] if((byte) 0==(const byte) printf_string::format_min_length#0) goto printf_string::@1 -if() condition always true - replacing block destination [544] if((number) 0!=(number) 1) goto queens::@2 +if() condition always true - replacing block destination [552] if((number) 0!=(number) 1) goto queens::@2 Successful SSA optimization Pass2ConstantIfs -Rewriting conditional comparison [608] if((byte) print::i#2<=(byte) 8) goto print::@2 -Rewriting conditional comparison [621] if((byte) print::i1#2<=(byte) 8) goto print::@5 -Rewriting conditional comparison [635] if((byte) print::j#2<=(byte) 8) goto print::@7 +Rewriting conditional comparison [616] if((byte) print::i#2<=(byte) 8) goto print::@2 +Rewriting conditional comparison [629] if((byte) print::i1#2<=(byte) 8) goto print::@5 +Rewriting conditional comparison [643] if((byte) print::j#2<=(byte) 8) goto print::@7 Simplifying constant evaluating to zero (signed byte)(const byte) printf_string::format_min_length#0 in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero (byte*)&printf_buffer in [312] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte~) printf_ulong::$2 @@ -4774,13 +4782,15 @@ Simplifying expression containing zero printf_string::len#0 in [438] (signed byt Simplifying expression containing zero tod_buffer in [472] *((const byte*) tod_buffer + (byte) 0) ← (byte~) tod_str::$1 Simplifying expression containing zero (byte*)&TOD_ZERO in [511] (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS) Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused variable (void*) memset::return#2 and assignment [152] (void*) memset::return#2 ← (void*) memset::str#3 -Eliminating unused variable (void*) memset::return#3 and assignment [176] (void*) memset::return#3 ← (void*) memset::str#3 -Eliminating unused variable (byte) printf_number_buffer::format_sign_always#2 and assignment [221] (byte) printf_number_buffer::format_sign_always#2 ← (byte) printf_uchar::format_sign_always#2 -Eliminating unused variable (byte) printf_number_buffer::format_radix#2 and assignment [224] (byte) printf_number_buffer::format_radix#2 ← (byte) printf_uchar::format_radix#2 -Eliminating unused variable (byte*) strupr::return#2 and assignment [261] (byte*) strupr::return#2 ← (byte*) strupr::str#0 -Eliminating unused variable (struct TIME_OF_DAY) tod_read::return#0 and assignment [293] (struct TIME_OF_DAY) tod_read::return#0 ← struct-unwound {(byte) tod_read::return_TENTHS#0, (byte) tod_read::return_SEC#0, (byte) tod_read::return_MIN#0, (byte) tod_read::return_HOURS#0} -Eliminating unused variable (struct TIME_OF_DAY) tod_read::return#1 and assignment [294] (struct TIME_OF_DAY) tod_read::return#1 ← struct-unwound {(byte) tod_read::return_TENTHS#0, (byte) tod_read::return_SEC#0, (byte) tod_read::return_MIN#0, (byte) tod_read::return_HOURS#0} +Eliminating unused variable (void*) memset::return#2 and assignment [156] (void*) memset::return#2 ← (void*) memset::str#3 +Eliminating unused variable (void*) memset::return#3 and assignment [180] (void*) memset::return#3 ← (void*) memset::str#3 +Eliminating unused variable (byte) printf_number_buffer::format_sign_always#0 and assignment [212] (byte) printf_number_buffer::format_sign_always#0 ← (byte) printf_ulong::format_sign_always#2 +Eliminating unused variable (byte) printf_number_buffer::format_radix#0 and assignment [215] (byte) printf_number_buffer::format_radix#0 ← (byte) printf_ulong::format_radix#2 +Eliminating unused variable (byte) printf_number_buffer::format_sign_always#2 and assignment [234] (byte) printf_number_buffer::format_sign_always#2 ← (byte) printf_uchar::format_sign_always#2 +Eliminating unused variable (byte) printf_number_buffer::format_radix#2 and assignment [237] (byte) printf_number_buffer::format_radix#2 ← (byte) printf_uchar::format_radix#2 +Eliminating unused variable (byte*) strupr::return#2 and assignment [274] (byte*) strupr::return#2 ← (byte*) strupr::str#0 +Eliminating unused variable (struct TIME_OF_DAY) tod_read::return#0 and assignment [306] (struct TIME_OF_DAY) tod_read::return#0 ← struct-unwound {(byte) tod_read::return_TENTHS#0, (byte) tod_read::return_SEC#0, (byte) tod_read::return_MIN#0, (byte) tod_read::return_HOURS#0} +Eliminating unused variable (struct TIME_OF_DAY) tod_read::return#1 and assignment [307] (struct TIME_OF_DAY) tod_read::return#1 ← struct-unwound {(byte) tod_read::return_TENTHS#0, (byte) tod_read::return_SEC#0, (byte) tod_read::return_MIN#0, (byte) tod_read::return_HOURS#0} 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 @@ -4789,9 +4799,6 @@ Eliminating unused constant (const word*) utoa::digit_values#0 Eliminating unused constant (const byte) utoa::radix#0 Eliminating unused constant (const byte) ultoa::max_digits#0 Eliminating unused constant (const dword*) ultoa::digit_values#0 -Eliminating unused constant (const byte) ultoa::radix#0 -Eliminating unused constant (const byte) printf_number_buffer::format_sign_always#0 -Eliminating unused constant (const byte) printf_number_buffer::format_radix#0 Eliminating unused constant (const byte) printf_number_buffer::format_sign_always#1 Eliminating unused constant (const byte) printf_number_buffer::format_radix#1 Eliminating unused constant (const byte) printf_string::format_min_length#0 @@ -4799,17 +4806,12 @@ Eliminating unused constant (const signed byte) printf_string::$13 Eliminating unused constant (const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN Eliminating unused constant (const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS Successful SSA optimization PassNEliminateUnusedVars -Eliminating unused constant (const byte) printf_ulong::format_sign_always#0 -Eliminating unused constant (const byte) printf_ulong::format_radix#0 Eliminating unused constant (const byte) printf_uint::format_sign_always#0 Eliminating unused constant (const byte) printf_uint::format_radix#0 Successful SSA optimization PassNEliminateUnusedVars Eliminating variable (byte*) utoa::buffer#0 from unused block utoa::@9 Eliminating variable (byte*) utoa::buffer#1 from unused block utoa::@9 Eliminating variable (byte*) utoa::buffer#2 from unused block utoa::@9 -Eliminating variable (byte*) ultoa::buffer#0 from unused block ultoa::@9 -Eliminating variable (byte*) ultoa::buffer#1 from unused block ultoa::@9 -Eliminating variable (byte*) ultoa::buffer#2 from unused block ultoa::@9 Eliminating variable (word) strlen::return#3 from unused block printf_string::@3 Eliminating variable (word~) printf_string::$9 from unused block printf_string::@7 Eliminating variable (signed byte) printf_string::len#0 from unused block printf_string::@7 @@ -4827,21 +4829,6 @@ Removing PHI-reference to removed block (utoa::@4) in block utoa::@5 Removing PHI-reference to removed block (utoa::@4) in block utoa::@5 Removing unused block utoa::@4 Removing unused block utoa::@9 -Removing unused block ultoa::@6 -Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 -Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 -Removing unused block ultoa::@2 -Removing unused block ultoa::@7 -Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 -Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 -Removing unused block ultoa::@3 -Removing unused block ultoa::@8 -Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 -Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 -Removing unused block ultoa::@4 -Removing unused block ultoa::@9 -Removing PHI-reference to removed block (printf_ulong::@1) in block printf_ulong::@3 -Removing unused block printf_ulong::@1 Removing PHI-reference to removed block (printf_uint::@1) in block printf_uint::@3 Removing unused block printf_uint::@1 Removing PHI-reference to removed block (printf_string::@3) in block strlen @@ -4906,60 +4893,57 @@ Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scrol Identical Phi Values (byte*) strlen::str#5 (byte*) strlen::str#1 Identical Phi Values (byte) utoa::max_digits#7 (const byte) utoa::max_digits#1 Identical Phi Values (word*) utoa::digit_values#8 (const word*) utoa::digit_values#1 -Identical Phi Values (byte) ultoa::max_digits#7 (const byte) ultoa::max_digits#1 -Identical Phi Values (dword*) ultoa::digit_values#8 (const dword*) ultoa::digit_values#1 -Identical Phi Values (byte~) printf_ulong::$2 (const byte) printf_ulong::$0 Identical Phi Values (byte~) printf_uint::$2 (const byte) printf_uint::$0 Identical Phi Values (signed byte) printf_string::padding#3 (const signed byte) printf_string::padding#0 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition (bool~) toupper::$0 [2] if((byte) toupper::ch#0>=(byte) 'a') goto toupper::@3 Simple Condition (bool~) uctoa::$11 [57] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@14 Simple Condition (bool~) utoa::$12 [85] if((byte) 0!=(byte) utoa::started#2) goto utoa::@14 -Simple Condition (bool~) ultoa::$12 [114] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@14 -Simple Condition (bool~) printf_number_buffer::$1 [214] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@23 -Simple Condition (bool~) printf_number_buffer::$33 [230] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 -Simple Condition (bool~) printf_number_buffer::$34 [240] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@26 -Simple Condition (bool~) printf_string::$1 [248] if((byte) 0==(const byte) printf_string::format_justify_left#0) goto printf_string::@11 -Simple Condition (bool~) printf_string::$16 [251] if((byte) 0!=(const byte) printf_string::format_justify_left#0) goto printf_string::@12 -Simple Condition (bool~) toupper::$1 [378] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -Simple Condition (bool~) uctoa::$6 [379] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@14 -Simple Condition (bool~) utoa::$6 [380] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@14 -Simple Condition (bool~) ultoa::$6 [381] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@14 -Simple Condition (bool~) printf_number_buffer::$35 [383] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -Simple Condition (bool~) printf_number_buffer::$2 [384] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@22 -Simple Condition (bool~) printf_number_buffer::$36 [386] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -Simple Condition (bool~) printf_number_buffer::$37 [388] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -Simple Condition (bool~) printf_number_buffer::$14 [389] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@25 -Simple Condition (bool~) printf_string::$17 [391] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@5 -Simple Condition (bool~) printf_string::$18 [393] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@6 +Simple Condition (bool~) ultoa::$12 [125] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@14 +Simple Condition (bool~) printf_number_buffer::$1 [232] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@23 +Simple Condition (bool~) printf_number_buffer::$33 [248] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 +Simple Condition (bool~) printf_number_buffer::$34 [258] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@26 +Simple Condition (bool~) printf_string::$1 [266] if((byte) 0==(const byte) printf_string::format_justify_left#0) goto printf_string::@11 +Simple Condition (bool~) printf_string::$16 [269] if((byte) 0!=(const byte) printf_string::format_justify_left#0) goto printf_string::@12 +Simple Condition (bool~) toupper::$1 [396] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 +Simple Condition (bool~) uctoa::$6 [397] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@14 +Simple Condition (bool~) utoa::$6 [398] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@14 +Simple Condition (bool~) ultoa::$6 [399] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@14 +Simple Condition (bool~) printf_number_buffer::$35 [401] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 +Simple Condition (bool~) printf_number_buffer::$2 [402] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@22 +Simple Condition (bool~) printf_number_buffer::$36 [404] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 +Simple Condition (bool~) printf_number_buffer::$37 [406] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 +Simple Condition (bool~) printf_number_buffer::$14 [407] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@25 +Simple Condition (bool~) printf_string::$17 [409] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@5 +Simple Condition (bool~) printf_string::$18 [411] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@6 Successful SSA optimization Pass2ConditionalJumpSimplification Negating conditional jump and destination [2] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@2 -Negating conditional jump and destination [214] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [230] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -Negating conditional jump and destination [240] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -Negating conditional jump and destination [248] if((byte) 0!=(const byte) printf_string::format_justify_left#0) goto printf_string::@2 -Negating conditional jump and destination [251] if((byte) 0==(const byte) printf_string::format_justify_left#0) goto printf_string::@return -Negating conditional jump and destination [384] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [389] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return +Negating conditional jump and destination [232] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 +Negating conditional jump and destination [248] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 +Negating conditional jump and destination [258] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return +Negating conditional jump and destination [266] if((byte) 0!=(const byte) printf_string::format_justify_left#0) goto printf_string::@2 +Negating conditional jump and destination [269] if((byte) 0==(const byte) printf_string::format_justify_left#0) goto printf_string::@return +Negating conditional jump and destination [402] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 +Negating conditional jump and destination [407] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [6] (byte*) memcpy::src_end#0 ← (const byte*) memcpy::$2 + (const word) memcpy::num#0 Constant right-side identified [43] (byte*) uctoa::buffer#0 ← ++ (const byte*) uctoa::buffer#5 Constant right-side identified [79] (byte~) utoa::$4 ← (const byte) utoa::max_digits#1 - (byte) 1 -Constant right-side identified [108] (byte~) ultoa::$4 ← (const byte) ultoa::max_digits#1 - (byte) 1 -Constant right-side identified [252] (byte) printf_padding::length#3 ← (byte)(const signed byte) printf_string::padding#0 -Constant right-side identified [254] (byte) printf_padding::length#4 ← (byte)(const signed byte) printf_string::padding#0 +Constant right-side identified [110] (byte*) ultoa::buffer#0 ← ++ (const byte*) ultoa::buffer#5 +Constant right-side identified [270] (byte) printf_padding::length#3 ← (byte)(const signed byte) printf_string::padding#0 +Constant right-side identified [272] (byte) printf_padding::length#4 ← (byte)(const signed byte) printf_string::padding#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte*) memcpy::src_end#0 = memcpy::$2+memcpy::num#0 Constant (const byte*) uctoa::buffer#0 = ++uctoa::buffer#5 Constant (const byte) utoa::$4 = utoa::max_digits#1-1 -Constant (const byte) ultoa::$4 = ultoa::max_digits#1-1 +Constant (const byte*) ultoa::buffer#0 = ++ultoa::buffer#5 Constant (const byte) printf_padding::length#3 = (byte)printf_string::padding#0 Constant (const byte) printf_padding::length#4 = (byte)printf_string::padding#0 Successful SSA optimization Pass2ConstantIdentification -if() condition always false - eliminating [248] if((byte) 0!=(const byte) printf_string::format_justify_left#0) goto printf_string::@2 -if() condition always true - replacing block destination [251] if((byte) 0==(const byte) printf_string::format_justify_left#0) goto printf_string::@return -if() condition always false - eliminating [391] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@5 -if() condition always false - eliminating [393] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@6 +if() condition always false - eliminating [266] if((byte) 0!=(const byte) printf_string::format_justify_left#0) goto printf_string::@2 +if() condition always true - replacing block destination [269] if((byte) 0==(const byte) printf_string::format_justify_left#0) goto printf_string::@return +if() condition always false - eliminating [409] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@5 +if() condition always false - eliminating [411] if((signed byte) 0!=(const signed byte) printf_string::padding#0) goto printf_string::@6 Successful SSA optimization Pass2ConstantIfs Simplifying constant evaluating to zero (byte)(const signed byte) printf_string::padding#0 in Simplifying constant evaluating to zero (byte)(const signed byte) printf_string::padding#0 in @@ -4971,13 +4955,6 @@ Eliminating unused constant (const byte) utoa::max_digits#3 Eliminating unused constant (const word*) utoa::digit_values#3 Eliminating unused constant (const byte) utoa::max_digits#4 Eliminating unused constant (const word*) utoa::digit_values#4 -Eliminating unused constant (const byte) ultoa::max_digits#2 -Eliminating unused constant (const dword*) ultoa::digit_values#2 -Eliminating unused constant (const byte) ultoa::max_digits#3 -Eliminating unused constant (const dword*) ultoa::digit_values#3 -Eliminating unused constant (const byte) ultoa::max_digits#4 -Eliminating unused constant (const dword*) ultoa::digit_values#4 -Eliminating unused constant (const byte) printf_ulong::$1 Eliminating unused constant (const byte) printf_uint::$1 Eliminating unused constant (const signed byte) printf_string::padding#0 Eliminating unused constant (const signed byte) printf_string::padding#2 @@ -4986,9 +4963,6 @@ Successful SSA optimization PassNEliminateUnusedVars Eliminating unused constant (const word*) RADIX_BINARY_VALUES Eliminating unused constant (const word*) RADIX_OCTAL_VALUES Eliminating unused constant (const word*) RADIX_HEXADECIMAL_VALUES -Eliminating unused constant (const dword*) RADIX_BINARY_VALUES_LONG -Eliminating unused constant (const dword*) RADIX_OCTAL_VALUES_LONG -Eliminating unused constant (const dword*) RADIX_HEXADECIMAL_VALUES_LONG Successful SSA optimization PassNEliminateUnusedVars Removing PHI-reference to removed block (printf_string::@5) in block printf_padding Removing PHI-reference to removed block (printf_string::@5) in block printf_padding @@ -5002,8 +4976,10 @@ Removing unused block printf_string::@12 Successful SSA optimization Pass2EliminateUnusedBlocks Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Constant right-side identified [40] (byte*) uctoa::buffer#1 ← ++ (const byte*) uctoa::buffer#0 +Constant right-side identified [100] (byte*) ultoa::buffer#1 ← ++ (const byte*) ultoa::buffer#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte*) uctoa::buffer#1 = ++uctoa::buffer#0 +Constant (const byte*) ultoa::buffer#1 = ++ultoa::buffer#0 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant (const byte) printf_padding::pad#3 Eliminating unused constant (const byte) printf_padding::pad#4 @@ -5012,16 +4988,18 @@ Eliminating unused constant (const byte) printf_padding::length#4 Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Constant right-side identified [41] (byte*) uctoa::buffer#2 ← ++ (const byte*) uctoa::buffer#1 +Constant right-side identified [100] (byte*) ultoa::buffer#2 ← ++ (const byte*) ultoa::buffer#1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte*) uctoa::buffer#2 = ++uctoa::buffer#1 +Constant (const byte*) ultoa::buffer#2 = ++ultoa::buffer#1 Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Inlining Noop Cast [12] (byte*~) memset::$4 ← (byte*)(void*) memset::str#3 keeping memset::str#3 Inlining Noop Cast [14] (byte*) memset::dst#0 ← (byte*)(void*) memset::str#3 keeping memset::str#3 -Inlining Noop Cast [201] (signed byte~) printf_number_buffer::$25 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 keeping printf_number_buffer::format_min_length#3 +Inlining Noop Cast [219] (signed byte~) printf_number_buffer::$25 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 keeping printf_number_buffer::format_min_length#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift [70] (byte~) utoa::$10 ← (byte) utoa::digit#2 * (const byte) SIZEOF_WORD -Rewriting multiplication to use shift [95] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 * (const byte) SIZEOF_DWORD +Rewriting multiplication to use shift [105] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 * (const byte) SIZEOF_DWORD Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings (const byte*) memcpy::src#0 Inlining constant with var siblings (const byte*) memcpy::dst#0 @@ -5054,10 +5032,21 @@ Inlining constant with var siblings (const byte) utoa::started#1 Inlining constant with var siblings (const byte*) utoa::buffer#5 Inlining constant with var siblings (const word) utoa::value#1 Inlining constant with var siblings (const byte) utoa_append::digit#0 +Inlining constant with var siblings (const byte) ultoa::max_digits#1 +Inlining constant with var siblings (const dword*) ultoa::digit_values#1 +Inlining constant with var siblings (const byte) ultoa::max_digits#2 +Inlining constant with var siblings (const dword*) ultoa::digit_values#2 +Inlining constant with var siblings (const byte) ultoa::max_digits#3 +Inlining constant with var siblings (const dword*) ultoa::digit_values#3 +Inlining constant with var siblings (const byte) ultoa::max_digits#4 +Inlining constant with var siblings (const dword*) ultoa::digit_values#4 Inlining constant with var siblings (const byte) ultoa::started#0 Inlining constant with var siblings (const byte) ultoa::digit#0 Inlining constant with var siblings (const byte) ultoa::started#1 Inlining constant with var siblings (const byte*) ultoa::buffer#5 +Inlining constant with var siblings (const byte*) ultoa::buffer#0 +Inlining constant with var siblings (const byte*) ultoa::buffer#1 +Inlining constant with var siblings (const byte*) ultoa::buffer#2 Inlining constant with var siblings (const byte) ultoa_append::digit#0 Inlining constant with var siblings (const byte) printf_padding::i#0 Inlining constant with var siblings (const byte) printf_padding::pad#0 @@ -5071,7 +5060,21 @@ Inlining constant with var siblings (const byte*) printf_str::str#7 Inlining constant with var siblings (const byte*) printf_str::str#8 Inlining constant with var siblings (const byte*) printf_str::str#9 Inlining constant with var siblings (const byte*) printf_str::str#10 +Inlining constant with var siblings (const byte*) printf_str::str#11 +Inlining constant with var siblings (const byte*) printf_str::str#12 Inlining constant with var siblings (const byte*) printf_str::str#2 +Inlining constant with var siblings (const byte) printf_ulong::format_min_length#0 +Inlining constant with var siblings (const byte) printf_ulong::format_justify_left#0 +Inlining constant with var siblings (const byte) printf_ulong::format_sign_always#0 +Inlining constant with var siblings (const byte) printf_ulong::format_zero_padding#0 +Inlining constant with var siblings (const byte) printf_ulong::format_upper_case#0 +Inlining constant with var siblings (const byte) printf_ulong::format_radix#0 +Inlining constant with var siblings (const byte) printf_ulong::format_min_length#1 +Inlining constant with var siblings (const byte) printf_ulong::format_justify_left#1 +Inlining constant with var siblings (const byte) printf_ulong::format_sign_always#1 +Inlining constant with var siblings (const byte) printf_ulong::format_zero_padding#1 +Inlining constant with var siblings (const byte) printf_ulong::format_upper_case#1 +Inlining constant with var siblings (const byte) printf_ulong::format_radix#1 Inlining constant with var siblings (const byte) printf_uchar::format_min_length#0 Inlining constant with var siblings (const byte) printf_uchar::format_justify_left#0 Inlining constant with var siblings (const byte) printf_uchar::format_sign_always#0 @@ -5089,10 +5092,6 @@ Inlining constant with var siblings (const byte*) printf_number_buffer::buffer_d Inlining constant with var siblings (const byte*) printf_number_buffer::buffer_digits#2 Inlining constant with var siblings (const signed byte) printf_number_buffer::padding#0 Inlining constant with var siblings (const signed byte) printf_number_buffer::padding#2 -Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#0 -Inlining constant with var siblings (const byte) printf_number_buffer::format_upper_case#0 Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#1 Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#1 Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#1 @@ -5106,100 +5105,120 @@ Inlining constant with var siblings (const byte) print::i#0 Inlining constant with var siblings (const byte) print::i1#0 Inlining constant with var siblings (const byte) print::j#0 Inlining constant with var siblings (const dword) count#0 -Constant inlined uctoa_append::digit#0 = (byte) 0 Constant inlined utoa::digit_values#1 = (const word*) RADIX_DECIMAL_VALUES -Constant inlined printf_number_buffer::format_justify_left#0 = (const byte) printf_ulong::format_justify_left#0 Constant inlined printf_number_buffer::buffer_digits#0 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_number_buffer::buffer_digits#1 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_number_buffer::buffer_digits#2 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_number_buffer::format_justify_left#1 = (const byte) printf_uint::format_justify_left#0 -Constant inlined printf_uchar::format_justify_left#0 = (byte) 0 -Constant inlined printf_uchar::format_justify_left#1 = (byte) 0 -Constant inlined memset::num#1 = (byte) $28 -Constant inlined memset::num#0 = (word)(number) $28*(number) $19 Constant inlined strlen::len#0 = (word) 0 -Constant inlined printf_str::str#10 = (const byte*) print::str4 +Constant inlined printf_ulong::format_upper_case#0 = (byte) 0 Constant inlined memcpy::$2 = (byte*)(const void*) memcpy::source#0 Constant inlined utoa::$4 = (const byte) utoa::max_digits#1-(byte) 1 Constant inlined tod_str::return#2 = (const byte*) tod_buffer +Constant inlined printf_ulong::format_min_length#1 = (byte) 0 +Constant inlined printf_ulong::format_upper_case#1 = (byte) 0 Constant inlined tod_str::return#0 = (const byte*) tod_buffer -Constant inlined printf_number_buffer::padding#2 = (signed byte) 0 +Constant inlined printf_ulong::format_min_length#0 = (byte) 0 Constant inlined uctoa::digit#0 = (byte) 0 -Constant inlined print::j#0 = (byte) 1 -Constant inlined ultoa::started#1 = (byte) 1 -Constant inlined count#0 = (dword) 0 +Constant inlined ultoa::buffer#2 = ++++++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined ultoa::buffer#0 = ++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined ultoa::buffer#1 = ++++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_uchar::format_sign_always#1 = (byte) 0 Constant inlined legal::return#2 = (byte) 0 -Constant inlined utoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined ultoa::digit#0 = (byte) 0 Constant inlined legal::return#3 = (byte) 0 Constant inlined printf_uchar::format_sign_always#0 = (byte) 0 -Constant inlined queens::row#0 = (byte) 1 Constant inlined memset::c#0 = (byte) ' ' Constant inlined printf_uchar::format_min_length#1 = (byte) 0 Constant inlined legal::return#1 = (byte) 1 Constant inlined memset::c#1 = (byte) ' ' Constant inlined printf_uchar::format_min_length#0 = (byte) 0 Constant inlined printf_uchar::format_upper_case#1 = (byte) 0 -Constant inlined printf_number_buffer::padding#0 = (signed byte) 0 Constant inlined printf_uchar::format_upper_case#0 = (byte) 0 Constant inlined utoa_append::digit#0 = (byte) 0 -Constant inlined print::i1#0 = (byte) 1 Constant inlined uctoa::digit_values#2 = (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR -Constant inlined uctoa::started#0 = (byte) 0 Constant inlined uctoa::digit_values#1 = (const byte*) RADIX_DECIMAL_VALUES_CHAR -Constant inlined uctoa::started#1 = (byte) 1 Constant inlined uctoa::digit_values#4 = (const byte*) RADIX_BINARY_VALUES_CHAR -Constant inlined memcpy::dst#0 = (byte*)(const void*) memcpy::destination#0 +Constant inlined printf_ulong::format_radix#0 = (const byte) DECIMAL Constant inlined uctoa::digit_values#3 = (const byte*) RADIX_OCTAL_VALUES_CHAR +Constant inlined printf_ulong::format_radix#1 = (const byte) DECIMAL Constant inlined printf_uchar::$0 = (byte) 0 Constant inlined printf_uchar::$1 = (byte) '+' -Constant inlined memcpy::src#0 = (byte*)(const void*) memcpy::source#0 Constant inlined uctoa::max_digits#1 = (byte) 3 -Constant inlined ultoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined printf_number_buffer::format_upper_case#1 = (const byte) printf_uint::format_upper_case#0 -Constant inlined printf_string::str#0 = (const byte*) tod_buffer -Constant inlined ultoa::started#0 = (byte) 0 Constant inlined legal::i#0 = (byte) 1 -Constant inlined printf_number_buffer::format_upper_case#0 = (const byte) printf_ulong::format_upper_case#0 Constant inlined utoa::digit#0 = (byte) 0 -Constant inlined printf_number_buffer::format_min_length#0 = (const byte) printf_ulong::format_min_length#0 +Constant inlined ultoa::max_digits#3 = (byte) $b +Constant inlined ultoa::max_digits#4 = (byte) $20 Constant inlined uctoa::max_digits#3 = (byte) 3 -Constant inlined printf_number_buffer::format_zero_padding#0 = (const byte) printf_ulong::format_zero_padding#0 Constant inlined printf_number_buffer::format_min_length#1 = (const byte) printf_uint::format_min_length#0 Constant inlined uctoa::max_digits#2 = (byte) 2 Constant inlined uctoa::max_digits#4 = (byte) 8 Constant inlined uctoa::buffer#1 = ++++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined memset::str#1 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 Constant inlined uctoa::buffer#2 = ++++++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_padding::pad#0 = (byte) ' ' -Constant inlined printf_number_buffer::format_zero_padding#1 = (const byte) printf_uint::format_zero_padding#0 -Constant inlined memset::str#0 = (void*) 1024 Constant inlined printf_padding::i#0 = (byte) 0 Constant inlined printf_padding::pad#1 = (byte) '0' Constant inlined printf_uchar::format_zero_padding#1 = (byte) 0 Constant inlined uctoa::buffer#0 = ++(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_padding::pad#2 = (byte) ' ' Constant inlined printf_uchar::format_zero_padding#0 = (byte) 0 -Constant inlined printf_uint::$0 = (byte) 0 +Constant inlined printf_ulong::$1 = (byte) '+' Constant inlined printf_ulong::$0 = (byte) 0 +Constant inlined ultoa::max_digits#1 = (byte) $a Constant inlined utoa::started#1 = (byte) 1 +Constant inlined ultoa::max_digits#2 = (byte) 8 Constant inlined utoa::started#0 = (byte) 0 -Constant inlined print::i#0 = (byte) 1 -Constant inlined ultoa::$4 = (const byte) ultoa::max_digits#1-(byte) 1 Constant inlined uctoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined printf_str::str#6 = (const byte*) print::str -Constant inlined printf_str::str#5 = (const byte*) main::str2 -Constant inlined printf_str::str#8 = (const byte*) print::str2 -Constant inlined printf_str::str#7 = (const byte*) print::str1 -Constant inlined printf_uchar::format_radix#1 = (const byte) HEXADECIMAL -Constant inlined printf_str::str#9 = (const byte*) print::str3 -Constant inlined printf_uchar::format_radix#0 = (const byte) HEXADECIMAL +Constant inlined ultoa::digit_values#2 = (const dword*) RADIX_HEXADECIMAL_VALUES_LONG +Constant inlined ultoa::digit_values#3 = (const dword*) RADIX_OCTAL_VALUES_LONG Constant inlined ultoa_append::digit#0 = (byte) 0 Constant inlined ultoa::digit_values#1 = (const dword*) RADIX_DECIMAL_VALUES_LONG +Constant inlined ultoa::digit_values#4 = (const dword*) RADIX_BINARY_VALUES_LONG +Constant inlined utoa::value#1 = (const word) printf_uint::uvalue#0 +Constant inlined uctoa_append::digit#0 = (byte) 0 +Constant inlined printf_uchar::format_justify_left#0 = (byte) 0 +Constant inlined printf_uchar::format_justify_left#1 = (byte) 0 +Constant inlined memset::num#1 = (byte) $28 +Constant inlined memset::num#0 = (word)(number) $28*(number) $19 +Constant inlined printf_str::str#12 = (const byte*) print::str4 +Constant inlined printf_ulong::format_justify_left#1 = (byte) 0 +Constant inlined printf_ulong::format_justify_left#0 = (byte) 0 +Constant inlined printf_str::str#10 = (const byte*) print::str2 +Constant inlined printf_str::str#11 = (const byte*) print::str3 +Constant inlined printf_number_buffer::padding#2 = (signed byte) 0 +Constant inlined print::j#0 = (byte) 1 +Constant inlined ultoa::started#1 = (byte) 1 +Constant inlined count#0 = (dword) 0 +Constant inlined printf_ulong::format_zero_padding#0 = (byte) 0 +Constant inlined printf_ulong::format_zero_padding#1 = (byte) 0 +Constant inlined utoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined queens::row#0 = (byte) 1 +Constant inlined printf_number_buffer::padding#0 = (signed byte) 0 +Constant inlined print::i1#0 = (byte) 1 +Constant inlined uctoa::started#0 = (byte) 0 +Constant inlined uctoa::started#1 = (byte) 1 +Constant inlined memcpy::dst#0 = (byte*)(const void*) memcpy::destination#0 +Constant inlined memcpy::src#0 = (byte*)(const void*) memcpy::source#0 +Constant inlined ultoa::buffer#5 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined printf_number_buffer::format_upper_case#1 = (const byte) printf_uint::format_upper_case#0 +Constant inlined printf_string::str#0 = (const byte*) tod_buffer +Constant inlined ultoa::started#0 = (byte) 0 +Constant inlined printf_ulong::format_sign_always#1 = (byte) 0 +Constant inlined printf_ulong::format_sign_always#0 = (byte) 0 +Constant inlined memset::str#1 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 +Constant inlined printf_number_buffer::format_zero_padding#1 = (const byte) printf_uint::format_zero_padding#0 +Constant inlined memset::str#0 = (void*) 1024 +Constant inlined printf_uint::$0 = (byte) 0 +Constant inlined print::i#0 = (byte) 1 +Constant inlined printf_str::str#6 = (const byte*) main::str3 +Constant inlined printf_str::str#5 = (const byte*) main::str2 +Constant inlined printf_str::str#8 = (const byte*) print::str +Constant inlined printf_str::str#7 = (const byte*) main::str4 +Constant inlined printf_uchar::format_radix#1 = (const byte) HEXADECIMAL +Constant inlined printf_str::str#9 = (const byte*) print::str1 +Constant inlined printf_uchar::format_radix#0 = (const byte) HEXADECIMAL Constant inlined printf_str::str#2 = (const byte*) tod_buffer Constant inlined printf_str::str#4 = (const byte*) main::str1 -Constant inlined utoa::value#1 = (const word) printf_uint::uvalue#0 Constant inlined printf_str::str#3 = (const byte*) main::str Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(tod_buffer+1) @@ -5213,23 +5232,43 @@ Successful SSA optimization Pass2ConstantAdditionElimination Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 Successful SSA optimization Pass2ConstantSimplification Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 +Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 Successful SSA optimization Pass2ConstantSimplification Adding number conversion cast (unumber) 1 in [39] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 1) ← (byte) 'r' Adding number conversion cast (unumber) 2 in [40] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 2) ← (byte) 'r' Adding number conversion cast (unumber) 3 in [41] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 3) ← (byte) 0 +Adding number conversion cast (unumber) 1 in [97] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 1) ← (byte) 'r' +Adding number conversion cast (unumber) 2 in [98] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 2) ← (byte) 'r' +Adding number conversion cast (unumber) 3 in [99] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(number) 3) ← (byte) 0 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 +Simplifying constant integer cast 1 +Simplifying constant integer cast 2 +Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 2 Finalized unsigned number type (byte) 3 +Finalized unsigned number type (byte) 1 +Finalized unsigned number type (byte) 2 +Finalized unsigned number type (byte) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 +Identical Phi Values (byte) printf_ulong::format_sign_always#2 (byte) 0 +Identical Phi Values (byte) printf_ulong::format_radix#2 (const byte) DECIMAL +Identical Phi Values (byte) printf_ulong::format_min_length#2 (byte) 0 +Identical Phi Values (byte) printf_ulong::format_justify_left#2 (byte) 0 +Identical Phi Values (byte) printf_ulong::format_zero_padding#2 (byte) 0 +Identical Phi Values (byte) printf_ulong::format_upper_case#2 (byte) 0 Identical Phi Values (byte) printf_uchar::format_sign_always#2 (byte) 0 Identical Phi Values (byte) printf_uchar::format_radix#2 (const byte) HEXADECIMAL Identical Phi Values (byte) printf_uchar::format_min_length#2 (byte) 0 @@ -5237,6 +5276,11 @@ Identical Phi Values (byte) printf_uchar::format_justify_left#2 (byte) 0 Identical Phi Values (byte) printf_uchar::format_zero_padding#2 (byte) 0 Identical Phi Values (byte) printf_uchar::format_upper_case#2 (byte) 0 Successful SSA optimization Pass2IdenticalPhiElimination +Constant (const byte) ultoa::radix#0 = DECIMAL +Constant (const byte) printf_number_buffer::format_min_length#0 = 0 +Constant (const byte) printf_number_buffer::format_justify_left#0 = 0 +Constant (const byte) printf_number_buffer::format_zero_padding#0 = 0 +Constant (const byte) printf_number_buffer::format_upper_case#0 = 0 Constant (const byte) uctoa::radix#0 = HEXADECIMAL Constant (const byte) printf_number_buffer::format_min_length#2 = 0 Constant (const byte) printf_number_buffer::format_justify_left#2 = 0 @@ -5247,15 +5291,21 @@ if() condition always false - eliminating [32] if((const byte) uctoa::radix#0==( if() condition always true - replacing block destination [33] if((const byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@2 if() condition always false - eliminating [34] if((const byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@3 if() condition always false - eliminating [35] if((const byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@4 -if() condition always false - eliminating [175] if((byte) 0!=(byte) 0) goto printf_uchar::@1 +if() condition always true - replacing block destination [90] if((const byte) ultoa::radix#0==(const byte) DECIMAL) goto ultoa::@1 +if() condition always false - eliminating [91] if((const byte) ultoa::radix#0==(const byte) HEXADECIMAL) goto ultoa::@2 +if() condition always false - eliminating [92] if((const byte) ultoa::radix#0==(const byte) OCTAL) goto ultoa::@3 +if() condition always false - eliminating [93] if((const byte) ultoa::radix#0==(const byte) BINARY) goto ultoa::@4 +if() condition always false - eliminating [174] if((byte) 0!=(byte) 0) goto printf_ulong::@1 +if() condition always false - eliminating [193] if((byte) 0!=(byte) 0) goto printf_uchar::@1 Successful SSA optimization Pass2ConstantIfs Eliminating unused constant (const byte) BINARY Eliminating unused constant (const byte) OCTAL -Eliminating unused constant (const byte) DECIMAL Eliminating unused constant (const byte) uctoa::radix#0 +Eliminating unused constant (const byte) ultoa::radix#0 Eliminating unused constant (const byte) SIZEOF_WORD Eliminating unused constant (const byte) SIZEOF_DWORD Successful SSA optimization PassNEliminateUnusedVars +Eliminating unused constant (const byte) DECIMAL Eliminating unused constant (const byte) HEXADECIMAL Successful SSA optimization PassNEliminateUnusedVars Removing PHI-reference to removed block (uctoa::@1) in block uctoa::@5 @@ -5270,32 +5320,64 @@ Removing PHI-reference to removed block (uctoa::@4) in block uctoa::@5 Removing PHI-reference to removed block (uctoa::@4) in block uctoa::@5 Removing unused block uctoa::@4 Removing unused block uctoa::@9 +Removing unused block ultoa::@6 +Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 +Removing PHI-reference to removed block (ultoa::@2) in block ultoa::@5 +Removing unused block ultoa::@2 +Removing unused block ultoa::@7 +Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 +Removing PHI-reference to removed block (ultoa::@3) in block ultoa::@5 +Removing unused block ultoa::@3 +Removing unused block ultoa::@8 +Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 +Removing PHI-reference to removed block (ultoa::@4) in block ultoa::@5 +Removing unused block ultoa::@4 +Removing unused block ultoa::@9 +Removing PHI-reference to removed block (printf_ulong::@1) in block printf_ulong::@3 +Removing unused block printf_ulong::@1 Removing PHI-reference to removed block (printf_uchar::@1) in block printf_uchar::@3 Removing unused block printf_uchar::@1 Successful SSA optimization Pass2EliminateUnusedBlocks +Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#0 +Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#0 +Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#0 +Inlining constant with var siblings (const byte) printf_number_buffer::format_upper_case#0 Inlining constant with var siblings (const byte) printf_number_buffer::format_min_length#2 Inlining constant with var siblings (const byte) printf_number_buffer::format_justify_left#2 Inlining constant with var siblings (const byte) printf_number_buffer::format_zero_padding#2 Inlining constant with var siblings (const byte) printf_number_buffer::format_upper_case#2 +Constant inlined printf_number_buffer::format_justify_left#0 = (byte) 0 Constant inlined printf_number_buffer::format_zero_padding#2 = (byte) 0 Constant inlined printf_number_buffer::format_upper_case#2 = (byte) 0 Constant inlined printf_number_buffer::format_justify_left#2 = (byte) 0 +Constant inlined printf_number_buffer::format_upper_case#0 = (byte) 0 +Constant inlined printf_number_buffer::format_min_length#0 = (byte) 0 +Constant inlined printf_number_buffer::format_zero_padding#0 = (byte) 0 Constant inlined printf_number_buffer::format_min_length#2 = (byte) 0 Successful SSA optimization Pass2ConstantInlining Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Identical Phi Values (byte) uctoa::max_digits#7 (byte) 2 Identical Phi Values (byte*) uctoa::digit_values#8 (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR +Identical Phi Values (byte) ultoa::max_digits#7 (byte) $a +Identical Phi Values (dword*) ultoa::digit_values#8 (const dword*) RADIX_DECIMAL_VALUES_LONG +Identical Phi Values (byte~) printf_ulong::$2 (byte) 0 Identical Phi Values (byte~) printf_uchar::$2 (byte) 0 Successful SSA optimization Pass2IdenticalPhiElimination Constant right-side identified [35] (byte~) uctoa::$4 ← (byte) 2 - (byte) 1 +Constant right-side identified [85] (byte~) ultoa::$4 ← (byte) $a - (byte) 1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte) uctoa::$4 = 2-1 +Constant (const byte) ultoa::$4 = $a-1 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant (const byte*) RADIX_BINARY_VALUES_CHAR Eliminating unused constant (const byte*) RADIX_OCTAL_VALUES_CHAR Eliminating unused constant (const byte*) RADIX_DECIMAL_VALUES_CHAR +Eliminating unused constant (const dword*) RADIX_BINARY_VALUES_LONG +Eliminating unused constant (const dword*) RADIX_OCTAL_VALUES_LONG +Eliminating unused constant (const dword*) RADIX_HEXADECIMAL_VALUES_LONG Successful SSA optimization PassNEliminateUnusedVars Constant inlined uctoa::$4 = (byte) 2-(byte) 1 +Constant inlined ultoa::$4 = (byte) $a-(byte) 1 Successful SSA optimization Pass2ConstantInlining Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 Alias candidate removed (volatile)printf_cursor_ptr = printf_ln::$1 printf_scroll::$4 @@ -5317,13 +5399,10 @@ Adding NOP phi() at start of main::@3 Adding NOP phi() at start of main::@5 Adding NOP phi() at start of main::@6 Adding NOP phi() at start of main::@8 -Adding NOP phi() at start of main::@9 Adding NOP phi() at start of main::@10 -Adding NOP phi() at start of printf_string -Adding NOP phi() at start of printf_string::@1 -Adding NOP phi() at start of printf_string::@11 -Adding NOP phi() at start of printf_string::@2 -Adding NOP phi() at start of printf_string::@8 +Adding NOP phi() at start of main::@11 +Adding NOP phi() at start of main::@12 +Adding NOP phi() at start of main::@13 Adding NOP phi() at start of printf_str::@4 Adding NOP phi() at start of printf_ln::@1 Adding NOP phi() at start of printf_scroll::@1 @@ -5332,6 +5411,23 @@ 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_char::@2 +Adding NOP phi() at start of printf_string +Adding NOP phi() at start of printf_string::@1 +Adding NOP phi() at start of printf_string::@11 +Adding NOP phi() at start of printf_string::@2 +Adding NOP phi() at start of printf_string::@8 +Adding NOP phi() at start of printf_ulong::@2 +Adding NOP phi() at start of printf_ulong::@5 +Adding NOP phi() at start of printf_number_buffer::@14 +Adding NOP phi() at start of printf_number_buffer::@17 +Adding NOP phi() at start of printf_number_buffer::@20 +Adding NOP phi() at start of printf_number_buffer::@21 +Adding NOP phi() at start of printf_number_buffer::@18 +Adding NOP phi() at start of printf_number_buffer::@16 +Adding NOP phi() at start of strupr::@3 +Adding NOP phi() at start of strlen::@3 +Adding NOP phi() at start of ultoa +Adding NOP phi() at start of ultoa::@1 Adding NOP phi() at start of queens Adding NOP phi() at start of print Adding NOP phi() at start of print::@13 @@ -5345,22 +5441,9 @@ Adding NOP phi() at start of print::@9 Adding NOP phi() at start of print::@18 Adding NOP phi() at start of printf_uchar::@2 Adding NOP phi() at start of printf_uchar::@5 -Adding NOP phi() at start of printf_number_buffer::@14 -Adding NOP phi() at start of printf_number_buffer::@17 -Adding NOP phi() at start of printf_number_buffer::@20 -Adding NOP phi() at start of printf_number_buffer::@21 -Adding NOP phi() at start of printf_number_buffer::@18 -Adding NOP phi() at start of printf_number_buffer::@16 -Adding NOP phi() at start of strupr::@3 -Adding NOP phi() at start of strlen::@3 Adding NOP phi() at start of uctoa Adding NOP phi() at start of uctoa::@6 Adding NOP phi() at start of uctoa::@2 -Adding NOP phi() at start of printf_ulong -Adding NOP phi() at start of printf_ulong::@2 -Adding NOP phi() at start of printf_ulong::@5 -Adding NOP phi() at start of ultoa -Adding NOP phi() at start of ultoa::@1 Adding NOP phi() at start of legal Adding NOP phi() at start of legal::@3 Adding NOP phi() at start of legal::@8 @@ -5375,131 +5458,126 @@ Adding NOP phi() at start of utoa::@5 Adding NOP phi() at start of printf_cls CALL GRAPH Calls in [] to main:6 -Calls in [main] to printf_cls:10 printf_str:12 printf_str:14 printf_uint:16 tod_init:21 queens:23 tod_read:25 tod_str:38 printf_str:40 printf_string:42 -Calls in [printf_string] to printf_str:49 -Calls in [printf_str] to printf_char:62 printf_ln:65 -Calls in [printf_ln] to printf_scroll:72 -Calls in [printf_scroll] to memcpy:77 memset:79 -Calls in [printf_char] to printf_scroll:112 -Calls in [queens] to legal:151 print:160 -Calls in [print] to printf_str:172 printf_ulong:174 printf_str:176 printf_str:185 printf_uchar:188 printf_str:196 printf_str:201 printf_uchar:205 -Calls in [printf_uchar] to uctoa:212 printf_number_buffer:215 -Calls in [printf_number_buffer] to strlen:221 printf_char:239 strupr:245 printf_str:249 printf_padding:256 printf_padding:260 printf_padding:264 -Calls in [printf_padding] to printf_char:274 -Calls in [strupr] to toupper:283 -Calls in [uctoa] to uctoa_append:330 -Calls in [printf_ulong] to ultoa:349 printf_number_buffer:352 -Calls in [ultoa] to ultoa_append:381 -Calls in [printf_uint] to utoa:433 printf_number_buffer:436 -Calls in [utoa] to utoa_append:465 -Calls in [printf_cls] to memset:481 +Calls in [main] to printf_cls:10 printf_str:12 printf_str:14 printf_uint:16 tod_init:21 queens:23 tod_read:25 tod_str:34 printf_str:36 printf_ulong:39 printf_str:41 printf_string:43 printf_str:45 +Calls in [printf_str] to printf_char:58 printf_ln:61 +Calls in [printf_ln] to printf_scroll:68 +Calls in [printf_scroll] to memcpy:73 memset:75 +Calls in [printf_char] to printf_scroll:108 +Calls in [printf_string] to printf_str:115 +Calls in [printf_ulong] to ultoa:122 printf_number_buffer:125 +Calls in [printf_number_buffer] to strlen:131 printf_char:149 strupr:155 printf_str:159 printf_padding:166 printf_padding:170 printf_padding:174 +Calls in [printf_padding] to printf_char:184 +Calls in [strupr] to toupper:193 +Calls in [ultoa] to ultoa_append:241 +Calls in [queens] to legal:292 print:301 +Calls in [print] to printf_str:313 printf_ulong:316 printf_str:318 printf_str:327 printf_uchar:330 printf_str:338 printf_str:343 printf_uchar:347 +Calls in [printf_uchar] to uctoa:354 printf_number_buffer:357 +Calls in [uctoa] to uctoa_append:385 +Calls in [printf_uint] to utoa:437 printf_number_buffer:440 +Calls in [utoa] to utoa_append:469 +Calls in [printf_cls] to memset:485 -Created 61 initial phi equivalence classes -Coalesced [53] printf_str::str#20 ← printf_str::str#13 -Coalesced [61] printf_char::ch#6 ← printf_char::ch#1 -Coalesced [63] printf_str::str#22 ← printf_str::str#0 -Coalesced (already) [66] printf_str::str#21 ← printf_str::str#0 -Coalesced [94] memset::dst#5 ← memset::dst#1 -Coalesced [103] memcpy::src#4 ← memcpy::src#1 -Coalesced [104] memcpy::dst#4 ← memcpy::dst#1 -Coalesced [157] queens::row#14 ← queens::row#1 -Coalesced (already) [158] count#35 ← count#14 -Coalesced (already) [161] queens::row#13 ← queens::row#10 -Coalesced [162] count#34 ← count#22 -Coalesced (already) [163] queens::row#16 ← queens::row#10 -Coalesced (already) [164] count#37 ← count#14 -Coalesced [168] queens::row#15 ← queens::row#2 -Coalesced (already) [169] count#36 ← count#14 -Coalesced [187] printf_uchar::uvalue#6 ← printf_uchar::uvalue#1 -Coalesced [193] print::i1#14 ← print::i1#1 -Coalesced [199] print::j#9 ← print::j#1 -Coalesced [204] printf_uchar::uvalue#7 ← printf_uchar::uvalue#0 -Coalesced [207] print::i#5 ← print::i#1 -Coalesced [214] printf_number_buffer::buffer_sign#14 ← printf_number_buffer::buffer_sign#2 -Coalesced [227] printf_number_buffer::len#5 ← printf_number_buffer::len#1 -Coalesced [238] printf_char::ch#4 ← printf_char::ch#2 -Coalesced [248] printf_str::str#19 ← printf_str::str#1 -Coalesced [255] printf_padding::length#10 ← printf_padding::length#2 -Coalesced [259] printf_padding::length#9 ← printf_padding::length#1 -Coalesced [263] printf_padding::length#11 ← printf_padding::length#0 -Coalesced [266] printf_number_buffer::padding#18 ← printf_number_buffer::padding#1 -Coalesced [267] printf_number_buffer::len#4 ← printf_number_buffer::len#0 -Coalesced [273] printf_char::ch#5 ← printf_char::ch#0 -Coalesced [276] printf_padding::i#5 ← printf_padding::i#1 -Coalesced [277] strupr::src#5 ← strupr::str#0 -Coalesced [288] strupr::src#6 ← strupr::src#1 -Coalesced [291] toupper::return#7 ← toupper::ch#0 -Coalesced [295] toupper::return#6 ← toupper::return#0 -Coalesced [296] strlen::str#6 ← strlen::str#1 -Coalesced [303] strlen::str#7 ← strlen::str#0 -Coalesced [304] strlen::len#5 ← strlen::len#1 -Coalesced [308] uctoa::value#17 ← uctoa::value#1 -Coalesced [318] uctoa::value#18 ← uctoa::value#2 -Coalesced [319] uctoa::started#6 ← uctoa::started#2 -Coalesced [320] uctoa::buffer#23 ← uctoa::buffer#11 -Coalesced [323] uctoa::digit#7 ← uctoa::digit#1 -Coalesced (already) [324] uctoa::value#16 ← uctoa::value#6 -Coalesced (already) [325] uctoa::started#5 ← uctoa::started#4 -Coalesced (already) [326] uctoa::buffer#22 ← uctoa::buffer#14 -Coalesced [334] uctoa::value#19 ← uctoa::value#0 -Coalesced [335] uctoa::buffer#24 ← uctoa::buffer#4 -Coalesced [336] uctoa_append::value#6 ← uctoa_append::value#0 -Coalesced [343] uctoa_append::value#7 ← uctoa_append::value#1 -Coalesced [344] uctoa_append::digit#5 ← uctoa_append::digit#1 -Coalesced [351] printf_number_buffer::buffer_sign#16 ← printf_number_buffer::buffer_sign#0 -Coalesced [357] ultoa::value#17 ← ultoa::value#1 -Coalesced [369] ultoa::value#18 ← ultoa::value#2 -Coalesced [370] ultoa::started#6 ← ultoa::started#2 -Coalesced [371] ultoa::buffer#23 ← ultoa::buffer#11 -Coalesced [374] ultoa::digit#7 ← ultoa::digit#1 -Coalesced (already) [375] ultoa::value#16 ← ultoa::value#6 -Coalesced (already) [376] ultoa::started#5 ← ultoa::started#4 -Coalesced (already) [377] ultoa::buffer#22 ← ultoa::buffer#14 -Coalesced [385] ultoa::value#19 ← ultoa::value#0 -Coalesced [386] ultoa::buffer#24 ← ultoa::buffer#4 -Coalesced [387] ultoa_append::value#6 ← ultoa_append::value#0 -Coalesced [394] ultoa_append::value#7 ← ultoa_append::value#1 -Coalesced [395] ultoa_append::digit#5 ← ultoa_append::digit#1 -Coalesced [407] legal::diff1_return#6 ← legal::diff1_return#1 -Coalesced [412] legal::diff2_return#6 ← legal::diff2_return#1 -Coalesced [417] legal::i#16 ← legal::i#1 -Coalesced [419] legal::diff2_return#5 ← legal::diff2_return#0 -Coalesced [421] legal::diff1_return#5 ← legal::diff1_return#0 -Coalesced [435] printf_number_buffer::buffer_sign#15 ← printf_number_buffer::buffer_sign#1 -Coalesced [453] utoa::value#17 ← utoa::value#2 -Coalesced [454] utoa::started#6 ← utoa::started#2 -Coalesced [455] utoa::buffer#23 ← utoa::buffer#11 -Coalesced [458] utoa::digit#7 ← utoa::digit#1 -Coalesced (already) [459] utoa::value#16 ← utoa::value#6 -Coalesced (already) [460] utoa::started#5 ← utoa::started#4 -Coalesced (already) [461] utoa::buffer#22 ← utoa::buffer#14 -Coalesced [469] utoa::value#18 ← utoa::value#0 -Coalesced [470] utoa::buffer#24 ← utoa::buffer#4 -Coalesced [471] utoa_append::value#6 ← utoa_append::value#0 -Coalesced [478] utoa_append::value#7 ← utoa_append::value#1 -Coalesced [479] utoa_append::digit#5 ← utoa_append::digit#1 -Coalesced down to 51 phi equivalence classes +Created 62 initial phi equivalence classes +Coalesced [38] printf_ulong::uvalue#6 ← printf_ulong::uvalue#0 +Coalesced [49] printf_str::str#22 ← printf_str::str#15 +Coalesced [57] printf_char::ch#6 ← printf_char::ch#1 +Coalesced [59] printf_str::str#24 ← printf_str::str#0 +Coalesced (already) [62] printf_str::str#23 ← printf_str::str#0 +Coalesced [90] memset::dst#5 ← memset::dst#1 +Coalesced [99] memcpy::src#4 ← memcpy::src#1 +Coalesced [100] memcpy::dst#4 ← memcpy::dst#1 +Coalesced [124] printf_number_buffer::buffer_sign#16 ← printf_number_buffer::buffer_sign#0 +Coalesced [137] printf_number_buffer::len#5 ← printf_number_buffer::len#1 +Coalesced [148] printf_char::ch#4 ← printf_char::ch#2 +Coalesced [158] printf_str::str#21 ← printf_str::str#1 +Coalesced [165] printf_padding::length#10 ← printf_padding::length#2 +Coalesced [169] printf_padding::length#9 ← printf_padding::length#1 +Coalesced [173] printf_padding::length#11 ← printf_padding::length#0 +Coalesced [176] printf_number_buffer::padding#18 ← printf_number_buffer::padding#1 +Coalesced [177] printf_number_buffer::len#4 ← printf_number_buffer::len#0 +Coalesced [183] printf_char::ch#5 ← printf_char::ch#0 +Coalesced [186] printf_padding::i#5 ← printf_padding::i#1 +Coalesced [187] strupr::src#5 ← strupr::str#0 +Coalesced [198] strupr::src#6 ← strupr::src#1 +Coalesced [201] toupper::return#7 ← toupper::ch#0 +Coalesced [205] toupper::return#6 ← toupper::return#0 +Coalesced [206] strlen::str#6 ← strlen::str#1 +Coalesced [213] strlen::str#7 ← strlen::str#0 +Coalesced [214] strlen::len#5 ← strlen::len#1 +Coalesced [217] ultoa::value#17 ← ultoa::value#1 +Coalesced [229] ultoa::value#18 ← ultoa::value#2 +Coalesced [230] ultoa::started#6 ← ultoa::started#2 +Coalesced [231] ultoa::buffer#23 ← ultoa::buffer#11 +Coalesced [234] ultoa::digit#7 ← ultoa::digit#1 +Coalesced (already) [235] ultoa::value#16 ← ultoa::value#6 +Coalesced (already) [236] ultoa::started#5 ← ultoa::started#4 +Coalesced (already) [237] ultoa::buffer#22 ← ultoa::buffer#14 +Coalesced [245] ultoa::value#19 ← ultoa::value#0 +Coalesced [246] ultoa::buffer#24 ← ultoa::buffer#4 +Coalesced [247] ultoa_append::value#6 ← ultoa_append::value#0 +Coalesced [254] ultoa_append::value#7 ← ultoa_append::value#1 +Coalesced [255] ultoa_append::digit#5 ← ultoa_append::digit#1 +Coalesced [298] queens::row#14 ← queens::row#1 +Coalesced (already) [299] count#38 ← count#10 +Coalesced (already) [302] queens::row#13 ← queens::row#10 +Coalesced [303] count#37 ← count#25 +Coalesced (already) [304] queens::row#16 ← queens::row#10 +Coalesced (already) [305] count#40 ← count#10 +Coalesced [309] queens::row#15 ← queens::row#2 +Coalesced (already) [310] count#39 ← count#10 +Coalesced [315] printf_ulong::uvalue#7 ← printf_ulong::uvalue#1 +Coalesced [329] printf_uchar::uvalue#6 ← printf_uchar::uvalue#1 +Coalesced [335] print::i1#14 ← print::i1#1 +Coalesced [341] print::j#9 ← print::j#1 +Coalesced [346] printf_uchar::uvalue#7 ← printf_uchar::uvalue#0 +Coalesced [349] print::i#5 ← print::i#1 +Coalesced [356] printf_number_buffer::buffer_sign#14 ← printf_number_buffer::buffer_sign#2 +Coalesced [363] uctoa::value#17 ← uctoa::value#1 +Coalesced [373] uctoa::value#18 ← uctoa::value#2 +Coalesced [374] uctoa::started#6 ← uctoa::started#2 +Coalesced [375] uctoa::buffer#23 ← uctoa::buffer#11 +Coalesced [378] uctoa::digit#7 ← uctoa::digit#1 +Coalesced (already) [379] uctoa::value#16 ← uctoa::value#6 +Coalesced (already) [380] uctoa::started#5 ← uctoa::started#4 +Coalesced (already) [381] uctoa::buffer#22 ← uctoa::buffer#14 +Coalesced [389] uctoa::value#19 ← uctoa::value#0 +Coalesced [390] uctoa::buffer#24 ← uctoa::buffer#4 +Coalesced [391] uctoa_append::value#6 ← uctoa_append::value#0 +Coalesced [398] uctoa_append::value#7 ← uctoa_append::value#1 +Coalesced [399] uctoa_append::digit#5 ← uctoa_append::digit#1 +Coalesced [411] legal::diff1_return#6 ← legal::diff1_return#1 +Coalesced [416] legal::diff2_return#6 ← legal::diff2_return#1 +Coalesced [421] legal::i#16 ← legal::i#1 +Coalesced [423] legal::diff2_return#5 ← legal::diff2_return#0 +Coalesced [425] legal::diff1_return#5 ← legal::diff1_return#0 +Coalesced [439] printf_number_buffer::buffer_sign#15 ← printf_number_buffer::buffer_sign#1 +Coalesced [457] utoa::value#17 ← utoa::value#2 +Coalesced [458] utoa::started#6 ← utoa::started#2 +Coalesced [459] utoa::buffer#23 ← utoa::buffer#11 +Coalesced [462] utoa::digit#7 ← utoa::digit#1 +Coalesced (already) [463] utoa::value#16 ← utoa::value#6 +Coalesced (already) [464] utoa::started#5 ← utoa::started#4 +Coalesced (already) [465] utoa::buffer#22 ← utoa::buffer#14 +Coalesced [473] utoa::value#18 ← utoa::value#0 +Coalesced [474] utoa::buffer#24 ← utoa::buffer#4 +Coalesced [475] utoa_append::value#6 ← utoa_append::value#0 +Coalesced [482] utoa_append::value#7 ← utoa_append::value#1 +Coalesced [483] utoa_append::digit#5 ← utoa_append::digit#1 +Coalesced down to 52 phi equivalence classes Culled Empty Block (label) @2 Culled Empty Block (label) @4 -Culled Empty Block (label) main::@10 -Culled Empty Block (label) printf_string::@1 -Culled Empty Block (label) printf_string::@11 -Culled Empty Block (label) printf_string::@8 +Culled Empty Block (label) main::@13 Culled Empty Block (label) printf_str::@7 Culled Empty Block (label) printf_str::@6 Culled Empty Block (label) printf_ln::@1 Culled Empty Block (label) memset::@1 Culled Empty Block (label) memcpy::@3 Culled Empty Block (label) printf_char::@2 -Culled Empty Block (label) queens::@10 -Culled Empty Block (label) queens::@11 -Culled Empty Block (label) print::@14 -Culled Empty Block (label) print::@3 -Culled Empty Block (label) print::@17 -Culled Empty Block (label) print::@19 -Culled Empty Block (label) print::@18 -Culled Empty Block (label) printf_uchar::@2 -Culled Empty Block (label) printf_uchar::@5 +Culled Empty Block (label) printf_string::@1 +Culled Empty Block (label) printf_string::@11 +Culled Empty Block (label) printf_string::@8 +Culled Empty Block (label) printf_ulong::@2 +Culled Empty Block (label) printf_ulong::@5 Culled Empty Block (label) printf_number_buffer::@14 Culled Empty Block (label) printf_number_buffer::@17 Culled Empty Block (label) printf_number_buffer::@20 @@ -5510,15 +5588,22 @@ Culled Empty Block (label) printf_number_buffer::@28 Culled Empty Block (label) strupr::@3 Culled Empty Block (label) toupper::@2 Culled Empty Block (label) strlen::@3 +Culled Empty Block (label) ultoa::@1 +Culled Empty Block (label) ultoa::@5 +Culled Empty Block (label) ultoa::@17 +Culled Empty Block (label) queens::@10 +Culled Empty Block (label) queens::@11 +Culled Empty Block (label) print::@14 +Culled Empty Block (label) print::@3 +Culled Empty Block (label) print::@17 +Culled Empty Block (label) print::@19 +Culled Empty Block (label) print::@18 +Culled Empty Block (label) printf_uchar::@2 +Culled Empty Block (label) printf_uchar::@5 Culled Empty Block (label) uctoa::@6 Culled Empty Block (label) uctoa::@2 Culled Empty Block (label) uctoa::@5 Culled Empty Block (label) uctoa::@17 -Culled Empty Block (label) printf_ulong::@2 -Culled Empty Block (label) printf_ulong::@5 -Culled Empty Block (label) ultoa::@1 -Culled Empty Block (label) ultoa::@5 -Culled Empty Block (label) ultoa::@17 Culled Empty Block (label) legal::@3 Culled Empty Block (label) legal::@8 Culled Empty Block (label) legal::@7 @@ -5595,27 +5680,28 @@ Adding NOP phi() at start of main::@3 Adding NOP phi() at start of main::@5 Adding NOP phi() at start of main::@6 Adding NOP phi() at start of main::@8 -Adding NOP phi() at start of main::@9 -Adding NOP phi() at start of printf_string -Adding NOP phi() at start of printf_string::@1 +Adding NOP phi() at start of main::@10 +Adding NOP phi() at start of main::@11 +Adding NOP phi() at start of main::@12 Adding NOP phi() at start of printf_str::@4 Adding NOP phi() at start of printf_scroll::@1 Adding NOP phi() at start of printf_scroll::@2 Adding NOP phi() at start of memcpy +Adding NOP phi() at start of printf_string +Adding NOP phi() at start of printf_string::@1 +Adding NOP phi() at start of printf_number_buffer::@21 +Adding NOP phi() at start of strupr +Adding NOP phi() at start of strlen +Adding NOP phi() at start of ultoa +Adding NOP phi() at start of ultoa_append Adding NOP phi() at start of queens Adding NOP phi() at start of print Adding NOP phi() at start of print::@12 Adding NOP phi() at start of print::@4 Adding NOP phi() at start of print::@10 Adding NOP phi() at start of print::@8 -Adding NOP phi() at start of printf_number_buffer::@21 -Adding NOP phi() at start of strupr -Adding NOP phi() at start of strlen Adding NOP phi() at start of uctoa Adding NOP phi() at start of uctoa_append -Adding NOP phi() at start of printf_ulong -Adding NOP phi() at start of ultoa -Adding NOP phi() at start of ultoa_append Adding NOP phi() at start of legal Adding NOP phi() at start of printf_uint Adding NOP phi() at start of utoa @@ -5675,793 +5761,806 @@ main::@6: scope:[main] from main::@5 [27] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 to:main::@7 main::@7: scope:[main] from main::@6 - [28] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 - [29] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 - [30] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 - [31] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 - [32] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 - [33] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 - [34] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 - [35] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 - [36] call tod_str + [28] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 + [29] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 + [30] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 + [31] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 + [32] call tod_str to:main::@8 main::@8: scope:[main] from main::@7 - [37] phi() - [38] call printf_str + [33] phi() + [34] call printf_str to:main::@9 main::@9: scope:[main] from main::@8 + [35] (dword) printf_ulong::uvalue#0 ← (dword) count#10 + [36] call printf_ulong + to:main::@10 +main::@10: scope:[main] from main::@9 + [37] phi() + [38] call printf_str + to:main::@11 +main::@11: scope:[main] from main::@10 [39] phi() [40] call printf_string + to:main::@12 +main::@12: scope:[main] from main::@11 + [41] phi() + [42] call printf_str to:main::@return -main::@return: scope:[main] from main::@9 - [41] return - to:@return - -(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) -printf_string: scope:[printf_string] from main::@9 - [42] phi() - to:printf_string::@1 -printf_string::@1: scope:[printf_string] from printf_string - [43] phi() - [44] call printf_str - to:printf_string::@return -printf_string::@return: scope:[printf_string] from printf_string::@1 - [45] return +main::@return: scope:[main] from main::@12 + [43] return to:@return (void()) printf_str((byte*) printf_str::str) -printf_str: scope:[printf_str] from main::@1 main::@2 main::@8 print print::@10 print::@12 print::@4 print::@8 printf_number_buffer::@5 printf_string::@1 - [46] (byte*) printf_str::str#13 ← phi( main::@1/(const byte*) main::str main::@2/(const byte*) main::str1 main::@8/(const byte*) main::str2 print/(const byte*) print::str print::@10/(const byte*) print::str4 print::@12/(const byte*) print::str1 print::@4/(const byte*) print::str2 print::@8/(const byte*) print::str3 printf_number_buffer::@5/(byte*) printf_str::str#1 printf_string::@1/(const byte*) tod_buffer ) +printf_str: scope:[printf_str] from main::@1 main::@10 main::@12 main::@2 main::@8 print print::@10 print::@12 print::@4 print::@8 printf_number_buffer::@5 printf_string::@1 + [44] (byte*) printf_str::str#15 ← phi( main::@1/(const byte*) main::str main::@10/(const byte*) main::str3 main::@12/(const byte*) main::str4 main::@2/(const byte*) main::str1 main::@8/(const byte*) main::str2 print/(const byte*) print::str print::@10/(const byte*) print::str4 print::@12/(const byte*) print::str1 print::@4/(const byte*) print::str2 print::@8/(const byte*) print::str3 printf_number_buffer::@5/(byte*) printf_str::str#1 printf_string::@1/(const byte*) tod_buffer ) to:printf_str::@1 printf_str::@1: scope:[printf_str] from printf_str printf_str::@4 printf_str::@5 - [47] (byte*) printf_str::str#11 ← phi( printf_str/(byte*) printf_str::str#13 printf_str::@4/(byte*) printf_str::str#0 printf_str::@5/(byte*) printf_str::str#0 ) + [45] (byte*) printf_str::str#13 ← phi( printf_str/(byte*) printf_str::str#15 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 - [48] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#11) - [49] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#11 - [50] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 + [46] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) + [47] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 + [48] 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 - [51] return + [49] return to:@return printf_str::@3: scope:[printf_str] from printf_str::@2 - [52] if((byte) printf_str::ch#0==(byte) ' + [50] 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 - [53] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 - [54] call printf_char + [51] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + [52] call printf_char to:printf_str::@1 printf_str::@4: scope:[printf_str] from printf_str::@3 - [55] phi() - [56] call printf_ln + [53] phi() + [54] call printf_ln to:printf_str::@1 (void()) printf_ln() printf_ln: scope:[printf_ln] from printf_str::@4 - [57] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x - [58] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 - [59] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 - [60] (byte) printf_cursor_x ← (byte) 0 - [61] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y - [62] call printf_scroll + [55] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x + [56] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 + [57] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 + [58] (byte) printf_cursor_x ← (byte) 0 + [59] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y + [60] call printf_scroll to:printf_ln::@return printf_ln::@return: scope:[printf_ln] from printf_ln - [63] return + [61] return to:@return (void()) printf_scroll() printf_scroll: scope:[printf_scroll] from printf_char::@1 printf_ln - [64] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return + [62] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return to:printf_scroll::@1 printf_scroll::@1: scope:[printf_scroll] from printf_scroll - [65] phi() - [66] call memcpy + [63] phi() + [64] call memcpy to:printf_scroll::@2 printf_scroll::@2: scope:[printf_scroll] from printf_scroll::@1 - [67] phi() - [68] call memset + [65] phi() + [66] call memset to:printf_scroll::@3 printf_scroll::@3: scope:[printf_scroll] from printf_scroll::@2 - [69] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 - [70] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 - [71] (byte) printf_cursor_y ← -- (byte) printf_cursor_y + [67] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 + [68] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 + [69] (byte) printf_cursor_y ← -- (byte) printf_cursor_y to:printf_scroll::@return printf_scroll::@return: scope:[printf_scroll] from printf_scroll printf_scroll::@3 - [72] return + [70] return to:@return (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) memset: scope:[memset] from printf_cls printf_scroll::@2 - [73] (byte) memset::c#4 ← phi( printf_cls/(byte) ' ' printf_scroll::@2/(byte) ' ' ) - [73] (void*) memset::str#3 ← phi( printf_cls/(void*) 1024 printf_scroll::@2/(void*)(number) $400+(number) $28*(number) $19-(number) $28 ) - [73] (word) memset::num#2 ← phi( printf_cls/(word)(number) $28*(number) $19 printf_scroll::@2/(byte) $28 ) - [74] if((word) memset::num#2<=(byte) 0) goto memset::@return + [71] (byte) memset::c#4 ← phi( printf_cls/(byte) ' ' printf_scroll::@2/(byte) ' ' ) + [71] (void*) memset::str#3 ← phi( printf_cls/(void*) 1024 printf_scroll::@2/(void*)(number) $400+(number) $28*(number) $19-(number) $28 ) + [71] (word) memset::num#2 ← phi( printf_cls/(word)(number) $28*(number) $19 printf_scroll::@2/(byte) $28 ) + [72] if((word) memset::num#2<=(byte) 0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [75] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 - [76] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 + [73] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 + [74] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 - [77] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) - [78] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 + [75] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 ) + [76] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 to:memset::@return memset::@return: scope:[memset] from memset memset::@2 - [79] return + [77] return to:@return memset::@3: scope:[memset] from memset::@2 - [80] *((byte*) memset::dst#2) ← (byte) memset::c#4 - [81] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 + [78] *((byte*) memset::dst#2) ← (byte) memset::c#4 + [79] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 to:memset::@2 (void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) memcpy: scope:[memcpy] from printf_scroll::@1 - [82] phi() + [80] phi() to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - [83] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*)(const void*) memcpy::destination#0 memcpy::@2/(byte*) memcpy::dst#1 ) - [83] (byte*) memcpy::src#2 ← phi( memcpy/(byte*)(const void*) memcpy::source#0 memcpy::@2/(byte*) memcpy::src#1 ) - [84] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 + [81] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*)(const void*) memcpy::destination#0 memcpy::@2/(byte*) memcpy::dst#1 ) + [81] (byte*) memcpy::src#2 ← phi( memcpy/(byte*)(const void*) memcpy::source#0 memcpy::@2/(byte*) memcpy::src#1 ) + [82] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 to:memcpy::@return memcpy::@return: scope:[memcpy] from memcpy::@1 - [85] return + [83] return to:@return memcpy::@2: scope:[memcpy] from memcpy::@1 - [86] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) - [87] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 - [88] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 + [84] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) + [85] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 + [86] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 to:memcpy::@1 (void()) printf_char((byte) printf_char::ch) printf_char: scope:[printf_char] from printf_number_buffer::@9 printf_padding::@2 printf_str::@5 - [89] (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::@5/(byte) printf_char::ch#1 ) - [90] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 - [91] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr - [92] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x - [93] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return + [87] (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::@5/(byte) printf_char::ch#1 ) + [88] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 + [89] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr + [90] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x + [91] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return to:printf_char::@1 printf_char::@1: scope:[printf_char] from printf_char - [94] (byte) printf_cursor_x ← (byte) 0 - [95] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y - [96] call printf_scroll + [92] (byte) printf_cursor_x ← (byte) 0 + [93] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y + [94] call printf_scroll to:printf_char::@return printf_char::@return: scope:[printf_char] from printf_char printf_char::@1 - [97] return + [95] return to:@return -(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) -tod_str: scope:[tod_str] from main::@7 - [98] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 - [99] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 - [100] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 - [101] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f - [102] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 - [103] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 - [104] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 - [105] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 - [106] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 - [107] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f - [108] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 - [109] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 - [110] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 - [111] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 - [112] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 - [113] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f - [114] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 - [115] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 - [116] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 - [117] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 - [118] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 - [119] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f - [120] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 - [121] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 - to:tod_str::@return -tod_str::@return: scope:[tod_str] from tod_str - [122] return +(void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) +printf_string: scope:[printf_string] from main::@11 + [96] phi() + to:printf_string::@1 +printf_string::@1: scope:[printf_string] from printf_string + [97] phi() + [98] call printf_str + to:printf_string::@return +printf_string::@return: scope:[printf_string] from printf_string::@1 + [99] return to:@return -(struct TIME_OF_DAY()) tod_read() -tod_read: scope:[tod_read] from main::@6 - [123] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) - [124] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) - [125] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) - [126] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) - to:tod_read::@return -tod_read::@return: scope:[tod_read] from tod_read - [127] return - to:@return - -(void()) queens() -queens: scope:[queens] from main::@5 - [128] phi() - to:queens::@1 -queens::@1: scope:[queens] from queens queens::@4 queens::@7 queens::@8 queens::@9 - [129] (dword) count#14 ← phi( queens/(dword) 0 queens::@4/(dword) count#22 queens::@7/(dword) count#14 queens::@8/(dword) count#14 queens::@9/(dword) count#14 ) - [129] (byte) queens::row#10 ← phi( queens/(byte) 1 queens::@4/(byte) queens::row#10 queens::@7/(byte) queens::row#1 queens::@8/(byte) queens::row#2 queens::@9/(byte) queens::row#10 ) - to:queens::@2 -queens::@2: scope:[queens] from queens::@1 - [130] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) - [131] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 - to:queens::@5 -queens::@5: scope:[queens] from queens::@2 - [132] (byte) legal::row#0 ← (byte) queens::row#10 - [133] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) - [134] call legal - [135] (byte) legal::return#0 ← (byte) legal::return#4 - to:queens::@9 -queens::@9: scope:[queens] from queens::@5 - [136] (byte~) queens::$2 ← (byte) legal::return#0 - [137] if((byte) 0==(byte~) queens::$2) goto queens::@1 - to:queens::@6 -queens::@6: scope:[queens] from queens::@9 - [138] if((byte) queens::row#10==(byte) 8) goto queens::@4 - to:queens::@7 -queens::@7: scope:[queens] from queens::@6 - [139] (byte) queens::row#1 ← ++ (byte) queens::row#10 - to:queens::@1 -queens::@4: scope:[queens] from queens::@6 - [140] (dword) count#22 ← ++ (dword) count#14 - [141] call print - to:queens::@1 -queens::@3: scope:[queens] from queens::@2 - [142] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 - [143] if((byte) queens::row#10==(byte) 1) goto queens::@return - to:queens::@8 -queens::@8: scope:[queens] from queens::@3 - [144] (byte) queens::row#2 ← -- (byte) queens::row#10 - to:queens::@1 -queens::@return: scope:[queens] from queens::@3 - [145] return - to:@return - -(void()) print() -print: scope:[print] from queens::@4 - [146] phi() - [147] call printf_str - to:print::@11 -print::@11: scope:[print] from print - [148] (dword) printf_ulong::uvalue#0 ← (dword) count#22 - [149] call printf_ulong - to:print::@12 -print::@12: scope:[print] from print::@11 - [150] phi() - [151] call printf_str - to:print::@1 -print::@1: scope:[print] from print::@12 print::@13 - [152] (byte) print::i#2 ← phi( print::@12/(byte) 1 print::@13/(byte) print::i#1 ) - [153] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 - to:print::@3 -print::@3: scope:[print] from print::@1 print::@7 - [154] (byte) print::i1#2 ← phi( print::@1/(byte) 1 print::@7/(byte) print::i1#1 ) - [155] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 - to:print::@return -print::@return: scope:[print] from print::@3 - [156] return - to:@return -print::@4: scope:[print] from print::@3 - [157] phi() - [158] call printf_str - to:print::@14 -print::@14: scope:[print] from print::@4 - [159] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 - [160] call printf_uchar - to:print::@5 -print::@5: scope:[print] from print::@14 print::@9 - [161] (byte) print::j#2 ← phi( print::@9/(byte) print::j#1 print::@14/(byte) 1 ) - [162] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 - to:print::@7 -print::@7: scope:[print] from print::@5 - [163] (byte) print::i1#1 ← ++ (byte) print::i1#2 - to:print::@3 -print::@6: scope:[print] from print::@5 - [164] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 - to:print::@10 -print::@10: scope:[print] from print::@6 - [165] phi() - [166] call printf_str - to:print::@9 -print::@9: scope:[print] from print::@10 print::@8 - [167] (byte) print::j#1 ← ++ (byte) print::j#2 - to:print::@5 -print::@8: scope:[print] from print::@6 - [168] phi() - [169] call printf_str - to:print::@9 -print::@2: scope:[print] from print::@1 - [170] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 - [171] call printf_uchar - to:print::@13 -print::@13: scope:[print] from print::@2 - [172] (byte) print::i#1 ← ++ (byte) print::i#2 - to:print::@1 - -(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) -printf_uchar: scope:[printf_uchar] from print::@14 print::@2 - [173] (byte) printf_uchar::uvalue#2 ← phi( print::@14/(byte) printf_uchar::uvalue#1 print::@2/(byte) printf_uchar::uvalue#0 ) - to:printf_uchar::@1 -printf_uchar::@1: scope:[printf_uchar] from printf_uchar - [174] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [175] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 - [176] call uctoa - to:printf_uchar::@2 -printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 - [177] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [178] call printf_number_buffer - to:printf_uchar::@return -printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 - [179] return +(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) +printf_ulong: scope:[printf_ulong] from main::@9 print::@11 + [100] (dword) printf_ulong::uvalue#2 ← phi( main::@9/(dword) printf_ulong::uvalue#0 print::@11/(dword) printf_ulong::uvalue#1 ) + to:printf_ulong::@1 +printf_ulong::@1: scope:[printf_ulong] from printf_ulong + [101] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [102] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 + [103] call ultoa + to:printf_ulong::@2 +printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 + [104] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [105] call printf_number_buffer + to:printf_ulong::@return +printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 + [106] return to:@return (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_upper_case , (byte) printf_number_buffer::format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@2 printf_uint::@2 printf_ulong::@2 - [180] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_upper_case#0 printf_ulong::@2/(const byte) printf_ulong::format_upper_case#0 ) - [180] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uchar::@2/(byte) printf_number_buffer::buffer_sign#2 printf_uint::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 ) - [180] (byte*) printf_number_buffer::buffer_digits#10 ← phi( printf_uchar::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_uint::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_ulong::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [180] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_zero_padding#0 printf_ulong::@2/(const byte) printf_ulong::format_zero_padding#0 ) - [180] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_justify_left#0 printf_ulong::@2/(const byte) printf_ulong::format_justify_left#0 ) - [180] (byte) printf_number_buffer::format_min_length#3 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_min_length#0 printf_ulong::@2/(const byte) printf_ulong::format_min_length#0 ) - [181] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 + [107] (byte) printf_number_buffer::format_upper_case#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_upper_case#0 printf_ulong::@2/(byte) 0 ) + [107] (byte) printf_number_buffer::buffer_sign#10 ← phi( printf_uchar::@2/(byte) printf_number_buffer::buffer_sign#2 printf_uint::@2/(byte) printf_number_buffer::buffer_sign#1 printf_ulong::@2/(byte) printf_number_buffer::buffer_sign#0 ) + [107] (byte*) printf_number_buffer::buffer_digits#10 ← phi( printf_uchar::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_uint::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_ulong::@2/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [107] (byte) printf_number_buffer::format_zero_padding#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_zero_padding#0 printf_ulong::@2/(byte) 0 ) + [107] (byte) printf_number_buffer::format_justify_left#10 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_justify_left#0 printf_ulong::@2/(byte) 0 ) + [107] (byte) printf_number_buffer::format_min_length#3 ← phi( printf_uchar::@2/(byte) 0 printf_uint::@2/(const byte) printf_uint::format_min_length#0 printf_ulong::@2/(byte) 0 ) + [108] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 to:printf_number_buffer::@6 printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffer - [182] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - [183] call strlen - [184] (word) strlen::return#2 ← (word) strlen::len#2 + [109] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + [110] call strlen + [111] (word) strlen::return#2 ← (word) strlen::len#2 to:printf_number_buffer::@14 printf_number_buffer::@14: scope:[printf_number_buffer] from printf_number_buffer::@6 - [185] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - [186] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 - [187] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 + [112] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 + [113] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 + [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 to:printf_number_buffer::@7 printf_number_buffer::@7: scope:[printf_number_buffer] from printf_number_buffer::@14 - [188] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 + [115] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 to:printf_number_buffer::@13 printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buffer::@14 printf_number_buffer::@7 - [189] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) - [190] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 - [191] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 + [116] (signed byte) printf_number_buffer::len#2 ← phi( printf_number_buffer::@14/(signed byte) printf_number_buffer::len#0 printf_number_buffer::@7/(signed byte) printf_number_buffer::len#1 ) + [117] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 + [118] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 to:printf_number_buffer::@1 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@13 - [192] phi() + [119] phi() to:printf_number_buffer::@1 printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffer printf_number_buffer::@13 printf_number_buffer::@21 - [193] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) - [194] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 + [120] (signed byte) printf_number_buffer::padding#10 ← phi( printf_number_buffer/(signed byte) 0 printf_number_buffer::@21/(signed byte) printf_number_buffer::padding#1 printf_number_buffer::@13/(signed byte) 0 ) + [121] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@1 - [195] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 + [122] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@17 - [196] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 + [123] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 to:printf_number_buffer::@2 printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffer::@16 - [197] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 - [198] call printf_padding + [124] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 + [125] call printf_padding to:printf_number_buffer::@2 printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@16 printf_number_buffer::@17 printf_number_buffer::@8 - [199] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 + [126] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 to:printf_number_buffer::@9 printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffer::@2 - [200] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 - [201] call printf_char + [127] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 + [128] call printf_char to:printf_number_buffer::@3 printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9 - [202] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 + [129] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@3 - [203] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 + [130] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 to:printf_number_buffer::@4 printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buffer::@18 - [204] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 - [205] call printf_padding + [131] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 + [132] call printf_padding to:printf_number_buffer::@4 printf_number_buffer::@4: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::@18 printf_number_buffer::@3 - [206] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 + [133] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 to:printf_number_buffer::@11 printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buffer::@4 - [207] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 - [208] call strupr + [134] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 + [135] call strupr to:printf_number_buffer::@5 printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4 - [209] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - [210] call printf_str + [136] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + [137] call printf_str to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5 - [211] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return + [138] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@15 - [212] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return + [139] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@20 - [213] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 + [140] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 to:printf_number_buffer::@return printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 - [214] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 - [215] call printf_padding + [141] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 + [142] call printf_padding to:printf_number_buffer::@return printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@12 printf_number_buffer::@15 printf_number_buffer::@19 printf_number_buffer::@20 - [216] return + [143] return to:@return (void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 - [217] (byte) printf_padding::pad#7 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) - [217] (byte) printf_padding::length#6 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) + [144] (byte) printf_padding::pad#7 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' ) + [144] (byte) printf_padding::length#6 ← phi( printf_number_buffer::@10/(byte) printf_padding::length#1 printf_number_buffer::@12/(byte) printf_padding::length#2 printf_number_buffer::@8/(byte) printf_padding::length#0 ) to:printf_padding::@1 printf_padding::@1: scope:[printf_padding] from printf_padding printf_padding::@3 - [218] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) - [219] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 + [145] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 ) + [146] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 to:printf_padding::@return printf_padding::@return: scope:[printf_padding] from printf_padding::@1 - [220] return + [147] return to:@return printf_padding::@2: scope:[printf_padding] from printf_padding::@1 - [221] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 - [222] call printf_char + [148] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 + [149] call printf_char to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 - [223] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 + [150] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 to:printf_padding::@1 (byte*()) strupr((byte*) strupr::str) strupr: scope:[strupr] from printf_number_buffer::@11 - [224] phi() + [151] phi() to:strupr::@1 strupr::@1: scope:[strupr] from strupr strupr::@3 - [225] (byte*) strupr::src#2 ← phi( strupr/(byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) - [226] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 + [152] (byte*) strupr::src#2 ← phi( strupr/(byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 ) + [153] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 to:strupr::@return strupr::@return: scope:[strupr] from strupr::@1 - [227] return + [154] return to:@return strupr::@2: scope:[strupr] from strupr::@1 - [228] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) - [229] call toupper - [230] (byte) toupper::return#3 ← (byte) toupper::return#2 + [155] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) + [156] call toupper + [157] (byte) toupper::return#3 ← (byte) toupper::return#2 to:strupr::@3 strupr::@3: scope:[strupr] from strupr::@2 - [231] (byte~) strupr::$0 ← (byte) toupper::return#3 - [232] *((byte*) strupr::src#2) ← (byte~) strupr::$0 - [233] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 + [158] (byte~) strupr::$0 ← (byte) toupper::return#3 + [159] *((byte*) strupr::src#2) ← (byte~) strupr::$0 + [160] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 to:strupr::@1 (byte()) toupper((byte) toupper::ch) toupper: scope:[toupper] from strupr::@2 - [234] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return + [161] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return to:toupper::@2 toupper::@2: scope:[toupper] from toupper - [235] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 + [162] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 to:toupper::@return toupper::@1: scope:[toupper] from toupper::@2 - [236] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' + [163] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' to:toupper::@return toupper::@return: scope:[toupper] from toupper toupper::@1 toupper::@2 - [237] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) - [238] return + [164] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 ) + [165] return to:@return (word()) strlen((byte*) strlen::str) strlen: scope:[strlen] from printf_number_buffer::@6 - [239] phi() + [166] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [240] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) - [240] (byte*) strlen::str#3 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) - [241] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 + [167] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) + [167] (byte*) strlen::str#3 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) + [168] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [242] return + [169] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [243] (word) strlen::len#1 ← ++ (word) strlen::len#2 - [244] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 + [170] (word) strlen::len#1 ← ++ (word) strlen::len#2 + [171] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 to:strlen::@1 -(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) -uctoa: scope:[uctoa] from printf_uchar::@1 - [245] phi() - to:uctoa::@1 -uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [246] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [246] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) - [246] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) - [246] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) - [247] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 - to:uctoa::@3 -uctoa::@3: scope:[uctoa] from uctoa::@1 - [248] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) - [249] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 - [250] *((byte*) uctoa::buffer#3) ← (byte) 0 - to:uctoa::@return -uctoa::@return: scope:[uctoa] from uctoa::@3 - [251] return - to:@return -uctoa::@2: scope:[uctoa] from uctoa::@1 - [252] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) - [253] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 - to:uctoa::@7 -uctoa::@7: scope:[uctoa] from uctoa::@2 - [254] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 - to:uctoa::@4 -uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 - [255] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) - [255] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) - [255] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) - [256] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 - to:uctoa::@1 -uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 - [257] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - [258] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - [259] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - [260] call uctoa_append - [261] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - to:uctoa::@6 -uctoa::@6: scope:[uctoa] from uctoa::@5 - [262] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - [263] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 - to:uctoa::@4 - -(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) -uctoa_append: scope:[uctoa_append] from uctoa::@5 - [264] phi() - to:uctoa_append::@1 -uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 - [265] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) - [265] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) - [266] 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 - [267] *((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 - [268] return - to:@return -uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 - [269] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 - [270] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 - to:uctoa_append::@1 - -(void()) printf_ulong((dword) printf_ulong::uvalue , (byte) printf_ulong::format_min_length , (byte) printf_ulong::format_justify_left , (byte) printf_ulong::format_sign_always , (byte) printf_ulong::format_zero_padding , (byte) printf_ulong::format_upper_case , (byte) printf_ulong::format_radix) -printf_ulong: scope:[printf_ulong] from print::@11 - [271] phi() - to:printf_ulong::@1 -printf_ulong::@1: scope:[printf_ulong] from printf_ulong - [272] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [273] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 - [274] call ultoa - to:printf_ulong::@2 -printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1 - [275] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [276] call printf_number_buffer - to:printf_ulong::@return -printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2 - [277] return - to:@return - (void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix) ultoa: scope:[ultoa] from printf_ulong::@1 - [278] phi() + [172] phi() to:ultoa::@1 ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 - [279] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [279] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) - [279] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) - [279] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) - [280] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 + [173] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [173] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 ) + [173] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 ) + [173] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 ) + [174] if((byte) ultoa::digit#2<(byte) $a-(byte) 1) goto ultoa::@2 to:ultoa::@3 ultoa::@3: scope:[ultoa] from ultoa::@1 - [281] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 - [282] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) - [283] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 - [284] *((byte*) ultoa::buffer#3) ← (byte) 0 + [175] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 + [176] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) + [177] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 + [178] *((byte*) ultoa::buffer#3) ← (byte) 0 to:ultoa::@return ultoa::@return: scope:[ultoa] from ultoa::@3 - [285] return + [179] return to:@return ultoa::@2: scope:[ultoa] from ultoa::@1 - [286] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 - [287] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) - [288] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 + [180] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 + [181] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) + [182] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 to:ultoa::@7 ultoa::@7: scope:[ultoa] from ultoa::@2 - [289] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 + [183] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 to:ultoa::@4 ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7 - [290] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) - [290] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) - [290] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) - [291] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 + [184] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 ) + [184] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 ) + [184] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 ) + [185] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 to:ultoa::@1 ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7 - [292] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - [293] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - [294] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - [295] call ultoa_append - [296] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 + [186] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 + [187] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 + [188] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 + [189] call ultoa_append + [190] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 to:ultoa::@6 ultoa::@6: scope:[ultoa] from ultoa::@5 - [297] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - [298] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 + [191] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 + [192] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 to:ultoa::@4 (dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) ultoa_append: scope:[ultoa_append] from ultoa::@5 - [299] phi() + [193] phi() to:ultoa_append::@1 ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2 - [300] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) - [300] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) - [301] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 + [194] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 ) + [194] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 ) + [195] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 to:ultoa_append::@3 ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1 - [302] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) + [196] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) to:ultoa_append::@return ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3 - [303] return + [197] return to:@return ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1 - [304] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 - [305] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 + [198] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 + [199] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 to:ultoa_append::@1 +(byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) +tod_str: scope:[tod_str] from main::@7 + [200] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 + [201] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 + [202] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 + [203] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f + [204] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 + [205] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 + [206] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 + [207] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 + [208] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 + [209] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f + [210] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 + [211] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 + [212] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 + [213] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 + [214] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 + [215] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f + [216] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 + [217] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 + [218] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 + [219] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 + [220] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 + [221] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f + [222] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 + [223] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 + to:tod_str::@return +tod_str::@return: scope:[tod_str] from tod_str + [224] return + to:@return + +(struct TIME_OF_DAY()) tod_read() +tod_read: scope:[tod_read] from main::@6 + [225] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) + [226] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) + [227] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) + [228] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) + to:tod_read::@return +tod_read::@return: scope:[tod_read] from tod_read + [229] return + to:@return + +(void()) queens() +queens: scope:[queens] from main::@5 + [230] phi() + to:queens::@1 +queens::@1: scope:[queens] from queens queens::@4 queens::@7 queens::@8 queens::@9 + [231] (dword) count#10 ← phi( queens/(dword) 0 queens::@4/(dword) count#25 queens::@7/(dword) count#10 queens::@8/(dword) count#10 queens::@9/(dword) count#10 ) + [231] (byte) queens::row#10 ← phi( queens/(byte) 1 queens::@4/(byte) queens::row#10 queens::@7/(byte) queens::row#1 queens::@8/(byte) queens::row#2 queens::@9/(byte) queens::row#10 ) + to:queens::@2 +queens::@2: scope:[queens] from queens::@1 + [232] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) + [233] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 + to:queens::@5 +queens::@5: scope:[queens] from queens::@2 + [234] (byte) legal::row#0 ← (byte) queens::row#10 + [235] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) + [236] call legal + [237] (byte) legal::return#0 ← (byte) legal::return#4 + to:queens::@9 +queens::@9: scope:[queens] from queens::@5 + [238] (byte~) queens::$2 ← (byte) legal::return#0 + [239] if((byte) 0==(byte~) queens::$2) goto queens::@1 + to:queens::@6 +queens::@6: scope:[queens] from queens::@9 + [240] if((byte) queens::row#10==(byte) 8) goto queens::@4 + to:queens::@7 +queens::@7: scope:[queens] from queens::@6 + [241] (byte) queens::row#1 ← ++ (byte) queens::row#10 + to:queens::@1 +queens::@4: scope:[queens] from queens::@6 + [242] (dword) count#25 ← ++ (dword) count#10 + [243] call print + to:queens::@1 +queens::@3: scope:[queens] from queens::@2 + [244] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 + [245] if((byte) queens::row#10==(byte) 1) goto queens::@return + to:queens::@8 +queens::@8: scope:[queens] from queens::@3 + [246] (byte) queens::row#2 ← -- (byte) queens::row#10 + to:queens::@1 +queens::@return: scope:[queens] from queens::@3 + [247] return + to:@return + +(void()) print() +print: scope:[print] from queens::@4 + [248] phi() + [249] call printf_str + to:print::@11 +print::@11: scope:[print] from print + [250] (dword) printf_ulong::uvalue#1 ← (dword) count#25 + [251] call printf_ulong + to:print::@12 +print::@12: scope:[print] from print::@11 + [252] phi() + [253] call printf_str + to:print::@1 +print::@1: scope:[print] from print::@12 print::@13 + [254] (byte) print::i#2 ← phi( print::@12/(byte) 1 print::@13/(byte) print::i#1 ) + [255] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 + to:print::@3 +print::@3: scope:[print] from print::@1 print::@7 + [256] (byte) print::i1#2 ← phi( print::@1/(byte) 1 print::@7/(byte) print::i1#1 ) + [257] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 + to:print::@return +print::@return: scope:[print] from print::@3 + [258] return + to:@return +print::@4: scope:[print] from print::@3 + [259] phi() + [260] call printf_str + to:print::@14 +print::@14: scope:[print] from print::@4 + [261] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 + [262] call printf_uchar + to:print::@5 +print::@5: scope:[print] from print::@14 print::@9 + [263] (byte) print::j#2 ← phi( print::@9/(byte) print::j#1 print::@14/(byte) 1 ) + [264] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 + to:print::@7 +print::@7: scope:[print] from print::@5 + [265] (byte) print::i1#1 ← ++ (byte) print::i1#2 + to:print::@3 +print::@6: scope:[print] from print::@5 + [266] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 + to:print::@10 +print::@10: scope:[print] from print::@6 + [267] phi() + [268] call printf_str + to:print::@9 +print::@9: scope:[print] from print::@10 print::@8 + [269] (byte) print::j#1 ← ++ (byte) print::j#2 + to:print::@5 +print::@8: scope:[print] from print::@6 + [270] phi() + [271] call printf_str + to:print::@9 +print::@2: scope:[print] from print::@1 + [272] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 + [273] call printf_uchar + to:print::@13 +print::@13: scope:[print] from print::@2 + [274] (byte) print::i#1 ← ++ (byte) print::i#2 + to:print::@1 + +(void()) printf_uchar((byte) printf_uchar::uvalue , (byte) printf_uchar::format_min_length , (byte) printf_uchar::format_justify_left , (byte) printf_uchar::format_sign_always , (byte) printf_uchar::format_zero_padding , (byte) printf_uchar::format_upper_case , (byte) printf_uchar::format_radix) +printf_uchar: scope:[printf_uchar] from print::@14 print::@2 + [275] (byte) printf_uchar::uvalue#2 ← phi( print::@14/(byte) printf_uchar::uvalue#1 print::@2/(byte) printf_uchar::uvalue#0 ) + to:printf_uchar::@1 +printf_uchar::@1: scope:[printf_uchar] from printf_uchar + [276] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [277] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 + [278] call uctoa + to:printf_uchar::@2 +printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 + [279] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [280] call printf_number_buffer + to:printf_uchar::@return +printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 + [281] return + to:@return + +(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) +uctoa: scope:[uctoa] from printf_uchar::@1 + [282] phi() + to:uctoa::@1 +uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 + [283] (byte*) uctoa::buffer#11 ← phi( uctoa::@4/(byte*) uctoa::buffer#14 uctoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [283] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 ) + [283] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 ) + [283] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 ) + [284] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 + to:uctoa::@3 +uctoa::@3: scope:[uctoa] from uctoa::@1 + [285] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) + [286] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 + [287] *((byte*) uctoa::buffer#3) ← (byte) 0 + to:uctoa::@return +uctoa::@return: scope:[uctoa] from uctoa::@3 + [288] return + to:@return +uctoa::@2: scope:[uctoa] from uctoa::@1 + [289] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) + [290] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 + to:uctoa::@7 +uctoa::@7: scope:[uctoa] from uctoa::@2 + [291] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 + to:uctoa::@4 +uctoa::@4: scope:[uctoa] from uctoa::@6 uctoa::@7 + [292] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 ) + [292] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 ) + [292] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 ) + [293] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 + to:uctoa::@1 +uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 + [294] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + [295] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + [296] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + [297] call uctoa_append + [298] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + to:uctoa::@6 +uctoa::@6: scope:[uctoa] from uctoa::@5 + [299] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + [300] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 + to:uctoa::@4 + +(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) +uctoa_append: scope:[uctoa_append] from uctoa::@5 + [301] phi() + to:uctoa_append::@1 +uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 + [302] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) + [302] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) + [303] 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 + [304] *((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 + [305] return + to:@return +uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 + [306] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 + [307] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 + to:uctoa_append::@1 + (byte()) legal((byte) legal::row , (byte) legal::column) legal: scope:[legal] from queens::@5 - [306] phi() + [308] phi() to:legal::@1 legal::@1: scope:[legal] from legal legal::@3 - [307] (byte) legal::i#10 ← phi( legal/(byte) 1 legal::@3/(byte) legal::i#1 ) - [308] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 - [309] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 + [309] (byte) legal::i#10 ← phi( legal/(byte) 1 legal::@3/(byte) legal::i#1 ) + [310] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 + [311] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 to:legal::@return legal::@return: scope:[legal] from legal::@1 legal::@2 legal::@5 - [310] (byte) legal::return#4 ← phi( legal::@1/(byte) 1 legal::@2/(byte) 0 legal::@5/(byte) 0 ) - [311] return + [312] (byte) legal::return#4 ← phi( legal::@1/(byte) 1 legal::@2/(byte) 0 legal::@5/(byte) 0 ) + [313] return to:@return legal::@2: scope:[legal] from legal::@1 - [312] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return + [314] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return to:legal::@4 legal::@4: scope:[legal] from legal::@2 - [313] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) + [315] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) to:legal::diff1 legal::diff1: scope:[legal] from legal::@4 - [314] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 + [316] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 to:legal::diff1_@3 legal::diff1_@3: scope:[legal] from legal::diff1 - [315] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 + [317] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 to:legal::diff1_@return legal::diff1_@return: scope:[legal] from legal::diff1_@1 legal::diff1_@3 - [316] (byte) legal::diff1_return#2 ← phi( legal::diff1_@1/(byte) legal::diff1_return#0 legal::diff1_@3/(byte) legal::diff1_return#1 ) + [318] (byte) legal::diff1_return#2 ← phi( legal::diff1_@1/(byte) legal::diff1_return#0 legal::diff1_@3/(byte) legal::diff1_return#1 ) to:legal::diff2 legal::diff2: scope:[legal] from legal::diff1_@return - [317] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 + [319] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 to:legal::diff2_@3 legal::diff2_@3: scope:[legal] from legal::diff2 - [318] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 + [320] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 to:legal::diff2_@return legal::diff2_@return: scope:[legal] from legal::diff2_@1 legal::diff2_@3 - [319] (byte) legal::diff2_return#2 ← phi( legal::diff2_@1/(byte) legal::diff2_return#0 legal::diff2_@3/(byte) legal::diff2_return#1 ) + [321] (byte) legal::diff2_return#2 ← phi( legal::diff2_@1/(byte) legal::diff2_return#0 legal::diff2_@3/(byte) legal::diff2_return#1 ) to:legal::@5 legal::@5: scope:[legal] from legal::diff2_@return - [320] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 + [322] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 to:legal::@return legal::@3: scope:[legal] from legal::@5 - [321] (byte) legal::i#1 ← ++ (byte) legal::i#10 + [323] (byte) legal::i#1 ← ++ (byte) legal::i#10 to:legal::@1 legal::diff2_@1: scope:[legal] from legal::diff2 - [322] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 + [324] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 to:legal::diff2_@return legal::diff1_@1: scope:[legal] from legal::diff1 - [323] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 + [325] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 to:legal::diff1_@return (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) tod_init: scope:[tod_init] from main::@4 - [324] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 - [325] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f - [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 - [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 - [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 - [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 + [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 + [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f + [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 + [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 + [330] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 + [331] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 to:tod_init::@return tod_init::@return: scope:[tod_init] from tod_init - [330] return + [332] return to:@return (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_upper_case , (byte) printf_uint::format_radix) printf_uint: scope:[printf_uint] from main::@3 - [331] phi() + [333] phi() to:printf_uint::@1 printf_uint::@1: scope:[printf_uint] from printf_uint - [332] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [333] call utoa + [334] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [335] call utoa to:printf_uint::@2 printf_uint::@2: scope:[printf_uint] from printf_uint::@1 - [334] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [335] call printf_number_buffer + [336] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [337] call printf_number_buffer to:printf_uint::@return printf_uint::@return: scope:[printf_uint] from printf_uint::@2 - [336] return + [338] return to:@return (void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) utoa: scope:[utoa] from printf_uint::@1 - [337] phi() + [339] phi() to:utoa::@1 utoa::@1: scope:[utoa] from utoa utoa::@4 - [338] (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 ) - [338] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) - [338] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) - [338] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) - [339] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 + [340] (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 ) + [340] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) + [340] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) + [340] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) + [341] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 to:utoa::@3 utoa::@3: scope:[utoa] from utoa::@1 - [340] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 - [341] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) - [342] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 - [343] *((byte*) utoa::buffer#3) ← (byte) 0 + [342] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 + [343] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) + [344] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 + [345] *((byte*) utoa::buffer#3) ← (byte) 0 to:utoa::@return utoa::@return: scope:[utoa] from utoa::@3 - [344] return + [346] return to:@return utoa::@2: scope:[utoa] from utoa::@1 - [345] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 - [346] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) - [347] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 + [347] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 + [348] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) + [349] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 to:utoa::@7 utoa::@7: scope:[utoa] from utoa::@2 - [348] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 + [350] 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 - [349] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) - [349] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) - [349] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) - [350] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 + [351] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) + [351] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) + [351] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) + [352] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 to:utoa::@1 utoa::@5: scope:[utoa] from utoa::@2 utoa::@7 - [351] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - [352] (word) utoa_append::value#0 ← (word) utoa::value#2 - [353] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - [354] call utoa_append - [355] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + [353] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + [354] (word) utoa_append::value#0 ← (word) utoa::value#2 + [355] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + [356] call utoa_append + [357] (word) utoa_append::return#0 ← (word) utoa_append::value#2 to:utoa::@6 utoa::@6: scope:[utoa] from utoa::@5 - [356] (word) utoa::value#0 ← (word) utoa_append::return#0 - [357] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 + [358] (word) utoa::value#0 ← (word) utoa_append::return#0 + [359] (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 - [358] phi() + [360] phi() to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [359] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) - [359] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) - [360] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 + [361] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) + [361] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) + [362] 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 - [361] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) + [363] *((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 - [362] return + [364] return to:@return utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [363] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 - [364] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 + [365] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 + [366] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 to:utoa_append::@1 (void()) printf_cls() printf_cls: scope:[printf_cls] from main - [365] phi() - [366] call memset + [367] phi() + [368] call memset to:printf_cls::@1 printf_cls::@1: scope:[printf_cls] from printf_cls - [367] (byte*) printf_cursor_ptr ← (byte*) 1024 - [368] (byte) printf_cursor_x ← (byte) 0 - [369] (byte) printf_cursor_y ← (byte) 0 + [369] (byte*) printf_cursor_ptr ← (byte*) 1024 + [370] (byte) printf_cursor_x ← (byte) 0 + [371] (byte) printf_cursor_y ← (byte) 0 to:printf_cls::@return printf_cls::@return: scope:[printf_cls] from printf_cls::@1 - [370] return + [372] return to:@return +null depth in calling loop Loop head: queens::@1 tails: queens::@9 queens::@8 queens::@7 queens::@4 blocks: queens::@9 queens::@5 queens::@2 queens::@1 queens::@8 queens::@3 queens::@7 queens::@6 queens::@4 in scope print +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar +null depth in calling loop Loop head: queens::@1 tails: queens::@9 queens::@8 queens::@7 queens::@4 blocks: queens::@9 queens::@5 queens::@2 queens::@1 queens::@8 queens::@3 queens::@7 queens::@6 queens::@4 in scope print +null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar +null depth in calling loop Loop head: queens::@1 tails: queens::@9 queens::@8 queens::@7 queens::@4 blocks: queens::@9 queens::@5 queens::@2 queens::@1 queens::@8 queens::@3 queens::@7 queens::@6 queens::@4 in scope print null depth in calling loop Loop head: queens::@1 tails: queens::@9 queens::@8 queens::@7 queens::@4 blocks: queens::@9 queens::@5 queens::@2 queens::@1 queens::@8 queens::@3 queens::@7 queens::@6 queens::@4 in scope print null depth in calling loop Loop head: queens::@1 tails: queens::@9 queens::@8 queens::@7 queens::@4 blocks: queens::@9 queens::@5 queens::@2 queens::@1 queens::@8 queens::@3 queens::@7 queens::@6 queens::@4 in scope print null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str @@ -6473,16 +6572,6 @@ null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print:: null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str null depth in calling loop Loop head: queens::@1 tails: queens::@9 queens::@8 queens::@7 queens::@4 blocks: queens::@9 queens::@5 queens::@2 queens::@1 queens::@8 queens::@3 queens::@7 queens::@6 queens::@4 in scope print null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar -null depth in calling loop Loop head: queens::@1 tails: queens::@9 queens::@8 queens::@7 queens::@4 blocks: queens::@9 queens::@5 queens::@2 queens::@1 queens::@8 queens::@3 queens::@7 queens::@6 queens::@4 in scope print -null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar -null depth in calling loop Loop head: queens::@1 tails: queens::@9 queens::@8 queens::@7 queens::@4 blocks: queens::@9 queens::@5 queens::@2 queens::@1 queens::@8 queens::@3 queens::@7 queens::@6 queens::@4 in scope print -null depth in calling loop Loop head: queens::@1 tails: queens::@9 queens::@8 queens::@7 queens::@4 blocks: queens::@9 queens::@5 queens::@2 queens::@1 queens::@8 queens::@3 queens::@7 queens::@6 queens::@4 in scope print -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str -null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str -null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str @@ -6491,6 +6580,11 @@ null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print:: null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str +null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str +null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar 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 @@ -6500,13 +6594,13 @@ null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print:: null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str -null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str -null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str +null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str +null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar 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 @@ -6516,13 +6610,13 @@ null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print:: null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str -null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str -null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str -null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str +null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str +null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_str +null depth in calling loop Loop head: print::@5 tails: print::@9 blocks: print::@9 print::@10 print::@8 print::@6 print::@5 in scope printf_str null depth in calling loop Loop head: print::@3 tails: print::@7 blocks: print::@7 print::@5 print::@14 print::@9 print::@4 print::@10 print::@8 print::@3 print::@6 in scope printf_uchar null depth in calling loop Loop head: print::@1 tails: print::@13 blocks: print::@13 print::@2 print::@1 in scope printf_uchar 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 @@ -6548,8 +6642,8 @@ VARIABLE REGISTER WEIGHTS (byte) TIME_OF_DAY::TENTHS (struct TIME_OF_DAY) TOD_ZERO loadstore = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } (dword) count -(dword) count#14 572.0 -(dword) count#22 413.89655172413796 +(dword) count#10 276.51724137931035 +(dword) count#25 413.89655172413796 (byte()) legal((byte) legal::row , (byte) legal::column) (byte~) legal::$0 2000002.0 (byte) legal::column @@ -6576,14 +6670,6 @@ VARIABLE REGISTER WEIGHTS (byte) legal::row (byte) legal::row#0 222278.05555555556 (void()) main() -(byte) main::tod_HOURS -(byte) main::tod_HOURS#0 5.5 -(byte) main::tod_MIN -(byte) main::tod_MIN#0 5.5 -(byte) main::tod_SEC -(byte) main::tod_SEC#0 5.5 -(byte) main::tod_TENTHS -(byte) main::tod_TENTHS#0 5.5 (void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) (void*) memcpy::destination (byte*) memcpy::dst @@ -6629,9 +6715,9 @@ VARIABLE REGISTER WEIGHTS (byte) printf_char::ch#2 2.00000002E8 (byte) printf_char::ch#3 1.1010100000004E13 (void()) printf_cls() -(byte*) printf_cursor_ptr loadstore 1.2788888888894998E12 -(byte) printf_cursor_x loadstore 2.3647058823593533E11 -(byte) printf_cursor_y loadstore 1.769060773481271E12 +(byte*) printf_cursor_ptr loadstore 1.251086956522337E12 +(byte) printf_cursor_x loadstore 2.3103448275924713E11 +(byte) printf_cursor_y loadstore 1.7308108108114055E12 (byte) printf_format_number::justify_left (byte) printf_format_number::min_length (byte) printf_format_number::radix @@ -6690,8 +6776,8 @@ VARIABLE REGISTER WEIGHTS (byte*) printf_str::str (byte*) printf_str::str#0 4.2857142861428566E9 (byte*) printf_str::str#1 2.00000002E8 -(byte*) printf_str::str#11 2.05000000025E10 -(byte*) printf_str::str#13 1.100000002E9 +(byte*) printf_str::str#13 2.05000000025E10 +(byte*) printf_str::str#15 1.100000002E9 (void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) (struct printf_format_string) printf_string::format (byte) printf_string::format_justify_left @@ -6729,7 +6815,9 @@ VARIABLE REGISTER WEIGHTS (byte) printf_ulong::format_upper_case (byte) printf_ulong::format_zero_padding (dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 36667.33333333333 +(dword) printf_ulong::uvalue#0 22.0 +(dword) printf_ulong::uvalue#1 20002.0 +(dword) printf_ulong::uvalue#2 55006.5 (void()) queens() (byte~) queens::$2 2002.0 (byte) queens::row @@ -6933,7 +7021,7 @@ VARIABLE REGISTER WEIGHTS (word) utoa_append::value#2 5018334.166666666 Initial phi equivalence classes -[ printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 ] +[ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] [ memset::num#2 ] [ memset::str#3 ] [ memset::c#4 ] @@ -6941,12 +7029,7 @@ Initial phi equivalence classes [ memcpy::src#2 memcpy::src#1 ] [ memcpy::dst#2 memcpy::dst#1 ] [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -[ queens::row#10 queens::row#1 queens::row#2 ] -[ count#14 count#22 ] -[ print::i#2 print::i#1 ] -[ print::i1#2 print::i1#1 ] -[ print::j#2 print::j#1 ] -[ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +[ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] [ printf_number_buffer::format_min_length#3 ] [ printf_number_buffer::format_justify_left#10 ] [ printf_number_buffer::format_zero_padding#10 ] @@ -6962,18 +7045,24 @@ Initial phi equivalence classes [ toupper::return#2 toupper::return#0 toupper::ch#0 ] [ strlen::str#3 strlen::str#1 strlen::str#0 ] [ strlen::len#2 strlen::len#1 ] -[ uctoa::digit#2 uctoa::digit#1 ] -[ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -[ uctoa::started#2 uctoa::started#4 ] -[ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] -[ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -[ uctoa_append::digit#2 uctoa_append::digit#1 ] [ ultoa::digit#2 ultoa::digit#1 ] [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] [ ultoa::started#2 ultoa::started#4 ] [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] [ ultoa_append::digit#2 ultoa_append::digit#1 ] +[ queens::row#10 queens::row#1 queens::row#2 ] +[ count#10 count#25 ] +[ print::i#2 print::i#1 ] +[ print::i1#2 print::i1#1 ] +[ print::j#2 print::j#1 ] +[ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +[ uctoa::digit#2 uctoa::digit#1 ] +[ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] +[ uctoa::started#2 uctoa::started#4 ] +[ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] +[ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] +[ uctoa_append::digit#2 uctoa_append::digit#1 ] [ legal::i#10 legal::i#1 ] [ legal::return#4 ] [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] @@ -6995,10 +7084,6 @@ Added variable tod_read::return_TENTHS#2 to live range equivalence class [ tod_r Added variable tod_read::return_SEC#2 to live range equivalence class [ tod_read::return_SEC#2 ] Added variable tod_read::return_MIN#2 to live range equivalence class [ tod_read::return_MIN#2 ] Added variable tod_read::return_HOURS#2 to live range equivalence class [ tod_read::return_HOURS#2 ] -Added variable main::tod_TENTHS#0 to live range equivalence class [ main::tod_TENTHS#0 ] -Added variable main::tod_SEC#0 to live range equivalence class [ main::tod_SEC#0 ] -Added variable main::tod_MIN#0 to live range equivalence class [ main::tod_MIN#0 ] -Added variable main::tod_HOURS#0 to live range equivalence class [ main::tod_HOURS#0 ] Added variable tod_str::tod_TENTHS#0 to live range equivalence class [ tod_str::tod_TENTHS#0 ] Added variable tod_str::tod_SEC#0 to live range equivalence class [ tod_str::tod_SEC#0 ] Added variable tod_str::tod_MIN#0 to live range equivalence class [ tod_str::tod_MIN#0 ] @@ -7008,6 +7093,17 @@ Added variable printf_ln::$0 to live range equivalence class [ printf_ln::$0 ] Added variable printf_ln::$1 to live range equivalence class [ printf_ln::$1 ] Added variable printf_scroll::$4 to live range equivalence class [ printf_scroll::$4 ] Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] +Added variable strlen::return#2 to live range equivalence class [ strlen::return#2 ] +Added variable printf_number_buffer::$19 to live range equivalence class [ printf_number_buffer::$19 ] +Added variable toupper::return#3 to live range equivalence class [ toupper::return#3 ] +Added variable strupr::$0 to live range equivalence class [ strupr::$0 ] +Added variable ultoa::$11 to live range equivalence class [ ultoa::$11 ] +Added variable ultoa::buffer#3 to live range equivalence class [ ultoa::buffer#3 ] +Added variable ultoa::$10 to live range equivalence class [ ultoa::$10 ] +Added variable ultoa::digit_value#0 to live range equivalence class [ ultoa::digit_value#0 ] +Added variable ultoa_append::buffer#0 to live range equivalence class [ ultoa_append::buffer#0 ] +Added variable ultoa_append::sub#0 to live range equivalence class [ ultoa_append::sub#0 ] +Added variable ultoa_append::return#0 to live range equivalence class [ ultoa_append::return#0 ] Added variable tod_str::$0 to live range equivalence class [ tod_str::$0 ] Added variable tod_str::$1 to live range equivalence class [ tod_str::$1 ] Added variable tod_str::$2 to live range equivalence class [ tod_str::$2 ] @@ -7032,23 +7128,11 @@ Added variable legal::row#0 to live range equivalence class [ legal::row#0 ] Added variable legal::column#0 to live range equivalence class [ legal::column#0 ] Added variable legal::return#0 to live range equivalence class [ legal::return#0 ] Added variable queens::$2 to live range equivalence class [ queens::$2 ] -Added variable printf_ulong::uvalue#0 to live range equivalence class [ printf_ulong::uvalue#0 ] -Added variable strlen::return#2 to live range equivalence class [ strlen::return#2 ] -Added variable printf_number_buffer::$19 to live range equivalence class [ printf_number_buffer::$19 ] -Added variable toupper::return#3 to live range equivalence class [ toupper::return#3 ] -Added variable strupr::$0 to live range equivalence class [ strupr::$0 ] Added variable uctoa::buffer#3 to live range equivalence class [ uctoa::buffer#3 ] Added variable uctoa::digit_value#0 to live range equivalence class [ uctoa::digit_value#0 ] Added variable uctoa_append::buffer#0 to live range equivalence class [ uctoa_append::buffer#0 ] Added variable uctoa_append::sub#0 to live range equivalence class [ uctoa_append::sub#0 ] Added variable uctoa_append::return#0 to live range equivalence class [ uctoa_append::return#0 ] -Added variable ultoa::$11 to live range equivalence class [ ultoa::$11 ] -Added variable ultoa::buffer#3 to live range equivalence class [ ultoa::buffer#3 ] -Added variable ultoa::$10 to live range equivalence class [ ultoa::$10 ] -Added variable ultoa::digit_value#0 to live range equivalence class [ ultoa::digit_value#0 ] -Added variable ultoa_append::buffer#0 to live range equivalence class [ ultoa_append::buffer#0 ] -Added variable ultoa_append::sub#0 to live range equivalence class [ ultoa_append::sub#0 ] -Added variable ultoa_append::return#0 to live range equivalence class [ ultoa_append::return#0 ] Added variable legal::$0 to live range equivalence class [ legal::$0 ] Added variable legal::diff1_a#0 to live range equivalence class [ legal::diff1_a#0 ] Added variable utoa::$11 to live range equivalence class [ utoa::$11 ] @@ -7061,7 +7145,7 @@ Added variable utoa_append::return#0 to live range equivalence class [ utoa_appe Added variable printf_buffer to live range equivalence class [ printf_buffer ] Added variable TOD_ZERO to live range equivalence class [ TOD_ZERO ] Complete equivalence classes -[ printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 ] +[ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] [ memset::num#2 ] [ memset::str#3 ] [ memset::c#4 ] @@ -7069,12 +7153,7 @@ Complete equivalence classes [ memcpy::src#2 memcpy::src#1 ] [ memcpy::dst#2 memcpy::dst#1 ] [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -[ queens::row#10 queens::row#1 queens::row#2 ] -[ count#14 count#22 ] -[ print::i#2 print::i#1 ] -[ print::i1#2 print::i1#1 ] -[ print::j#2 print::j#1 ] -[ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +[ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] [ printf_number_buffer::format_min_length#3 ] [ printf_number_buffer::format_justify_left#10 ] [ printf_number_buffer::format_zero_padding#10 ] @@ -7090,18 +7169,24 @@ Complete equivalence classes [ toupper::return#2 toupper::return#0 toupper::ch#0 ] [ strlen::str#3 strlen::str#1 strlen::str#0 ] [ strlen::len#2 strlen::len#1 ] -[ uctoa::digit#2 uctoa::digit#1 ] -[ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -[ uctoa::started#2 uctoa::started#4 ] -[ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] -[ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -[ uctoa_append::digit#2 uctoa_append::digit#1 ] [ ultoa::digit#2 ultoa::digit#1 ] [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] [ ultoa::started#2 ultoa::started#4 ] [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] [ ultoa_append::digit#2 ultoa_append::digit#1 ] +[ queens::row#10 queens::row#1 queens::row#2 ] +[ count#10 count#25 ] +[ print::i#2 print::i#1 ] +[ print::i1#2 print::i1#1 ] +[ print::j#2 print::j#1 ] +[ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +[ uctoa::digit#2 uctoa::digit#1 ] +[ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] +[ uctoa::started#2 uctoa::started#4 ] +[ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] +[ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] +[ uctoa_append::digit#2 uctoa_append::digit#1 ] [ legal::i#10 legal::i#1 ] [ legal::return#4 ] [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] @@ -7123,10 +7208,6 @@ Complete equivalence classes [ tod_read::return_SEC#2 ] [ tod_read::return_MIN#2 ] [ tod_read::return_HOURS#2 ] -[ main::tod_TENTHS#0 ] -[ main::tod_SEC#0 ] -[ main::tod_MIN#0 ] -[ main::tod_HOURS#0 ] [ tod_str::tod_TENTHS#0 ] [ tod_str::tod_SEC#0 ] [ tod_str::tod_MIN#0 ] @@ -7136,6 +7217,17 @@ Complete equivalence classes [ printf_ln::$1 ] [ printf_scroll::$4 ] [ memset::end#0 ] +[ strlen::return#2 ] +[ printf_number_buffer::$19 ] +[ toupper::return#3 ] +[ strupr::$0 ] +[ ultoa::$11 ] +[ ultoa::buffer#3 ] +[ ultoa::$10 ] +[ ultoa::digit_value#0 ] +[ ultoa_append::buffer#0 ] +[ ultoa_append::sub#0 ] +[ ultoa_append::return#0 ] [ tod_str::$0 ] [ tod_str::$1 ] [ tod_str::$2 ] @@ -7160,23 +7252,11 @@ Complete equivalence classes [ legal::column#0 ] [ legal::return#0 ] [ queens::$2 ] -[ printf_ulong::uvalue#0 ] -[ strlen::return#2 ] -[ printf_number_buffer::$19 ] -[ toupper::return#3 ] -[ strupr::$0 ] [ uctoa::buffer#3 ] [ uctoa::digit_value#0 ] [ uctoa_append::buffer#0 ] [ uctoa_append::sub#0 ] [ uctoa_append::return#0 ] -[ ultoa::$11 ] -[ ultoa::buffer#3 ] -[ ultoa::$10 ] -[ ultoa::digit_value#0 ] -[ ultoa_append::buffer#0 ] -[ ultoa_append::sub#0 ] -[ ultoa_append::return#0 ] [ legal::$0 ] [ legal::diff1_a#0 ] [ utoa::$11 ] @@ -7188,7 +7268,7 @@ Complete equivalence classes [ utoa_append::return#0 ] [ printf_buffer ] [ TOD_ZERO ] -Allocated zp[2]:2 [ printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 ] +Allocated zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] Allocated zp[2]:4 [ memset::num#2 ] Allocated zp[2]:6 [ memset::str#3 ] Allocated zp[1]:8 [ memset::c#4 ] @@ -7196,64 +7276,61 @@ Allocated zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] Allocated zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] Allocated zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] Allocated zp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -Allocated zp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 ] -Allocated zp[4]:17 [ count#14 count#22 ] -Allocated zp[1]:21 [ print::i#2 print::i#1 ] -Allocated zp[1]:22 [ print::i1#2 print::i1#1 ] -Allocated zp[1]:23 [ print::j#2 print::j#1 ] -Allocated zp[1]:24 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] -Allocated zp[1]:25 [ printf_number_buffer::format_min_length#3 ] -Allocated zp[1]:26 [ printf_number_buffer::format_justify_left#10 ] -Allocated zp[1]:27 [ printf_number_buffer::format_zero_padding#10 ] -Allocated zp[2]:28 [ printf_number_buffer::buffer_digits#10 ] -Allocated zp[1]:30 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Allocated zp[1]:31 [ printf_number_buffer::format_upper_case#10 ] -Allocated zp[1]:32 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] -Allocated zp[1]:33 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Allocated zp[1]:34 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Allocated zp[1]:35 [ printf_padding::pad#7 ] -Allocated zp[1]:36 [ printf_padding::i#2 printf_padding::i#1 ] -Allocated zp[2]:37 [ strupr::src#2 strupr::str#0 strupr::src#1 ] -Allocated zp[1]:39 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -Allocated zp[2]:40 [ strlen::str#3 strlen::str#1 strlen::str#0 ] -Allocated zp[2]:42 [ strlen::len#2 strlen::len#1 ] -Allocated zp[1]:44 [ uctoa::digit#2 uctoa::digit#1 ] -Allocated zp[1]:45 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -Allocated zp[1]:46 [ uctoa::started#2 uctoa::started#4 ] -Allocated zp[2]:47 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] -Allocated zp[1]:49 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Allocated zp[1]:50 [ uctoa_append::digit#2 uctoa_append::digit#1 ] -Allocated zp[1]:51 [ ultoa::digit#2 ultoa::digit#1 ] -Allocated zp[4]:52 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] -Allocated zp[1]:56 [ ultoa::started#2 ultoa::started#4 ] -Allocated zp[2]:57 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] -Allocated zp[4]:59 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] -Allocated zp[1]:63 [ ultoa_append::digit#2 ultoa_append::digit#1 ] -Allocated zp[1]:64 [ legal::i#10 legal::i#1 ] -Allocated zp[1]:65 [ legal::return#4 ] -Allocated zp[1]:66 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] -Allocated zp[1]:67 [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] -Allocated zp[1]:68 [ utoa::digit#2 utoa::digit#1 ] -Allocated zp[2]:69 [ utoa::value#2 utoa::value#6 utoa::value#0 ] -Allocated zp[1]:71 [ utoa::started#2 utoa::started#4 ] -Allocated zp[2]:72 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] -Allocated zp[2]:74 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] -Allocated zp[1]:76 [ utoa_append::digit#2 utoa_append::digit#1 ] -Allocated zp[1]:77 [ printf_cursor_x ] -Allocated zp[1]:78 [ printf_cursor_y ] -Allocated zp[2]:79 [ printf_cursor_ptr ] -Allocated zp[1]:81 [ tod_init::tod_TENTHS#0 ] -Allocated zp[1]:82 [ tod_init::tod_SEC#0 ] -Allocated zp[1]:83 [ tod_init::tod_MIN#0 ] -Allocated zp[1]:84 [ tod_init::tod_HOURS#0 ] -Allocated zp[1]:85 [ tod_read::return_TENTHS#2 ] -Allocated zp[1]:86 [ tod_read::return_SEC#2 ] -Allocated zp[1]:87 [ tod_read::return_MIN#2 ] -Allocated zp[1]:88 [ tod_read::return_HOURS#2 ] -Allocated zp[1]:89 [ main::tod_TENTHS#0 ] -Allocated zp[1]:90 [ main::tod_SEC#0 ] -Allocated zp[1]:91 [ main::tod_MIN#0 ] -Allocated zp[1]:92 [ main::tod_HOURS#0 ] +Allocated zp[4]:16 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] +Allocated zp[1]:20 [ printf_number_buffer::format_min_length#3 ] +Allocated zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] +Allocated zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] +Allocated zp[2]:23 [ printf_number_buffer::buffer_digits#10 ] +Allocated zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Allocated zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Allocated zp[1]:27 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] +Allocated zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Allocated zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Allocated zp[1]:30 [ printf_padding::pad#7 ] +Allocated zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] +Allocated zp[2]:32 [ strupr::src#2 strupr::str#0 strupr::src#1 ] +Allocated zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] +Allocated zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 ] +Allocated zp[2]:37 [ strlen::len#2 strlen::len#1 ] +Allocated zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] +Allocated zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] +Allocated zp[1]:44 [ ultoa::started#2 ultoa::started#4 ] +Allocated zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] +Allocated zp[4]:47 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] +Allocated zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] +Allocated zp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 ] +Allocated zp[4]:53 [ count#10 count#25 ] +Allocated zp[1]:57 [ print::i#2 print::i#1 ] +Allocated zp[1]:58 [ print::i1#2 print::i1#1 ] +Allocated zp[1]:59 [ print::j#2 print::j#1 ] +Allocated zp[1]:60 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +Allocated zp[1]:61 [ uctoa::digit#2 uctoa::digit#1 ] +Allocated zp[1]:62 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] +Allocated zp[1]:63 [ uctoa::started#2 uctoa::started#4 ] +Allocated zp[2]:64 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] +Allocated zp[1]:66 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] +Allocated zp[1]:67 [ uctoa_append::digit#2 uctoa_append::digit#1 ] +Allocated zp[1]:68 [ legal::i#10 legal::i#1 ] +Allocated zp[1]:69 [ legal::return#4 ] +Allocated zp[1]:70 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] +Allocated zp[1]:71 [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] +Allocated zp[1]:72 [ utoa::digit#2 utoa::digit#1 ] +Allocated zp[2]:73 [ utoa::value#2 utoa::value#6 utoa::value#0 ] +Allocated zp[1]:75 [ utoa::started#2 utoa::started#4 ] +Allocated zp[2]:76 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] +Allocated zp[2]:78 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] +Allocated zp[1]:80 [ utoa_append::digit#2 utoa_append::digit#1 ] +Allocated zp[1]:81 [ printf_cursor_x ] +Allocated zp[1]:82 [ printf_cursor_y ] +Allocated zp[2]:83 [ printf_cursor_ptr ] +Allocated zp[1]:85 [ tod_init::tod_TENTHS#0 ] +Allocated zp[1]:86 [ tod_init::tod_SEC#0 ] +Allocated zp[1]:87 [ tod_init::tod_MIN#0 ] +Allocated zp[1]:88 [ tod_init::tod_HOURS#0 ] +Allocated zp[1]:89 [ tod_read::return_TENTHS#2 ] +Allocated zp[1]:90 [ tod_read::return_SEC#2 ] +Allocated zp[1]:91 [ tod_read::return_MIN#2 ] +Allocated zp[1]:92 [ tod_read::return_HOURS#2 ] Allocated zp[1]:93 [ tod_str::tod_TENTHS#0 ] Allocated zp[1]:94 [ tod_str::tod_SEC#0 ] Allocated zp[1]:95 [ tod_str::tod_MIN#0 ] @@ -7263,56 +7340,55 @@ Allocated zp[2]:98 [ printf_ln::$0 ] Allocated zp[2]:100 [ printf_ln::$1 ] Allocated zp[2]:102 [ printf_scroll::$4 ] Allocated zp[2]:104 [ memset::end#0 ] -Allocated zp[1]:106 [ tod_str::$0 ] -Allocated zp[1]:107 [ tod_str::$1 ] -Allocated zp[1]:108 [ tod_str::$2 ] -Allocated zp[1]:109 [ tod_str::$3 ] -Allocated zp[1]:110 [ tod_str::$4 ] -Allocated zp[1]:111 [ tod_str::$5 ] -Allocated zp[1]:112 [ tod_str::$6 ] -Allocated zp[1]:113 [ tod_str::$7 ] -Allocated zp[1]:114 [ tod_str::$8 ] -Allocated zp[1]:115 [ tod_str::$9 ] -Allocated zp[1]:116 [ tod_str::$10 ] -Allocated zp[1]:117 [ tod_str::$11 ] -Allocated zp[1]:118 [ tod_str::$12 ] -Allocated zp[1]:119 [ tod_str::$13 ] -Allocated zp[1]:120 [ tod_str::$14 ] -Allocated zp[1]:121 [ tod_str::$15 ] -Allocated zp[1]:122 [ tod_read::return_HOURS#0 ] -Allocated zp[1]:123 [ tod_read::return_MIN#0 ] -Allocated zp[1]:124 [ tod_read::return_SEC#0 ] -Allocated zp[1]:125 [ tod_read::return_TENTHS#0 ] -Allocated zp[1]:126 [ legal::row#0 ] -Allocated zp[1]:127 [ legal::column#0 ] -Allocated zp[1]:128 [ legal::return#0 ] -Allocated zp[1]:129 [ queens::$2 ] -Allocated zp[4]:130 [ printf_ulong::uvalue#0 ] -Allocated zp[2]:134 [ strlen::return#2 ] -Allocated zp[2]:136 [ printf_number_buffer::$19 ] -Allocated zp[1]:138 [ toupper::return#3 ] -Allocated zp[1]:139 [ strupr::$0 ] -Allocated zp[2]:140 [ uctoa::buffer#3 ] -Allocated zp[1]:142 [ uctoa::digit_value#0 ] -Allocated zp[2]:143 [ uctoa_append::buffer#0 ] -Allocated zp[1]:145 [ uctoa_append::sub#0 ] -Allocated zp[1]:146 [ uctoa_append::return#0 ] -Allocated zp[1]:147 [ ultoa::$11 ] -Allocated zp[2]:148 [ ultoa::buffer#3 ] -Allocated zp[1]:150 [ ultoa::$10 ] -Allocated zp[4]:151 [ ultoa::digit_value#0 ] -Allocated zp[2]:155 [ ultoa_append::buffer#0 ] -Allocated zp[4]:157 [ ultoa_append::sub#0 ] -Allocated zp[4]:161 [ ultoa_append::return#0 ] -Allocated zp[1]:165 [ legal::$0 ] -Allocated zp[1]:166 [ legal::diff1_a#0 ] -Allocated zp[1]:167 [ utoa::$11 ] -Allocated zp[2]:168 [ utoa::buffer#3 ] -Allocated zp[1]:170 [ utoa::$10 ] -Allocated zp[2]:171 [ utoa::digit_value#0 ] -Allocated zp[2]:173 [ utoa_append::buffer#0 ] -Allocated zp[2]:175 [ utoa_append::sub#0 ] -Allocated zp[2]:177 [ utoa_append::return#0 ] +Allocated zp[2]:106 [ strlen::return#2 ] +Allocated zp[2]:108 [ printf_number_buffer::$19 ] +Allocated zp[1]:110 [ toupper::return#3 ] +Allocated zp[1]:111 [ strupr::$0 ] +Allocated zp[1]:112 [ ultoa::$11 ] +Allocated zp[2]:113 [ ultoa::buffer#3 ] +Allocated zp[1]:115 [ ultoa::$10 ] +Allocated zp[4]:116 [ ultoa::digit_value#0 ] +Allocated zp[2]:120 [ ultoa_append::buffer#0 ] +Allocated zp[4]:122 [ ultoa_append::sub#0 ] +Allocated zp[4]:126 [ ultoa_append::return#0 ] +Allocated zp[1]:130 [ tod_str::$0 ] +Allocated zp[1]:131 [ tod_str::$1 ] +Allocated zp[1]:132 [ tod_str::$2 ] +Allocated zp[1]:133 [ tod_str::$3 ] +Allocated zp[1]:134 [ tod_str::$4 ] +Allocated zp[1]:135 [ tod_str::$5 ] +Allocated zp[1]:136 [ tod_str::$6 ] +Allocated zp[1]:137 [ tod_str::$7 ] +Allocated zp[1]:138 [ tod_str::$8 ] +Allocated zp[1]:139 [ tod_str::$9 ] +Allocated zp[1]:140 [ tod_str::$10 ] +Allocated zp[1]:141 [ tod_str::$11 ] +Allocated zp[1]:142 [ tod_str::$12 ] +Allocated zp[1]:143 [ tod_str::$13 ] +Allocated zp[1]:144 [ tod_str::$14 ] +Allocated zp[1]:145 [ tod_str::$15 ] +Allocated zp[1]:146 [ tod_read::return_HOURS#0 ] +Allocated zp[1]:147 [ tod_read::return_MIN#0 ] +Allocated zp[1]:148 [ tod_read::return_SEC#0 ] +Allocated zp[1]:149 [ tod_read::return_TENTHS#0 ] +Allocated zp[1]:150 [ legal::row#0 ] +Allocated zp[1]:151 [ legal::column#0 ] +Allocated zp[1]:152 [ legal::return#0 ] +Allocated zp[1]:153 [ queens::$2 ] +Allocated zp[2]:154 [ uctoa::buffer#3 ] +Allocated zp[1]:156 [ uctoa::digit_value#0 ] +Allocated zp[2]:157 [ uctoa_append::buffer#0 ] +Allocated zp[1]:159 [ uctoa_append::sub#0 ] +Allocated zp[1]:160 [ uctoa_append::return#0 ] +Allocated zp[1]:161 [ legal::$0 ] +Allocated zp[1]:162 [ legal::diff1_a#0 ] +Allocated zp[1]:163 [ utoa::$11 ] +Allocated zp[2]:164 [ utoa::buffer#3 ] +Allocated zp[1]:166 [ utoa::$10 ] +Allocated zp[2]:167 [ utoa::digit_value#0 ] +Allocated zp[2]:169 [ utoa_append::buffer#0 ] +Allocated zp[2]:171 [ utoa_append::sub#0 ] +Allocated zp[2]:173 [ utoa_append::return#0 ] Allocated mem[12] [ printf_buffer ] Allocated mem[4] [ TOD_ZERO ] @@ -7341,11 +7417,11 @@ Target platform is c64basic / MOS6502X .const OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a .const OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 .const OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 - .label printf_cursor_x = $4d - .label printf_cursor_y = $4e - .label printf_cursor_ptr = $4f + .label printf_cursor_x = $51 + .label printf_cursor_y = $52 + .label printf_cursor_ptr = $53 // The number of found solutions - .label count = $11 + .label count = $35 // @begin __bbegin: jmp __b1 @@ -7381,12 +7457,8 @@ __bend_from___b2: __bend: // main main: { - .label tod_TENTHS = $59 - .label tod_SEC = $5a - .label tod_MIN = $5b - .label tod_HOURS = $5c // [8] call printf_cls - // [365] phi from main to printf_cls [phi:main->printf_cls] + // [367] phi from main to printf_cls [phi:main->printf_cls] printf_cls_from_main: jsr printf_cls // [9] phi from main to main::@1 [phi:main->main::@1] @@ -7395,9 +7467,9 @@ main: { // main::@1 __b1: // [10] call printf_str - // [46] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [44] phi from main::@1 to printf_str [phi:main::@1->printf_str] printf_str_from___b1: - // [46] phi (byte*) printf_str::str#13 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 lda #str @@ -7409,9 +7481,9 @@ main: { // main::@2 __b2: // [12] call printf_str - // [46] phi from main::@2 to printf_str [phi:main::@2->printf_str] + // [44] phi from main::@2 to printf_str [phi:main::@2->printf_str] printf_str_from___b2: - // [46] phi (byte*) printf_str::str#13 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 lda #str1 @@ -7423,7 +7495,7 @@ main: { // main::@3 __b3: // [14] call printf_uint - // [331] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] + // [333] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] printf_uint_from___b3: jsr printf_uint jmp __b4 @@ -7449,7 +7521,7 @@ main: { // main::@5 __b5: // [21] call queens - // [128] phi from main::@5 to queens [phi:main::@5->queens] + // [230] phi from main::@5 to queens [phi:main::@5->queens] queens_from___b5: jsr queens // [22] phi from main::@5 to main::@6 [phi:main::@5->main::@6] @@ -7474,90 +7546,103 @@ main: { jmp __b7 // main::@7 __b7: - // [28] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 -- vbuz1=vbuz2 + // [28] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 -- vbuz1=vbuz2 lda.z tod_read.return_TENTHS_1 - sta.z tod_TENTHS - // [29] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 -- vbuz1=vbuz2 - lda.z tod_read.return_SEC_1 - sta.z tod_SEC - // [30] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 -- vbuz1=vbuz2 - lda.z tod_read.return_MIN_1 - sta.z tod_MIN - // [31] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuz1=vbuz2 - lda.z tod_read.return_HOURS_1 - sta.z tod_HOURS - // [32] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 -- vbuz1=vbuz2 - lda.z tod_TENTHS sta.z tod_str.tod_TENTHS - // [33] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 -- vbuz1=vbuz2 - lda.z tod_SEC + // [29] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 -- vbuz1=vbuz2 + lda.z tod_read.return_SEC_1 sta.z tod_str.tod_SEC - // [34] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 -- vbuz1=vbuz2 - lda.z tod_MIN + // [30] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 -- vbuz1=vbuz2 + lda.z tod_read.return_MIN_1 sta.z tod_str.tod_MIN - // [35] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 -- vbuz1=vbuz2 - lda.z tod_HOURS + // [31] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuz1=vbuz2 + lda.z tod_read.return_HOURS_1 sta.z tod_str.tod_HOURS - // [36] call tod_str + // [32] call tod_str jsr tod_str - // [37] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [33] phi from main::@7 to main::@8 [phi:main::@7->main::@8] __b8_from___b7: jmp __b8 // main::@8 __b8: - // [38] call printf_str - // [46] phi from main::@8 to printf_str [phi:main::@8->printf_str] + // [34] call printf_str + // [44] phi from main::@8 to printf_str [phi:main::@8->printf_str] printf_str_from___b8: - // [46] phi (byte*) printf_str::str#13 = (const byte*) main::str2 [phi:main::@8->printf_str#0] -- pbuz1=pbuc1 + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str2 [phi:main::@8->printf_str#0] -- pbuz1=pbuc1 lda #str2 sta.z printf_str.str+1 jsr printf_str - // [39] phi from main::@8 to main::@9 [phi:main::@8->main::@9] - __b9_from___b8: jmp __b9 // main::@9 __b9: + // [35] (dword) printf_ulong::uvalue#0 ← (dword) count#10 -- vduz1=vduz2 + lda.z count + sta.z printf_ulong.uvalue + lda.z count+1 + sta.z printf_ulong.uvalue+1 + lda.z count+2 + sta.z printf_ulong.uvalue+2 + lda.z count+3 + sta.z printf_ulong.uvalue+3 + // [36] call printf_ulong + // [100] phi from main::@9 to printf_ulong [phi:main::@9->printf_ulong] + printf_ulong_from___b9: + // [100] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#0 [phi:main::@9->printf_ulong#0] -- register_copy + jsr printf_ulong + // [37] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + __b10_from___b9: + jmp __b10 + // main::@10 + __b10: + // [38] call printf_str + // [44] phi from main::@10 to printf_str [phi:main::@10->printf_str] + printf_str_from___b10: + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str3 [phi:main::@10->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + // [39] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + __b11_from___b10: + jmp __b11 + // main::@11 + __b11: // [40] call printf_string - // [42] phi from main::@9 to printf_string [phi:main::@9->printf_string] - printf_string_from___b9: + // [96] phi from main::@11 to printf_string [phi:main::@11->printf_string] + printf_string_from___b11: jsr printf_string + // [41] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + __b12_from___b11: + jmp __b12 + // main::@12 + __b12: + // [42] call printf_str + // [44] phi from main::@12 to printf_str [phi:main::@12->printf_str] + printf_str_from___b12: + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str4 [phi:main::@12->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str jmp __breturn // main::@return __breturn: - // [41] return + // [43] return rts str: .text " - n queens problem using backtracking -" .byte 0 str1: .text @"\nnumber of queens:" .byte 0 - str2: .text @"\ntime: " + str2: .text @"\nsolutions: " + .byte 0 + str3: .text " time: " + .byte 0 + str4: .text @".\n" .byte 0 -} - // printf_string -// Print a string value using a specific format -// Handles justification and min length -printf_string: { - // [43] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] - __b1_from_printf_string: - jmp __b1 - // printf_string::@1 - __b1: - // [44] call printf_str - // [46] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] - printf_str_from___b1: - // [46] phi (byte*) printf_str::str#13 = (const byte*) tod_buffer [phi:printf_string::@1->printf_str#0] -- pbuz1=pbuc1 - lda #tod_buffer - sta.z printf_str.str+1 - jsr printf_str - jmp __breturn - // printf_string::@return - __breturn: - // [45] return - rts } // printf_str // Print a zero-terminated string @@ -7566,59 +7651,59 @@ printf_string: { printf_str: { .label ch = $61 .label str = 2 - // [47] 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] + // [45] 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___b4: __b1_from___b5: - // [47] phi (byte*) printf_str::str#11 = (byte*) printf_str::str#13 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy + // [45] phi (byte*) printf_str::str#13 = (byte*) printf_str::str#15 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy jmp __b1 // printf_str::@1 __b1: jmp __b2 // printf_str::@2 __b2: - // [48] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#11) -- vbuz1=_deref_pbuz2 + // [46] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) -- vbuz1=_deref_pbuz2 ldy #0 lda (str),y sta.z ch - // [49] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#11 -- pbuz1=_inc_pbuz1 + // [47] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [50] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuz1_neq_0_then_la1 + // [48] 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: - // [51] return + // [49] return rts // printf_str::@3 __b3: - // [52] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuz1_eq_vbuc1_then_la1 + // [50] 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: - // [53] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 -- vbuz1=vbuz2 + // [51] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 -- vbuz1=vbuz2 lda.z ch sta.z printf_char.ch - // [54] call printf_char - // [89] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + // [52] call printf_char + // [87] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] printf_char_from___b5: - // [89] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#1 [phi:printf_str::@5->printf_char#0] -- register_copy + // [87] 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 - // [55] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + // [53] 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: - // [56] call printf_ln + // [54] call printf_ln jsr printf_ln jmp __b1_from___b4 } @@ -7627,7 +7712,7 @@ printf_str: { printf_ln: { .label __0 = $62 .label __1 = $64 - // [57] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz2_minus_vbuz3 + // [55] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz2_minus_vbuz3 sec lda.z printf_cursor_ptr sbc.z printf_cursor_x @@ -7635,7 +7720,7 @@ printf_ln: { lda.z printf_cursor_ptr+1 sbc #0 sta.z __0+1 - // [58] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz2_plus_vbuc1 + // [56] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z __0 @@ -7643,58 +7728,58 @@ printf_ln: { lda #0 adc.z __0+1 sta.z __1+1 - // [59] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 -- pbuz1=pbuz2 + // [57] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 -- pbuz1=pbuz2 lda.z __1 sta.z printf_cursor_ptr lda.z __1+1 sta.z printf_cursor_ptr+1 - // [60] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [58] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [61] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [59] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y - // [62] call printf_scroll + // [60] call printf_scroll jsr printf_scroll jmp __breturn // printf_ln::@return __breturn: - // [63] return + // [61] return rts } // printf_scroll // Scroll the entire screen if the cursor is on the last line printf_scroll: { .label __4 = $66 - // [64] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 + // [62] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z printf_cursor_y bne __breturn - // [65] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] + // [63] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] __b1_from_printf_scroll: jmp __b1 // printf_scroll::@1 __b1: - // [66] call memcpy - // [82] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] + // [64] call memcpy + // [80] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] memcpy_from___b1: jsr memcpy - // [67] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] + // [65] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] __b2_from___b1: jmp __b2 // printf_scroll::@2 __b2: - // [68] call memset - // [73] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] + // [66] call memset + // [71] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] memset_from___b2: - // [73] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuz1=vbuc1 + // [71] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuz1=vbuc1 lda #' ' sta.z memset.c - // [73] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 + // [71] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 lda #<$400+$28*$19-$28 sta.z memset.str lda #>$400+$28*$19-$28 sta.z memset.str+1 - // [73] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 + // [71] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 lda #<$28 sta.z memset.num lda #>$28 @@ -7703,7 +7788,7 @@ printf_scroll: { jmp __b3 // printf_scroll::@3 __b3: - // [69] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz2_minus_vwuc1 + // [67] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz2_minus_vwuc1 lda.z printf_cursor_ptr sec sbc #<$28 @@ -7711,17 +7796,17 @@ printf_scroll: { lda.z printf_cursor_ptr+1 sbc #>$28 sta.z __4+1 - // [70] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 -- pbuz1=pbuz2 + // [68] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 -- pbuz1=pbuz2 lda.z __4 sta.z printf_cursor_ptr lda.z __4+1 sta.z printf_cursor_ptr+1 - // [71] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 + // [69] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 dec.z printf_cursor_y jmp __breturn // printf_scroll::@return __breturn: - // [72] return + // [70] return rts } // memset @@ -7733,7 +7818,7 @@ memset: { .label num = 4 .label str = 6 .label c = 8 - // [74] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 + // [72] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -7742,7 +7827,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [75] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz3 + // [73] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz3 lda.z str clc adc.z num @@ -7750,19 +7835,19 @@ memset: { lda.z str+1 adc.z num+1 sta.z end+1 - // [76] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 -- pbuz1=pbuz2 + // [74] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 -- pbuz1=pbuz2 lda.z str sta.z dst lda.z str+1 sta.z dst+1 - // [77] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [75] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: - // [77] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [75] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: - // [78] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [76] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -7772,15 +7857,15 @@ memset: { jmp __breturn // memset::@return __breturn: - // [79] return + // [77] return rts // memset::@3 __b3: - // [80] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuz2 + // [78] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuz2 lda.z c ldy #0 sta (dst),y - // [81] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + // [79] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -7797,14 +7882,14 @@ memcpy: { .label src_end = source+num .label dst = $d .label src = $b - // [83] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] + // [81] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] __b1_from_memcpy: - // [83] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 + // [81] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 lda #destination sta.z dst+1 - // [83] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 + // [81] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 lda #source @@ -7812,7 +7897,7 @@ memcpy: { jmp __b1 // memcpy::@1 __b1: - // [84] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 + // [82] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z src+1 cmp #>src_end bne __b2 @@ -7822,29 +7907,29 @@ memcpy: { jmp __breturn // memcpy::@return __breturn: - // [85] return + // [83] return rts // memcpy::@2 __b2: - // [86] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 + // [84] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y ldy #0 sta (dst),y - // [87] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 + // [85] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [88] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 + // [86] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [83] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] + // [81] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] __b1_from___b2: - // [83] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy - // [83] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy + // [81] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy + // [81] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy jmp __b1 } // printf_char @@ -7853,604 +7938,153 @@ memcpy: { // printf_char(byte zp($f) ch) printf_char: { .label ch = $f - // [90] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuz2 + // [88] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuz2 lda.z ch ldy #0 sta (printf_cursor_ptr),y - // [91] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 + // [89] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 inc.z printf_cursor_ptr bne !+ inc.z printf_cursor_ptr+1 !: - // [92] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 + // [90] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 inc.z printf_cursor_x - // [93] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 + // [91] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z printf_cursor_x bne __breturn jmp __b1 // printf_char::@1 __b1: - // [94] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [92] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [95] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [93] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y - // [96] call printf_scroll + // [94] call printf_scroll jsr printf_scroll jmp __breturn // printf_char::@return __breturn: - // [97] return + // [95] return rts } - // tod_str -// Convert time of day to a human-readable string "hh:mm:ss:10" -// tod_str(byte zp($5d) tod_TENTHS, byte zp($5e) tod_SEC, byte zp($5f) tod_MIN, byte zp($60) tod_HOURS) -tod_str: { - .label __0 = $6a - .label __1 = $6b - .label __2 = $6c - .label __3 = $6d - .label __4 = $6e - .label __5 = $6f - .label __6 = $70 - .label __7 = $71 - .label __8 = $72 - .label __9 = $73 - .label __10 = $74 - .label __11 = $75 - .label __12 = $76 - .label __13 = $77 - .label __14 = $78 - .label __15 = $79 - .label tod_TENTHS = $5d - .label tod_SEC = $5e - .label tod_MIN = $5f - .label tod_HOURS = $60 - // [98] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 - lda.z tod_HOURS - lsr - lsr - lsr - lsr - sta.z __0 - // [99] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuz1=vbuc1_plus_vbuz2 - lax.z __0 - axs #-['0'] - stx.z __1 - // [100] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuz1 - lda.z __1 - sta tod_buffer - // [101] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 - lda #$f - and.z tod_HOURS - sta.z __2 - // [102] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuz1=vbuc1_plus_vbuz2 - lax.z __2 - axs #-['0'] - stx.z __3 - // [103] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuz1 - lda.z __3 - sta tod_buffer+1 - // [104] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 - lda.z tod_MIN - lsr - lsr - lsr - lsr - sta.z __4 - // [105] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuz1=vbuc1_plus_vbuz2 - lax.z __4 - axs #-['0'] - stx.z __5 - // [106] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuz1 - lda.z __5 - sta tod_buffer+3 - // [107] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 - lda #$f - and.z tod_MIN - sta.z __6 - // [108] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuz1=vbuc1_plus_vbuz2 - lax.z __6 - axs #-['0'] - stx.z __7 - // [109] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuz1 - lda.z __7 - sta tod_buffer+4 - // [110] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 - lda.z tod_SEC - lsr - lsr - lsr - lsr - sta.z __8 - // [111] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuz1=vbuc1_plus_vbuz2 - lax.z __8 - axs #-['0'] - stx.z __9 - // [112] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuz1 - lda.z __9 - sta tod_buffer+6 - // [113] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 - lda #$f - and.z tod_SEC - sta.z __10 - // [114] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuz1=vbuc1_plus_vbuz2 - lax.z __10 - axs #-['0'] - stx.z __11 - // [115] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuz1 - lda.z __11 - sta tod_buffer+7 - // [116] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 - lda.z tod_TENTHS - lsr - lsr - lsr - lsr - sta.z __12 - // [117] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuz1=vbuc1_plus_vbuz2 - lax.z __12 - axs #-['0'] - stx.z __13 - // [118] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuz1 - lda.z __13 - sta tod_buffer+9 - // [119] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 - lda #$f - and.z tod_TENTHS - sta.z __14 - // [120] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuz1=vbuc1_plus_vbuz2 - lax.z __14 - axs #-['0'] - stx.z __15 - // [121] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuz1 - lda.z __15 - sta tod_buffer+$a - jmp __breturn - // tod_str::@return - __breturn: - // [122] return - rts -} - // tod_read -// Read time of day -tod_read: { - .label return_TENTHS = $7d - .label return_SEC = $7c - .label return_MIN = $7b - .label return_HOURS = $7a - .label return_TENTHS_1 = $55 - .label return_SEC_1 = $56 - .label return_MIN_1 = $57 - .label return_HOURS_1 = $58 - // [123] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 - // Reading sequence is important. TOD latches on reading hours until 10ths is read. - lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS - sta.z return_HOURS - // [124] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuz1=_deref_pbuc1 - lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - sta.z return_MIN - // [125] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuz1=_deref_pbuc1 - lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - sta.z return_SEC - // [126] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuz1=_deref_pbuc1 - lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS - sta.z return_TENTHS - jmp __breturn - // tod_read::@return - __breturn: - // [127] return - rts -} - // queens -// Generates all valid placements of queens on a NxN board without recursion -// Works exactly like the recursive solution by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below -// and then moving on to generating all legal placements on the rows above. -// In practice this works like a depth first tree search where the level in the tree is the row on the board and each branch in the tree is the legal placement of a queen on that row. -// The solution uses the board itself as a "cursor" moving through all possibilities -// When all columns on a row is exhausted move back down to the lower level and move forward one position until we are done with the last position on the first row -queens: { - .label __2 = $81 - // The current row where the queen is moving - .label row = $10 - // [129] phi from queens to queens::@1 [phi:queens->queens::@1] - __b1_from_queens: - // [129] phi (dword) count#14 = (dword) 0 [phi:queens->queens::@1#0] -- vduz1=vduc1 - lda #<0 - sta.z count - lda #>0 - sta.z count+1 - lda #<0>>$10 - sta.z count+2 - lda #>0>>$10 - sta.z count+3 - // [129] phi (byte) queens::row#10 = (byte) 1 [phi:queens->queens::@1#1] -- vbuz1=vbuc1 - lda #1 - sta.z row + // printf_string +// Print a string value using a specific format +// Handles justification and min length +printf_string: { + // [97] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + __b1_from_printf_string: jmp __b1 - // [129] phi from queens::@4 queens::@7 queens::@8 queens::@9 to queens::@1 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1] - __b1_from___b4: - __b1_from___b7: - __b1_from___b8: - __b1_from___b9: - // [129] phi (dword) count#14 = (dword) count#22 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#0] -- register_copy - // [129] phi (byte) queens::row#10 = (byte) queens::row#10 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#1] -- register_copy - jmp __b1 - // queens::@1 + // printf_string::@1 __b1: - jmp __b2 - // queens::@2 - __b2: - // [130] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z row - inc board,x - // [131] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 -- pbuc1_derefidx_vbuz1_eq_vbuc2_then_la1 - ldy.z row - lda board,y - cmp #8+1 - beq __b3 - jmp __b5 - // queens::@5 - __b5: - // [132] (byte) legal::row#0 ← (byte) queens::row#10 -- vbuz1=vbuz2 - lda.z row - sta.z legal.row - // [133] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z row - lda board,y - sta.z legal.column - // [134] call legal - // [306] phi from queens::@5 to legal [phi:queens::@5->legal] - legal_from___b5: - jsr legal - // [135] (byte) legal::return#0 ← (byte) legal::return#4 -- vbuz1=vbuz2 - lda.z legal.return_1 - sta.z legal.return - jmp __b9 - // queens::@9 - __b9: - // [136] (byte~) queens::$2 ← (byte) legal::return#0 -- vbuz1=vbuz2 - lda.z legal.return - sta.z __2 - // [137] if((byte) 0==(byte~) queens::$2) goto queens::@1 -- vbuc1_eq_vbuz1_then_la1 - lda #0 - cmp.z __2 - beq __b1_from___b9 - jmp __b6 - // queens::@6 - __b6: - // [138] if((byte) queens::row#10==(byte) 8) goto queens::@4 -- vbuz1_eq_vbuc1_then_la1 - // position is legal - move up to the next row - lda #8 - cmp.z row - beq __b4 - jmp __b7 - // queens::@7 - __b7: - // [139] (byte) queens::row#1 ← ++ (byte) queens::row#10 -- vbuz1=_inc_vbuz1 - inc.z row - jmp __b1_from___b7 - // queens::@4 - __b4: - // [140] (dword) count#22 ← ++ (dword) count#14 -- vduz1=_inc_vduz1 - inc.z count - bne !+ - inc.z count+1 - bne !+ - inc.z count+2 - bne !+ - inc.z count+3 - !: - // [141] call print - // [146] phi from queens::@4 to print [phi:queens::@4->print] - print_from___b4: - jsr print - jmp __b1_from___b4 - // queens::@3 - __b3: - // [142] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 -- pbuc1_derefidx_vbuz1=vbuc2 - // We moved past the end of the row - reset position and go down to the lower row - lda #0 - ldy.z row - sta board,y - // [143] if((byte) queens::row#10==(byte) 1) goto queens::@return -- vbuz1_eq_vbuc1_then_la1 - lda #1 - cmp.z row - beq __breturn - jmp __b8 - // queens::@8 - __b8: - // [144] (byte) queens::row#2 ← -- (byte) queens::row#10 -- vbuz1=_dec_vbuz1 - dec.z row - jmp __b1_from___b8 - // queens::@return - __breturn: - // [145] return - rts -} - // print -// Print the board with a legal placement. -print: { - .label i = $15 - .label i1 = $16 - .label j = $17 - // [147] call printf_str - // [46] phi from print to printf_str [phi:print->printf_str] - printf_str_from_print: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 - lda #printf_str] + printf_str_from___b1: + // [44] phi (byte*) printf_str::str#15 = (const byte*) tod_buffer [phi:printf_string::@1->printf_str#0] -- pbuz1=pbuc1 + lda #str + lda #>tod_buffer sta.z printf_str.str+1 jsr printf_str - jmp __b11 - // print::@11 - __b11: - // [148] (dword) printf_ulong::uvalue#0 ← (dword) count#22 -- vduz1=vduz2 - lda.z count - sta.z printf_ulong.uvalue - lda.z count+1 - sta.z printf_ulong.uvalue+1 - lda.z count+2 - sta.z printf_ulong.uvalue+2 - lda.z count+3 - sta.z printf_ulong.uvalue+3 - // [149] call printf_ulong - // [271] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] - printf_ulong_from___b11: - jsr printf_ulong - // [150] phi from print::@11 to print::@12 [phi:print::@11->print::@12] - __b12_from___b11: - jmp __b12 - // print::@12 - __b12: - // [151] call printf_str - // [46] phi from print::@12 to printf_str [phi:print::@12->printf_str] - printf_str_from___b12: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 - lda #str1 - sta.z printf_str.str+1 - jsr printf_str - // [152] phi from print::@12 to print::@1 [phi:print::@12->print::@1] - __b1_from___b12: - // [152] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z i - jmp __b1 - // print::@1 - __b1: - // [153] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z i - cmp #8+1 - bcc __b2 - // [154] phi from print::@1 to print::@3 [phi:print::@1->print::@3] - __b3_from___b1: - // [154] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 - lda #1 - sta.z i1 - jmp __b3 - // print::@3 - __b3: - // [155] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 - lda.z i1 - cmp #8+1 - bcc __b4_from___b3 jmp __breturn - // print::@return + // printf_string::@return __breturn: - // [156] return + // [99] return rts - // [157] phi from print::@3 to print::@4 [phi:print::@3->print::@4] - __b4_from___b3: - jmp __b4 - // print::@4 - __b4: - // [158] call printf_str - // [46] phi from print::@4 to printf_str [phi:print::@4->printf_str] - printf_str_from___b4: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 - lda #str2 - sta.z printf_str.str+1 - jsr printf_str - jmp __b14 - // print::@14 - __b14: - // [159] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 -- vbuz1=vbuz2 - lda.z i1 - sta.z printf_uchar.uvalue - // [160] call printf_uchar - // [173] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] - printf_uchar_from___b14: - // [173] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy - jsr printf_uchar - // [161] phi from print::@14 to print::@5 [phi:print::@14->print::@5] - __b5_from___b14: - // [161] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 - lda #1 - sta.z j - jmp __b5 - // print::@5 - __b5: - // [162] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 - lda.z j - cmp #8+1 - bcc __b6 - jmp __b7 - // print::@7 - __b7: - // [163] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 - inc.z i1 - // [154] phi from print::@7 to print::@3 [phi:print::@7->print::@3] - __b3_from___b7: - // [154] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy - jmp __b3 - // print::@6 - __b6: - // [164] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 - ldy.z i1 - lda board,y - cmp.z j - beq __b8_from___b6 - // [165] phi from print::@6 to print::@10 [phi:print::@6->print::@10] - __b10_from___b6: - jmp __b10 - // print::@10 - __b10: - // [166] call printf_str - // [46] phi from print::@10 to printf_str [phi:print::@10->printf_str] - printf_str_from___b10: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 - lda #str4 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@9 - __b9: - // [167] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 - inc.z j - // [161] phi from print::@9 to print::@5 [phi:print::@9->print::@5] - __b5_from___b9: - // [161] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy - jmp __b5 - // [168] phi from print::@6 to print::@8 [phi:print::@6->print::@8] - __b8_from___b6: - jmp __b8 - // print::@8 - __b8: - // [169] call printf_str - // [46] phi from print::@8 to printf_str [phi:print::@8->printf_str] - printf_str_from___b8: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 - lda #str3 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@2 - __b2: - // [170] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 -- vbuz1=vbuz2 - lda.z i - sta.z printf_uchar.uvalue - // [171] call printf_uchar - // [173] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] - printf_uchar_from___b2: - // [173] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy - jsr printf_uchar - jmp __b13 - // print::@13 - __b13: - // [172] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [152] phi from print::@13 to print::@1 [phi:print::@13->print::@1] - __b1_from___b13: - // [152] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy - jmp __b1 - str: .text @"\n#" - .byte 0 - str1: .text @":\n " - .byte 0 - str2: .text @"\n" - .byte 0 - str3: .text "Q" - .byte 0 - str4: .text "-" - .byte 0 } - // printf_uchar -// Print an unsigned char using a specific format -// printf_uchar(byte zp($18) uvalue) -printf_uchar: { - .label uvalue = $18 + // printf_ulong +// Print an unsigned int using a specific format +// printf_ulong(dword zp($10) uvalue) +printf_ulong: { + .label uvalue = $10 jmp __b1 - // printf_uchar::@1 + // printf_ulong::@1 __b1: - // [174] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [101] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [175] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 -- vbuz1=vbuz2 + // [102] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 -- vduz1=vduz2 lda.z uvalue - sta.z uctoa.value - // [176] call uctoa + sta.z ultoa.value + lda.z uvalue+1 + sta.z ultoa.value+1 + lda.z uvalue+2 + sta.z ultoa.value+2 + lda.z uvalue+3 + sta.z ultoa.value+3 + // [103] call ultoa // Format number into buffer - // [245] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] - uctoa_from___b1: - jsr uctoa + // [172] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] + ultoa_from___b1: + jsr ultoa jmp __b2 - // printf_uchar::@2 + // printf_ulong::@2 __b2: - // [177] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + // [104] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [178] call printf_number_buffer + // [105] call printf_number_buffer // Print using format - // [180] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] + // [107] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] printf_number_buffer_from___b2: - // [180] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_upper_case - // [180] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy - // [180] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + // [107] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy + // [107] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z printf_number_buffer.buffer_digits+1 - // [180] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_zero_padding - // [180] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_justify_left - // [180] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_min_length jsr printf_number_buffer jmp __breturn - // printf_uchar::@return + // printf_ulong::@return __breturn: - // [179] return + // [106] return rts } // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($1e) buffer_sign, byte* zp($1c) buffer_digits, byte zp($19) format_min_length, byte zp($1a) format_justify_left, byte zp($1b) format_zero_padding, byte zp($1f) format_upper_case) +// printf_number_buffer(byte zp($19) buffer_sign, byte* zp($17) buffer_digits, byte zp($14) format_min_length, byte zp($15) format_justify_left, byte zp($16) format_zero_padding, byte zp($1a) format_upper_case) printf_number_buffer: { - .label __19 = $88 - .label buffer_sign = $1e - .label len = $20 - .label padding = $21 - .label format_min_length = $19 - .label format_zero_padding = $1b - .label format_justify_left = $1a - .label buffer_digits = $1c - .label format_upper_case = $1f - // [181] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuz1_then_la1 + .label __19 = $6c + .label buffer_sign = $19 + .label len = $1b + .label padding = $1c + .label format_min_length = $14 + .label format_zero_padding = $16 + .label format_justify_left = $15 + .label buffer_digits = $17 + .label format_upper_case = $1a + // [108] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_min_length beq __b1_from_printf_number_buffer jmp __b6 // printf_number_buffer::@6 __b6: - // [182] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + // [109] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 lda.z buffer_digits sta.z strlen.str lda.z buffer_digits+1 sta.z strlen.str+1 - // [183] call strlen - // [239] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + // [110] call strlen + // [166] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] strlen_from___b6: jsr strlen - // [184] (word) strlen::return#2 ← (word) strlen::len#2 -- vwuz1=vwuz2 + // [111] (word) strlen::return#2 ← (word) strlen::len#2 -- vwuz1=vwuz2 lda.z strlen.len sta.z strlen.return lda.z strlen.len+1 @@ -8458,268 +8092,268 @@ printf_number_buffer: { jmp __b14 // printf_number_buffer::@14 __b14: - // [185] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 -- vwuz1=vwuz2 + // [112] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 -- vwuz1=vwuz2 lda.z strlen.return sta.z __19 lda.z strlen.return+1 sta.z __19+1 - // [186] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsz1=_sbyte_vwuz2 + // [113] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsz1=_sbyte_vwuz2 // There is a minimum length - work out the padding lda.z __19 sta.z len - // [187] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 + // [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z buffer_sign beq __b13_from___b14 jmp __b7 // printf_number_buffer::@7 __b7: - // [188] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsz1=_inc_vbsz1 + // [115] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsz1=_inc_vbsz1 inc.z len - // [189] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + // [116] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] __b13_from___b14: __b13_from___b7: - // [189] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + // [116] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy jmp __b13 // printf_number_buffer::@13 __b13: - // [190] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsz2_minus_vbsz3 + // [117] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsz2_minus_vbsz3 lda.z format_min_length sec sbc.z len sta.z padding - // [191] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + // [118] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 lda.z padding cmp #0 bpl __b21_from___b13 - // [193] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + // [120] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] __b1_from_printf_number_buffer: __b1_from___b13: - // [193] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + // [120] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 lda #0 sta.z padding jmp __b1 - // [192] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + // [119] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] __b21_from___b13: jmp __b21 // printf_number_buffer::@21 __b21: - // [193] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + // [120] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] __b1_from___b21: - // [193] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + // [120] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy jmp __b1 // printf_number_buffer::@1 __b1: - // [194] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + // [121] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z format_justify_left bne __b2 jmp __b17 // printf_number_buffer::@17 __b17: - // [195] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + // [122] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z format_zero_padding bne __b2 jmp __b16 // printf_number_buffer::@16 __b16: - // [196] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 + // [123] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 lda #0 cmp.z padding bne __b8 jmp __b2 // printf_number_buffer::@8 __b8: - // [197] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [124] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [198] call printf_padding - // [217] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + // [125] call printf_padding + // [144] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] printf_padding_from___b8: - // [217] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 + // [144] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [217] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy + // [144] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy jsr printf_padding jmp __b2 // printf_number_buffer::@2 __b2: - // [199] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 + // [126] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z buffer_sign beq __b3 jmp __b9 // printf_number_buffer::@9 __b9: - // [200] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuz1=vbuz2 + // [127] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuz1=vbuz2 lda.z buffer_sign sta.z printf_char.ch - // [201] call printf_char - // [89] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] + // [128] call printf_char + // [87] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] printf_char_from___b9: - // [89] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy + // [87] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy jsr printf_char jmp __b3 // printf_number_buffer::@3 __b3: - // [202] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 + // [129] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_zero_padding beq __b4 jmp __b18 // printf_number_buffer::@18 __b18: - // [203] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 + // [130] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 lda #0 cmp.z padding bne __b10 jmp __b4 // printf_number_buffer::@10 __b10: - // [204] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [131] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [205] call printf_padding - // [217] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + // [132] call printf_padding + // [144] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] printf_padding_from___b10: - // [217] phi (byte) printf_padding::pad#7 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 + // [144] phi (byte) printf_padding::pad#7 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 lda #'0' sta.z printf_padding.pad - // [217] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy + // [144] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy jsr printf_padding jmp __b4 // printf_number_buffer::@4 __b4: - // [206] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 + // [133] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_upper_case beq __b5 jmp __b11 // printf_number_buffer::@11 __b11: - // [207] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + // [134] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 lda.z buffer_digits sta.z strupr.str lda.z buffer_digits+1 sta.z strupr.str+1 - // [208] call strupr - // [224] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + // [135] call strupr + // [151] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] strupr_from___b11: jsr strupr jmp __b5 // printf_number_buffer::@5 __b5: - // [209] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + // [136] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 lda.z buffer_digits sta.z printf_str.str lda.z buffer_digits+1 sta.z printf_str.str+1 - // [210] call printf_str - // [46] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + // [137] call printf_str + // [44] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] printf_str_from___b5: - // [46] phi (byte*) printf_str::str#13 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + // [44] phi (byte*) printf_str::str#15 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy jsr printf_str jmp __b15 // printf_number_buffer::@15 __b15: - // [211] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 + // [138] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_justify_left beq __breturn jmp __b20 // printf_number_buffer::@20 __b20: - // [212] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 + // [139] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z format_zero_padding bne __breturn jmp __b19 // printf_number_buffer::@19 __b19: - // [213] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 + // [140] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 lda #0 cmp.z padding bne __b12 jmp __breturn // printf_number_buffer::@12 __b12: - // [214] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [141] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [215] call printf_padding - // [217] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + // [142] call printf_padding + // [144] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] printf_padding_from___b12: - // [217] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 + // [144] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [217] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy + // [144] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy jsr printf_padding jmp __breturn // printf_number_buffer::@return __breturn: - // [216] return + // [143] return rts } // printf_padding // Print a padding char a number of times -// printf_padding(byte zp($23) pad, byte zp($22) length) +// printf_padding(byte zp($1e) pad, byte zp($1d) length) printf_padding: { - .label i = $24 - .label length = $22 - .label pad = $23 - // [218] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + .label i = $1f + .label length = $1d + .label pad = $1e + // [145] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] __b1_from_printf_padding: - // [218] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + // [145] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i jmp __b1 // printf_padding::@1 __b1: - // [219] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 + // [146] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 lda.z i cmp.z length bcc __b2 jmp __breturn // printf_padding::@return __breturn: - // [220] return + // [147] return rts // printf_padding::@2 __b2: - // [221] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 -- vbuz1=vbuz2 + // [148] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 -- vbuz1=vbuz2 lda.z pad sta.z printf_char.ch - // [222] call printf_char - // [89] phi from printf_padding::@2 to printf_char [phi:printf_padding::@2->printf_char] + // [149] call printf_char + // [87] phi from printf_padding::@2 to printf_char [phi:printf_padding::@2->printf_char] printf_char_from___b2: - // [89] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy + // [87] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy jsr printf_char jmp __b3 // printf_padding::@3 __b3: - // [223] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 + // [150] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 inc.z i - // [218] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] + // [145] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] __b1_from___b3: - // [218] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + // [145] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy jmp __b1 } // strupr // Converts a string to uppercase. -// strupr(byte* zp($25) str) +// strupr(byte* zp($20) str) strupr: { - .label __0 = $8b - .label src = $25 - .label str = $25 - // [225] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] + .label __0 = $6f + .label src = $20 + .label str = $20 + // [152] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] __b1_from_strupr: __b1_from___b3: - // [225] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy + // [152] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy jmp __b1 // strupr::@1 __b1: - // [226] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [153] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 @@ -8727,30 +8361,30 @@ strupr: { jmp __breturn // strupr::@return __breturn: - // [227] return + // [154] return rts // strupr::@2 __b2: - // [228] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuz1=_deref_pbuz2 + // [155] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuz1=_deref_pbuz2 ldy #0 lda (src),y sta.z toupper.ch - // [229] call toupper + // [156] call toupper jsr toupper - // [230] (byte) toupper::return#3 ← (byte) toupper::return#2 -- vbuz1=vbuz2 + // [157] (byte) toupper::return#3 ← (byte) toupper::return#2 -- vbuz1=vbuz2 lda.z toupper.return sta.z toupper.return_1 jmp __b3 // strupr::@3 __b3: - // [231] (byte~) strupr::$0 ← (byte) toupper::return#3 -- vbuz1=vbuz2 + // [158] (byte~) strupr::$0 ← (byte) toupper::return#3 -- vbuz1=vbuz2 lda.z toupper.return_1 sta.z __0 - // [232] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuz2 + // [159] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuz2 lda.z __0 ldy #0 sta (src),y - // [233] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 + // [160] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 @@ -8760,59 +8394,59 @@ strupr: { // toupper // Convert lowercase alphabet to uppercase // Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte zp($27) ch) +// toupper(byte zp($22) ch) toupper: { - .label return = $27 - .label ch = $27 - .label return_1 = $8a - // [234] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuz1_lt_vbuc1_then_la1 + .label return = $22 + .label ch = $22 + .label return_1 = $6e + // [161] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuz1_lt_vbuc1_then_la1 lda.z ch cmp #'a' bcc __breturn_from_toupper jmp __b2 // toupper::@2 __b2: - // [235] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuz1_le_vbuc1_then_la1 + // [162] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuz1_le_vbuc1_then_la1 lda #'z' cmp.z ch bcs __b1 - // [237] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [164] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] __breturn_from_toupper: __breturn_from___b1: __breturn_from___b2: - // [237] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [164] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy jmp __breturn // toupper::@1 __b1: - // [236] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuz1=vbuz1_plus_vbuc1 + // [163] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuz1=vbuz1_plus_vbuc1 lax.z return axs #-['A'-'a'] stx.z return jmp __breturn_from___b1 // toupper::@return __breturn: - // [238] return + // [165] return rts } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($28) str) +// strlen(byte* zp($23) str) strlen: { - .label len = $2a - .label str = $28 - .label return = $86 - // [240] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + .label len = $25 + .label str = $23 + .label return = $6a + // [167] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] __b1_from_strlen: - // [240] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [167] 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 - // [240] phi (byte*) strlen::str#3 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // [167] phi (byte*) strlen::str#3 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy jmp __b1 // strlen::@1 __b1: - // [241] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [168] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -8820,281 +8454,25 @@ strlen: { jmp __breturn // strlen::@return __breturn: - // [242] return + // [169] return rts // strlen::@2 __b2: - // [243] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + // [170] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: - // [244] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 -- pbuz1=_inc_pbuz1 + // [171] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [240] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [167] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] __b1_from___b2: - // [240] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [240] phi (byte*) strlen::str#3 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [167] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [167] phi (byte*) strlen::str#3 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 -} - // uctoa -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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($2d) value, byte* zp($8c) buffer) -uctoa: { - .label digit_value = $8e - .label buffer = $8c - .label digit = $2c - .label value = $2d - .label buffer_1 = $2f - .label started = $2e - // [246] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - __b1_from_uctoa: - // [246] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer_1+1 - // [246] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [246] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy - // [246] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // uctoa::@1 - __b1: - // [247] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #2-1 - bcc __b2 - jmp __b3 - // uctoa::@3 - __b3: - // [248] *((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 - // [249] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz2 - lda.z buffer_1 - clc - adc #1 - sta.z buffer - lda.z buffer_1+1 - adc #0 - sta.z buffer+1 - // [250] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // uctoa::@return - __breturn: - // [251] return - rts - // uctoa::@2 - __b2: - // [252] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z digit - lda RADIX_HEXADECIMAL_VALUES_CHAR,y - sta.z digit_value - // [253] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - jmp __b7 - // uctoa::@7 - __b7: - // [254] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuz1_ge_vbuz2_then_la1 - lda.z value - cmp.z digit_value - bcs __b5 - // [255] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] - __b4_from___b7: - // [255] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy - // [255] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy - // [255] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy - jmp __b4 - // uctoa::@4 - __b4: - // [256] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [246] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] - __b1_from___b4: - // [246] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy - // [246] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy - // [246] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy - // [246] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy - jmp __b1 - // uctoa::@5 - __b5: - // [257] (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 - // [258] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 -- vbuz1=vbuz2 - lda.z value - sta.z uctoa_append.value - // [259] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuz2 - lda.z digit_value - sta.z uctoa_append.sub - // [260] call uctoa_append - // [264] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] - uctoa_append_from___b5: - jsr uctoa_append - // [261] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 -- vbuz1=vbuz2 - lda.z uctoa_append.value - sta.z uctoa_append.return - jmp __b6 - // uctoa::@6 - __b6: - // [262] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 -- vbuz1=vbuz2 - lda.z uctoa_append.return - sta.z value - // [263] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer_1 - bne !+ - inc.z buffer_1+1 - !: - // [255] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] - __b4_from___b6: - // [255] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy - // [255] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [255] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy - jmp __b4 -} - // uctoa_append -// Used to convert a single digit of an unsigned number value to a string representation -// Counts a single digit up from '0' as long as the value is larger than sub. -// Each time the digit is increased sub is subtracted from value. -// - buffer : pointer to the char that receives the digit -// - value : The value where the digit will be derived from -// - 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($8f) buffer, byte zp($31) value, byte zp($91) sub) -uctoa_append: { - .label buffer = $8f - .label value = $31 - .label sub = $91 - .label return = $92 - .label digit = $32 - // [265] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - __b1_from_uctoa_append: - // [265] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z digit - // [265] 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: - // [266] 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: - // [267] *((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 - sta (buffer),y - jmp __breturn - // uctoa_append::@return - __breturn: - // [268] return - rts - // uctoa_append::@2 - __b2: - // [269] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [270] (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 - // [265] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - __b1_from___b2: - // [265] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [265] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_ulong -// Print an unsigned int using a specific format -// printf_ulong(dword zp($82) uvalue) -printf_ulong: { - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = $82 - jmp __b1 - // printf_ulong::@1 - __b1: - // [272] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [273] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 -- vduz1=vduz2 - lda.z uvalue - sta.z ultoa.value - lda.z uvalue+1 - sta.z ultoa.value+1 - lda.z uvalue+2 - sta.z ultoa.value+2 - lda.z uvalue+3 - sta.z ultoa.value+3 - // [274] call ultoa - // Format number into buffer - // [278] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] - ultoa_from___b1: - jsr ultoa - jmp __b2 - // printf_ulong::@2 - __b2: - // [275] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [276] call printf_number_buffer - // Print using format - // [180] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [180] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_ulong::format_upper_case#0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [180] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy - // [180] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [180] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_ulong::format_zero_padding#0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [180] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_ulong::format_justify_left#0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [180] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_ulong::format_min_length#0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuz1=vbuc1 - lda #format_min_length - sta.z printf_number_buffer.format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_ulong::@return - __breturn: - // [277] return - rts } // ultoa // Converts unsigned number value to a string representing it in RADIX format. @@ -9102,50 +8480,49 @@ printf_ulong: { // - 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) -// ultoa(dword zp($34) value, byte* zp($94) buffer) +// ultoa(dword zp($28) value, byte* zp($71) buffer) ultoa: { - .const max_digits = $a - .label __10 = $96 - .label __11 = $93 - .label digit_value = $97 - .label buffer = $94 - .label digit = $33 - .label value = $34 - .label buffer_1 = $39 - .label started = $38 - // [279] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] + .label __10 = $73 + .label __11 = $70 + .label digit_value = $74 + .label buffer = $71 + .label digit = $27 + .label value = $28 + .label buffer_1 = $2d + .label started = $2c + // [173] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] __b1_from_ultoa: - // [279] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 + // [173] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer_1+1 - // [279] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuz1=vbuc1 + // [173] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuz1=vbuc1 lda #0 sta.z started - // [279] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy - // [279] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 + // [173] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy + // [173] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // ultoa::@1 __b1: - // [280] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 + // [174] if((byte) ultoa::digit#2<(byte) $a-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z digit - cmp #max_digits-1 + cmp #$a-1 bcc __b2 jmp __b3 // ultoa::@3 __b3: - // [281] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuz1=_byte_vduz2 + // [175] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuz1=_byte_vduz2 lda.z value sta.z __11 - // [282] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [176] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z __11 lda DIGITS,y ldy #0 sta (buffer_1),y - // [283] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz2 + // [177] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz2 lda.z buffer_1 clc adc #1 @@ -9153,23 +8530,23 @@ ultoa: { lda.z buffer_1+1 adc #0 sta.z buffer+1 - // [284] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [178] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // ultoa::@return __breturn: - // [285] return + // [179] return rts // ultoa::@2 __b2: - // [286] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 + // [180] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 lda.z digit asl asl sta.z __10 - // [287] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuz2 + // [181] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuz2 ldy.z __10 lda RADIX_DECIMAL_VALUES_LONG,y sta.z digit_value @@ -9179,14 +8556,14 @@ ultoa: { sta.z digit_value+2 lda RADIX_DECIMAL_VALUES_LONG+3,y sta.z digit_value+3 - // [288] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuz1_then_la1 + // [182] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z started bne __b5 jmp __b7 // ultoa::@7 __b7: - // [289] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 + // [183] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z digit_value+3 bcc !+ @@ -9203,31 +8580,31 @@ ultoa: { cmp.z digit_value bcs __b5 !: - // [290] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] + // [184] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] __b4_from___b7: - // [290] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [290] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [290] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy + // [184] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy + // [184] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy + // [184] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy jmp __b4 // ultoa::@4 __b4: - // [291] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 + // [185] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [279] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] + // [173] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] __b1_from___b4: - // [279] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [279] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [279] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [279] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy + // [173] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy + // [173] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy + // [173] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy + // [173] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy jmp __b1 // ultoa::@5 __b5: - // [292] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 -- pbuz1=pbuz2 + // [186] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 -- pbuz1=pbuz2 lda.z buffer_1 sta.z ultoa_append.buffer lda.z buffer_1+1 sta.z ultoa_append.buffer+1 - // [293] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 -- vduz1=vduz2 + // [187] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 -- vduz1=vduz2 lda.z value sta.z ultoa_append.value lda.z value+1 @@ -9236,7 +8613,7 @@ ultoa: { sta.z ultoa_append.value+2 lda.z value+3 sta.z ultoa_append.value+3 - // [294] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 -- vduz1=vduz2 + // [188] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 -- vduz1=vduz2 lda.z digit_value sta.z ultoa_append.sub lda.z digit_value+1 @@ -9245,11 +8622,11 @@ ultoa: { sta.z ultoa_append.sub+2 lda.z digit_value+3 sta.z ultoa_append.sub+3 - // [295] call ultoa_append - // [299] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] + // [189] call ultoa_append + // [193] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] ultoa_append_from___b5: jsr ultoa_append - // [296] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 -- vduz1=vduz2 + // [190] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 -- vduz1=vduz2 lda.z ultoa_append.value sta.z ultoa_append.return lda.z ultoa_append.value+1 @@ -9261,7 +8638,7 @@ ultoa: { jmp __b6 // ultoa::@6 __b6: - // [297] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 -- vduz1=vduz2 + // [191] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 -- vduz1=vduz2 lda.z ultoa_append.return sta.z value lda.z ultoa_append.return+1 @@ -9270,18 +8647,18 @@ ultoa: { sta.z value+2 lda.z ultoa_append.return+3 sta.z value+3 - // [298] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [192] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer_1 bne !+ inc.z buffer_1+1 !: - // [290] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] + // [184] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] __b4_from___b6: - // [290] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [290] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuz1=vbuc1 + // [184] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy + // [184] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuz1=vbuc1 lda #1 sta.z started - // [290] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy + // [184] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy jmp __b4 } // ultoa_append @@ -9293,23 +8670,23 @@ ultoa: { // - 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. -// ultoa_append(byte* zp($9b) buffer, dword zp($3b) value, dword zp($9d) sub) +// ultoa_append(byte* zp($78) buffer, dword zp($2f) value, dword zp($7a) sub) ultoa_append: { - .label buffer = $9b - .label value = $3b - .label sub = $9d - .label return = $a1 - .label digit = $3f - // [300] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] + .label buffer = $78 + .label value = $2f + .label sub = $7a + .label return = $7e + .label digit = $33 + // [194] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] __b1_from_ultoa_append: - // [300] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuz1=vbuc1 + // [194] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuz1=vbuc1 lda #0 sta.z digit - // [300] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy + // [194] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy jmp __b1 // ultoa_append::@1 __b1: - // [301] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 + // [195] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z sub+3 bcc !+ @@ -9329,7 +8706,7 @@ ultoa_append: { jmp __b3 // ultoa_append::@3 __b3: - // [302] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [196] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z digit lda DIGITS,y ldy #0 @@ -9337,13 +8714,13 @@ ultoa_append: { jmp __breturn // ultoa_append::@return __breturn: - // [303] return + // [197] return rts // ultoa_append::@2 __b2: - // [304] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuz1=_inc_vbuz1 + // [198] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [305] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 + // [199] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 lda.z value sec sbc.z sub @@ -9357,69 +8734,797 @@ ultoa_append: { lda.z value+3 sbc.z sub+3 sta.z value+3 - // [300] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] + // [194] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] __b1_from___b2: - // [300] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [300] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + // [194] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy + // [194] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + jmp __b1 +} + // tod_str +// Convert time of day to a human-readable string "hh:mm:ss:10" +// tod_str(byte zp($5d) tod_TENTHS, byte zp($5e) tod_SEC, byte zp($5f) tod_MIN, byte zp($60) tod_HOURS) +tod_str: { + .label __0 = $82 + .label __1 = $83 + .label __2 = $84 + .label __3 = $85 + .label __4 = $86 + .label __5 = $87 + .label __6 = $88 + .label __7 = $89 + .label __8 = $8a + .label __9 = $8b + .label __10 = $8c + .label __11 = $8d + .label __12 = $8e + .label __13 = $8f + .label __14 = $90 + .label __15 = $91 + .label tod_TENTHS = $5d + .label tod_SEC = $5e + .label tod_MIN = $5f + .label tod_HOURS = $60 + // [200] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_HOURS + lsr + lsr + lsr + lsr + sta.z __0 + // [201] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __0 + axs #-['0'] + stx.z __1 + // [202] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuz1 + lda.z __1 + sta tod_buffer + // [203] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and.z tod_HOURS + sta.z __2 + // [204] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __2 + axs #-['0'] + stx.z __3 + // [205] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuz1 + lda.z __3 + sta tod_buffer+1 + // [206] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_MIN + lsr + lsr + lsr + lsr + sta.z __4 + // [207] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __4 + axs #-['0'] + stx.z __5 + // [208] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuz1 + lda.z __5 + sta tod_buffer+3 + // [209] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and.z tod_MIN + sta.z __6 + // [210] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __6 + axs #-['0'] + stx.z __7 + // [211] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuz1 + lda.z __7 + sta tod_buffer+4 + // [212] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_SEC + lsr + lsr + lsr + lsr + sta.z __8 + // [213] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __8 + axs #-['0'] + stx.z __9 + // [214] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuz1 + lda.z __9 + sta tod_buffer+6 + // [215] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and.z tod_SEC + sta.z __10 + // [216] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __10 + axs #-['0'] + stx.z __11 + // [217] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuz1 + lda.z __11 + sta tod_buffer+7 + // [218] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + lda.z tod_TENTHS + lsr + lsr + lsr + lsr + sta.z __12 + // [219] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __12 + axs #-['0'] + stx.z __13 + // [220] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuz1 + lda.z __13 + sta tod_buffer+9 + // [221] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and.z tod_TENTHS + sta.z __14 + // [222] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuz1=vbuc1_plus_vbuz2 + lax.z __14 + axs #-['0'] + stx.z __15 + // [223] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuz1 + lda.z __15 + sta tod_buffer+$a + jmp __breturn + // tod_str::@return + __breturn: + // [224] return + rts +} + // tod_read +// Read time of day +tod_read: { + .label return_TENTHS = $95 + .label return_SEC = $94 + .label return_MIN = $93 + .label return_HOURS = $92 + .label return_TENTHS_1 = $59 + .label return_SEC_1 = $5a + .label return_MIN_1 = $5b + .label return_HOURS_1 = $5c + // [225] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // Reading sequence is important. TOD latches on reading hours until 10ths is read. + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + sta.z return_HOURS + // [226] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + sta.z return_MIN + // [227] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + sta.z return_SEC + // [228] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuz1=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + sta.z return_TENTHS + jmp __breturn + // tod_read::@return + __breturn: + // [229] return + rts +} + // queens +// Generates all valid placements of queens on a NxN board without recursion +// Works exactly like the recursive solution by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below +// and then moving on to generating all legal placements on the rows above. +// In practice this works like a depth first tree search where the level in the tree is the row on the board and each branch in the tree is the legal placement of a queen on that row. +// The solution uses the board itself as a "cursor" moving through all possibilities +// When all columns on a row is exhausted move back down to the lower level and move forward one position until we are done with the last position on the first row +queens: { + .label __2 = $99 + // The current row where the queen is moving + .label row = $34 + // [231] phi from queens to queens::@1 [phi:queens->queens::@1] + __b1_from_queens: + // [231] phi (dword) count#10 = (dword) 0 [phi:queens->queens::@1#0] -- vduz1=vduc1 + lda #<0 + sta.z count + lda #>0 + sta.z count+1 + lda #<0>>$10 + sta.z count+2 + lda #>0>>$10 + sta.z count+3 + // [231] phi (byte) queens::row#10 = (byte) 1 [phi:queens->queens::@1#1] -- vbuz1=vbuc1 + lda #1 + sta.z row + jmp __b1 + // [231] phi from queens::@4 queens::@7 queens::@8 queens::@9 to queens::@1 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1] + __b1_from___b4: + __b1_from___b7: + __b1_from___b8: + __b1_from___b9: + // [231] phi (dword) count#10 = (dword) count#25 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#0] -- register_copy + // [231] phi (byte) queens::row#10 = (byte) queens::row#10 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#1] -- register_copy + jmp __b1 + // queens::@1 + __b1: + jmp __b2 + // queens::@2 + __b2: + // [232] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 + ldx.z row + inc board,x + // [233] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 -- pbuc1_derefidx_vbuz1_eq_vbuc2_then_la1 + ldy.z row + lda board,y + cmp #8+1 + beq __b3 + jmp __b5 + // queens::@5 + __b5: + // [234] (byte) legal::row#0 ← (byte) queens::row#10 -- vbuz1=vbuz2 + lda.z row + sta.z legal.row + // [235] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy.z row + lda board,y + sta.z legal.column + // [236] call legal + // [308] phi from queens::@5 to legal [phi:queens::@5->legal] + legal_from___b5: + jsr legal + // [237] (byte) legal::return#0 ← (byte) legal::return#4 -- vbuz1=vbuz2 + lda.z legal.return_1 + sta.z legal.return + jmp __b9 + // queens::@9 + __b9: + // [238] (byte~) queens::$2 ← (byte) legal::return#0 -- vbuz1=vbuz2 + lda.z legal.return + sta.z __2 + // [239] if((byte) 0==(byte~) queens::$2) goto queens::@1 -- vbuc1_eq_vbuz1_then_la1 + lda #0 + cmp.z __2 + beq __b1_from___b9 + jmp __b6 + // queens::@6 + __b6: + // [240] if((byte) queens::row#10==(byte) 8) goto queens::@4 -- vbuz1_eq_vbuc1_then_la1 + // position is legal - move up to the next row + lda #8 + cmp.z row + beq __b4 + jmp __b7 + // queens::@7 + __b7: + // [241] (byte) queens::row#1 ← ++ (byte) queens::row#10 -- vbuz1=_inc_vbuz1 + inc.z row + jmp __b1_from___b7 + // queens::@4 + __b4: + // [242] (dword) count#25 ← ++ (dword) count#10 -- vduz1=_inc_vduz1 + inc.z count + bne !+ + inc.z count+1 + bne !+ + inc.z count+2 + bne !+ + inc.z count+3 + !: + // [243] call print + // [248] phi from queens::@4 to print [phi:queens::@4->print] + print_from___b4: + jsr print + jmp __b1_from___b4 + // queens::@3 + __b3: + // [244] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + // We moved past the end of the row - reset position and go down to the lower row + lda #0 + ldy.z row + sta board,y + // [245] if((byte) queens::row#10==(byte) 1) goto queens::@return -- vbuz1_eq_vbuc1_then_la1 + lda #1 + cmp.z row + beq __breturn + jmp __b8 + // queens::@8 + __b8: + // [246] (byte) queens::row#2 ← -- (byte) queens::row#10 -- vbuz1=_dec_vbuz1 + dec.z row + jmp __b1_from___b8 + // queens::@return + __breturn: + // [247] return + rts +} + // print +// Print the board with a legal placement. +print: { + .label i = $39 + .label i1 = $3a + .label j = $3b + // [249] call printf_str + // [44] phi from print to printf_str [phi:print->printf_str] + printf_str_from_print: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 + lda #str + sta.z printf_str.str+1 + jsr printf_str + jmp __b11 + // print::@11 + __b11: + // [250] (dword) printf_ulong::uvalue#1 ← (dword) count#25 -- vduz1=vduz2 + lda.z count + sta.z printf_ulong.uvalue + lda.z count+1 + sta.z printf_ulong.uvalue+1 + lda.z count+2 + sta.z printf_ulong.uvalue+2 + lda.z count+3 + sta.z printf_ulong.uvalue+3 + // [251] call printf_ulong + // [100] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] + printf_ulong_from___b11: + // [100] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#1 [phi:print::@11->printf_ulong#0] -- register_copy + jsr printf_ulong + // [252] phi from print::@11 to print::@12 [phi:print::@11->print::@12] + __b12_from___b11: + jmp __b12 + // print::@12 + __b12: + // [253] call printf_str + // [44] phi from print::@12 to printf_str [phi:print::@12->printf_str] + printf_str_from___b12: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 + lda #str1 + sta.z printf_str.str+1 + jsr printf_str + // [254] phi from print::@12 to print::@1 [phi:print::@12->print::@1] + __b1_from___b12: + // [254] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 + lda #1 + sta.z i + jmp __b1 + // print::@1 + __b1: + // [255] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z i + cmp #8+1 + bcc __b2 + // [256] phi from print::@1 to print::@3 [phi:print::@1->print::@3] + __b3_from___b1: + // [256] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 + lda #1 + sta.z i1 + jmp __b3 + // print::@3 + __b3: + // [257] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 + lda.z i1 + cmp #8+1 + bcc __b4_from___b3 + jmp __breturn + // print::@return + __breturn: + // [258] return + rts + // [259] phi from print::@3 to print::@4 [phi:print::@3->print::@4] + __b4_from___b3: + jmp __b4 + // print::@4 + __b4: + // [260] call printf_str + // [44] phi from print::@4 to printf_str [phi:print::@4->printf_str] + printf_str_from___b4: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + jmp __b14 + // print::@14 + __b14: + // [261] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 -- vbuz1=vbuz2 + lda.z i1 + sta.z printf_uchar.uvalue + // [262] call printf_uchar + // [275] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] + printf_uchar_from___b14: + // [275] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy + jsr printf_uchar + // [263] phi from print::@14 to print::@5 [phi:print::@14->print::@5] + __b5_from___b14: + // [263] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 + lda #1 + sta.z j + jmp __b5 + // print::@5 + __b5: + // [264] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 + lda.z j + cmp #8+1 + bcc __b6 + jmp __b7 + // print::@7 + __b7: + // [265] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 + inc.z i1 + // [256] phi from print::@7 to print::@3 [phi:print::@7->print::@3] + __b3_from___b7: + // [256] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy + jmp __b3 + // print::@6 + __b6: + // [266] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + ldy.z i1 + lda board,y + cmp.z j + beq __b8_from___b6 + // [267] phi from print::@6 to print::@10 [phi:print::@6->print::@10] + __b10_from___b6: + jmp __b10 + // print::@10 + __b10: + // [268] call printf_str + // [44] phi from print::@10 to printf_str [phi:print::@10->printf_str] + printf_str_from___b10: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@9 + __b9: + // [269] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 + inc.z j + // [263] phi from print::@9 to print::@5 [phi:print::@9->print::@5] + __b5_from___b9: + // [263] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy + jmp __b5 + // [270] phi from print::@6 to print::@8 [phi:print::@6->print::@8] + __b8_from___b6: + jmp __b8 + // print::@8 + __b8: + // [271] call printf_str + // [44] phi from print::@8 to printf_str [phi:print::@8->printf_str] + printf_str_from___b8: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@2 + __b2: + // [272] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 -- vbuz1=vbuz2 + lda.z i + sta.z printf_uchar.uvalue + // [273] call printf_uchar + // [275] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] + printf_uchar_from___b2: + // [275] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy + jsr printf_uchar + jmp __b13 + // print::@13 + __b13: + // [274] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 + inc.z i + // [254] phi from print::@13 to print::@1 [phi:print::@13->print::@1] + __b1_from___b13: + // [254] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy + jmp __b1 + str: .text @"\n#" + .byte 0 + str1: .text @":\n " + .byte 0 + str2: .text @"\n" + .byte 0 + str3: .text "Q" + .byte 0 + str4: .text "-" + .byte 0 +} + // printf_uchar +// Print an unsigned char using a specific format +// printf_uchar(byte zp($3c) uvalue) +printf_uchar: { + .label uvalue = $3c + jmp __b1 + // printf_uchar::@1 + __b1: + // [276] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // [277] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 -- vbuz1=vbuz2 + lda.z uvalue + sta.z uctoa.value + // [278] call uctoa + // Format number into buffer + // [282] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] + uctoa_from___b1: + jsr uctoa + jmp __b2 + // printf_uchar::@2 + __b2: + // [279] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // [280] call printf_number_buffer + // Print using format + // [107] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] + printf_number_buffer_from___b2: + // [107] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_upper_case + // [107] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy + // [107] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [107] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + // [107] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_justify_left + // [107] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_min_length + jsr printf_number_buffer + jmp __breturn + // printf_uchar::@return + __breturn: + // [281] return + rts +} + // uctoa +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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($3e) value, byte* zp($9a) buffer) +uctoa: { + .label digit_value = $9c + .label buffer = $9a + .label digit = $3d + .label value = $3e + .label buffer_1 = $40 + .label started = $3f + // [283] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] + __b1_from_uctoa: + // [283] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z buffer_1+1 + // [283] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 + lda #0 + sta.z started + // [283] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy + // [283] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 + lda #0 + sta.z digit + jmp __b1 + // uctoa::@1 + __b1: + // [284] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z digit + cmp #2-1 + bcc __b2 + jmp __b3 + // uctoa::@3 + __b3: + // [285] *((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 + // [286] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz2 + lda.z buffer_1 + clc + adc #1 + sta.z buffer + lda.z buffer_1+1 + adc #0 + sta.z buffer+1 + // [287] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + lda #0 + ldy #0 + sta (buffer),y + jmp __breturn + // uctoa::@return + __breturn: + // [288] return + rts + // uctoa::@2 + __b2: + // [289] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy.z digit + lda RADIX_HEXADECIMAL_VALUES_CHAR,y + sta.z digit_value + // [290] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z started + bne __b5 + jmp __b7 + // uctoa::@7 + __b7: + // [291] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuz1_ge_vbuz2_then_la1 + lda.z value + cmp.z digit_value + bcs __b5 + // [292] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] + __b4_from___b7: + // [292] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy + // [292] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy + // [292] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy + jmp __b4 + // uctoa::@4 + __b4: + // [293] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [283] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] + __b1_from___b4: + // [283] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy + // [283] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy + // [283] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy + // [283] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy + jmp __b1 + // uctoa::@5 + __b5: + // [294] (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 + // [295] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 -- vbuz1=vbuz2 + lda.z value + sta.z uctoa_append.value + // [296] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuz2 + lda.z digit_value + sta.z uctoa_append.sub + // [297] call uctoa_append + // [301] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] + uctoa_append_from___b5: + jsr uctoa_append + // [298] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 -- vbuz1=vbuz2 + lda.z uctoa_append.value + sta.z uctoa_append.return + jmp __b6 + // uctoa::@6 + __b6: + // [299] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 -- vbuz1=vbuz2 + lda.z uctoa_append.return + sta.z value + // [300] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer_1 + bne !+ + inc.z buffer_1+1 + !: + // [292] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] + __b4_from___b6: + // [292] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy + // [292] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 + lda #1 + sta.z started + // [292] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy + jmp __b4 +} + // uctoa_append +// Used to convert a single digit of an unsigned number value to a string representation +// Counts a single digit up from '0' as long as the value is larger than sub. +// Each time the digit is increased sub is subtracted from value. +// - buffer : pointer to the char that receives the digit +// - value : The value where the digit will be derived from +// - 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($9d) buffer, byte zp($42) value, byte zp($9f) sub) +uctoa_append: { + .label buffer = $9d + .label value = $42 + .label sub = $9f + .label return = $a0 + .label digit = $43 + // [302] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] + __b1_from_uctoa_append: + // [302] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 + lda #0 + sta.z digit + // [302] 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: + // [303] 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: + // [304] *((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 + sta (buffer),y + jmp __breturn + // uctoa_append::@return + __breturn: + // [305] return + rts + // uctoa_append::@2 + __b2: + // [306] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [307] (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 + // [302] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] + __b1_from___b2: + // [302] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy + // [302] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy jmp __b1 } // legal // Checks is a placement of the queen on the board is legal. // Checks the passed (row, column) against all queens placed on the board on lower rows. // If no conflict for desired position returns 1 otherwise returns 0 -// legal(byte zp($7e) row, byte zp($7f) column) +// legal(byte zp($96) row, byte zp($97) column) legal: { - .label __0 = $a5 - .label row = $7e - .label column = $7f + .label __0 = $a1 + .label row = $96 + .label column = $97 // Placement is legal // The same column is a conflict. // The same diagonal is a conflict. - .label return = $80 - .label diff1_a = $a6 - .label diff1_return = $42 - .label diff2_return = $43 + .label return = $98 + .label diff1_a = $a2 + .label diff1_return = $46 + .label diff2_return = $47 // Placement is legal // The same column is a conflict. // The same diagonal is a conflict. - .label return_1 = $41 - .label i = $40 - // [307] phi from legal to legal::@1 [phi:legal->legal::@1] + .label return_1 = $45 + .label i = $44 + // [309] phi from legal to legal::@1 [phi:legal->legal::@1] __b1_from_legal: - // [307] phi (byte) legal::i#10 = (byte) 1 [phi:legal->legal::@1#0] -- vbuz1=vbuc1 + // [309] phi (byte) legal::i#10 = (byte) 1 [phi:legal->legal::@1#0] -- vbuz1=vbuc1 lda #1 sta.z i jmp __b1 // legal::@1 __b1: - // [308] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuz1=vbuz2_minus_1 + // [310] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuz1=vbuz2_minus_1 ldx.z row dex stx.z __0 - // [309] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 -- vbuz1_le_vbuz2_then_la1 + // [311] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 -- vbuz1_le_vbuz2_then_la1 lda.z __0 cmp.z i bcs __b2 - // [310] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] + // [312] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] __breturn_from___b1: - // [310] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuz1=vbuc1 + // [312] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuz1=vbuc1 lda #1 sta.z return_1 jmp __breturn - // [310] phi from legal::@2 legal::@5 to legal::@return [phi:legal::@2/legal::@5->legal::@return] + // [312] phi from legal::@2 legal::@5 to legal::@return [phi:legal::@2/legal::@5->legal::@return] __breturn_from___b2: __breturn_from___b5: - // [310] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@5->legal::@return#0] -- vbuz1=vbuc1 + // [312] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@5->legal::@return#0] -- vbuz1=vbuc1 lda #0 sta.z return_1 jmp __breturn // legal::@return __breturn: - // [311] return + // [313] return rts // legal::@2 __b2: - // [312] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + // [314] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 ldy.z i lda board,y cmp.z column @@ -9427,73 +9532,73 @@ legal: { jmp __b4 // legal::@4 __b4: - // [313] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) -- vbuz1=pbuc1_derefidx_vbuz2 + // [315] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z i lda board,y sta.z diff1_a jmp diff1 // legal::diff1 diff1: - // [314] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 -- vbuz1_lt_vbuz2_then_la1 + // [316] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 -- vbuz1_lt_vbuz2_then_la1 lda.z diff1_a cmp.z column bcc diff1___b1 jmp diff1___b3 // legal::diff1_@3 diff1___b3: - // [315] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 -- vbuz1=vbuz2_minus_vbuz3 + // [317] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 -- vbuz1=vbuz2_minus_vbuz3 lda.z diff1_a sec sbc.z column sta.z diff1_return - // [316] phi from legal::diff1_@1 legal::diff1_@3 to legal::diff1_@return [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return] + // [318] phi from legal::diff1_@1 legal::diff1_@3 to legal::diff1_@return [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return] diff1___breturn_from_diff1___b1: diff1___breturn_from_diff1___b3: - // [316] phi (byte) legal::diff1_return#2 = (byte) legal::diff1_return#0 [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return#0] -- register_copy + // [318] phi (byte) legal::diff1_return#2 = (byte) legal::diff1_return#0 [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return#0] -- register_copy jmp diff1___breturn // legal::diff1_@return diff1___breturn: jmp diff2 // legal::diff2 diff2: - // [317] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 -- vbuz1_lt_vbuz2_then_la1 + // [319] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 -- vbuz1_lt_vbuz2_then_la1 lda.z i cmp.z row bcc diff2___b1 jmp diff2___b3 // legal::diff2_@3 diff2___b3: - // [318] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 -- vbuz1=vbuz2_minus_vbuz3 + // [320] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 -- vbuz1=vbuz2_minus_vbuz3 lda.z i sec sbc.z row sta.z diff2_return - // [319] phi from legal::diff2_@1 legal::diff2_@3 to legal::diff2_@return [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return] + // [321] phi from legal::diff2_@1 legal::diff2_@3 to legal::diff2_@return [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return] diff2___breturn_from_diff2___b1: diff2___breturn_from_diff2___b3: - // [319] phi (byte) legal::diff2_return#2 = (byte) legal::diff2_return#0 [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return#0] -- register_copy + // [321] phi (byte) legal::diff2_return#2 = (byte) legal::diff2_return#0 [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return#0] -- register_copy jmp diff2___breturn // legal::diff2_@return diff2___breturn: jmp __b5 // legal::@5 __b5: - // [320] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 -- vbuz1_neq_vbuz2_then_la1 + // [322] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 -- vbuz1_neq_vbuz2_then_la1 lda.z diff1_return cmp.z diff2_return bne __b3 jmp __breturn_from___b5 // legal::@3 __b3: - // [321] (byte) legal::i#1 ← ++ (byte) legal::i#10 -- vbuz1=_inc_vbuz1 + // [323] (byte) legal::i#1 ← ++ (byte) legal::i#10 -- vbuz1=_inc_vbuz1 inc.z i - // [307] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] + // [309] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] __b1_from___b3: - // [307] phi (byte) legal::i#10 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy + // [309] phi (byte) legal::i#10 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy jmp __b1 // legal::diff2_@1 diff2___b1: - // [322] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 -- vbuz1=vbuz2_minus_vbuz3 + // [324] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 -- vbuz1=vbuz2_minus_vbuz3 lda.z row sec sbc.z i @@ -9501,7 +9606,7 @@ legal: { jmp diff2___breturn_from_diff2___b1 // legal::diff1_@1 diff1___b1: - // [323] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 -- vbuz1=vbuz2_minus_vbuz3 + // [325] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 -- vbuz1=vbuz2_minus_vbuz3 lda.z column sec sbc.z diff1_a @@ -9511,40 +9616,40 @@ legal: { // tod_init // Initialize time-of-day clock // This uses the MOS6526 CIA#1 -// tod_init(byte zp($51) tod_TENTHS, byte zp($52) tod_SEC, byte zp($53) tod_MIN, byte zp($54) tod_HOURS) +// tod_init(byte zp($55) tod_TENTHS, byte zp($56) tod_SEC, byte zp($57) tod_MIN, byte zp($58) tod_HOURS) tod_init: { - .label tod_TENTHS = $51 - .label tod_SEC = $52 - .label tod_MIN = $53 - .label tod_HOURS = $54 - // [324] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 + .label tod_TENTHS = $55 + .label tod_SEC = $56 + .label tod_MIN = $57 + .label tod_HOURS = $58 + // [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 // Set 50hz (this assumes PAL!) (bit7=1) lda #$80 ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL - // [325] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 + // [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 // Writing TOD clock (bit7=0) lda #$7f and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuz1 + // [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuz1 // Reset TOD clock // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. lda.z tod_HOURS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS - // [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuz1 + // [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuz1 lda.z tod_MIN sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - // [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + // [330] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 lda.z tod_SEC sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - // [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + // [331] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 lda.z tod_TENTHS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS jmp __breturn // tod_init::@return __breturn: - // [330] return + // [332] return rts } // printf_uint @@ -9558,48 +9663,48 @@ printf_uint: { jmp __b1 // printf_uint::@1 __b1: - // [332] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [334] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [333] call utoa + // [335] call utoa // Format number into buffer - // [337] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [339] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] utoa_from___b1: jsr utoa jmp __b2 // printf_uint::@2 __b2: - // [334] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + // [336] (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 - // [335] call printf_number_buffer + // [337] call printf_number_buffer // Print using format - // [180] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + // [107] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] printf_number_buffer_from___b2: - // [180] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [180] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy - // [180] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + // [107] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy + // [107] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z printf_number_buffer.buffer_digits+1 - // [180] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [180] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [180] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuz1=vbuc1 lda #format_min_length sta.z printf_number_buffer.format_min_length jsr printf_number_buffer jmp __breturn // printf_uint::@return __breturn: - // [336] return + // [338] return rts } // utoa @@ -9608,54 +9713,54 @@ printf_uint: { // - 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($45) value, byte* zp($a8) buffer) +// utoa(word zp($49) value, byte* zp($a4) buffer) utoa: { .const max_digits = 5 - .label __10 = $aa - .label __11 = $a7 - .label digit_value = $ab - .label buffer = $a8 - .label digit = $44 - .label value = $45 - .label buffer_1 = $48 - .label started = $47 - // [338] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + .label __10 = $a6 + .label __11 = $a3 + .label digit_value = $a7 + .label buffer = $a4 + .label digit = $48 + .label value = $49 + .label buffer_1 = $4c + .label started = $4b + // [340] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b1_from_utoa: - // [338] 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 + // [340] 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 - // [338] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 + // [340] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 lda #0 sta.z started - // [338] phi (word) utoa::value#2 = (const word) printf_uint::uvalue#0 [phi:utoa->utoa::@1#2] -- vwuz1=vwuc1 + // [340] 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 - // [338] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 + // [340] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // utoa::@1 __b1: - // [339] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 + // [341] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z digit cmp #max_digits-1 bcc __b2 jmp __b3 // utoa::@3 __b3: - // [340] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuz1=_byte_vwuz2 + // [342] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuz1=_byte_vwuz2 lda.z value sta.z __11 - // [341] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [343] *((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 - // [342] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz2 + // [344] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz2 lda.z buffer_1 clc adc #1 @@ -9663,35 +9768,35 @@ utoa: { lda.z buffer_1+1 adc #0 sta.z buffer+1 - // [343] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [345] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // utoa::@return __breturn: - // [344] return + // [346] return rts // utoa::@2 __b2: - // [345] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [347] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z digit asl sta.z __10 - // [346] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuz2 + // [348] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy.z __10 lda RADIX_DECIMAL_VALUES,y sta.z digit_value lda RADIX_DECIMAL_VALUES+1,y sta.z digit_value+1 - // [347] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuz1_then_la1 + // [349] 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: - // [348] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 + // [350] 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 !+ @@ -9700,45 +9805,45 @@ utoa: { beq __b5 !: bcc __b5 - // [349] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] + // [351] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] __b4_from___b7: - // [349] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy - // [349] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy - // [349] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy + // [351] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy + // [351] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy + // [351] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy jmp __b4 // utoa::@4 __b4: - // [350] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 + // [352] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [338] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [340] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] __b1_from___b4: - // [338] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy - // [338] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy - // [338] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy - // [338] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy + // [340] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy + // [340] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy + // [340] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy + // [340] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy jmp __b1 // utoa::@5 __b5: - // [351] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 -- pbuz1=pbuz2 + // [353] (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 - // [352] (word) utoa_append::value#0 ← (word) utoa::value#2 -- vwuz1=vwuz2 + // [354] (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 - // [353] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 -- vwuz1=vwuz2 + // [355] (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 - // [354] call utoa_append - // [358] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] + // [356] call utoa_append + // [360] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] utoa_append_from___b5: jsr utoa_append - // [355] (word) utoa_append::return#0 ← (word) utoa_append::value#2 -- vwuz1=vwuz2 + // [357] (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 @@ -9746,23 +9851,23 @@ utoa: { jmp __b6 // utoa::@6 __b6: - // [356] (word) utoa::value#0 ← (word) utoa_append::return#0 -- vwuz1=vwuz2 + // [358] (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 - // [357] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [359] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer_1 bne !+ inc.z buffer_1+1 !: - // [349] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] + // [351] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] __b4_from___b6: - // [349] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy - // [349] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 + // [351] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy + // [351] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 lda #1 sta.z started - // [349] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy + // [351] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy jmp __b4 } // utoa_append @@ -9774,23 +9879,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($ad) buffer, word zp($4a) value, word zp($af) sub) +// utoa_append(byte* zp($a9) buffer, word zp($4e) value, word zp($ab) sub) utoa_append: { - .label buffer = $ad - .label value = $4a - .label sub = $af - .label return = $b1 - .label digit = $4c - // [359] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + .label buffer = $a9 + .label value = $4e + .label sub = $ab + .label return = $ad + .label digit = $50 + // [361] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] __b1_from_utoa_append: - // [359] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 + // [361] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 lda #0 sta.z digit - // [359] phi (word) utoa_append::value#2 = (word) utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [361] 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: - // [360] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [362] 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 !+ @@ -9802,7 +9907,7 @@ utoa_append: { jmp __b3 // utoa_append::@3 __b3: - // [361] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [363] *((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 @@ -9810,13 +9915,13 @@ utoa_append: { jmp __breturn // utoa_append::@return __breturn: - // [362] return + // [364] return rts // utoa_append::@2 __b2: - // [363] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 + // [365] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [364] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [366] (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 @@ -9824,27 +9929,27 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [359] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [361] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] __b1_from___b2: - // [359] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [359] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [361] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [361] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // printf_cls // Clear the screen. Also resets current line/char cursor. printf_cls: { - // [366] call memset - // [73] phi from printf_cls to memset [phi:printf_cls->memset] + // [368] call memset + // [71] phi from printf_cls to memset [phi:printf_cls->memset] memset_from_printf_cls: - // [73] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 + // [71] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 lda #' ' sta.z memset.c - // [73] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 + // [71] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 lda #<$400 sta.z memset.str lda #>$400 sta.z memset.str+1 - // [73] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 + // [71] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 @@ -9853,21 +9958,21 @@ printf_cls: { jmp __b1 // printf_cls::@1 __b1: - // [367] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 + // [369] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z printf_cursor_ptr lda #>$400 sta.z printf_cursor_ptr+1 - // [368] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [370] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [369] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 + // [371] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_y jmp __breturn // printf_cls::@return __breturn: - // [370] return + // [372] return rts } // File Data @@ -9893,251 +9998,253 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] (byte) printf_cursor_x ← (byte) 0 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a Statement [2] (byte) printf_cursor_y ← (byte) 0 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a Statement [3] (byte*) printf_cursor_ptr ← (byte*) 1024 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a -Statement [48] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#11) [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] ( main:5::printf_str:10 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::printf_str:12 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::printf_str:38 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::printf_string:40::printf_str:44 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:147 [ queens::row#10 count#22 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:151 [ queens::row#10 count#22 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:158 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:166 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:169 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte a as potential for zp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 ] -Removing always clobbered register reg byte y as potential for zp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 ] -Removing always clobbered register reg byte a as potential for zp[1]:22 [ print::i1#2 print::i1#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:22 [ print::i1#2 print::i1#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:23 [ print::j#2 print::j#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:23 [ print::j#2 print::j#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:26 [ printf_number_buffer::format_justify_left#10 ] -Removing always clobbered register reg byte y as potential for zp[1]:26 [ printf_number_buffer::format_justify_left#10 ] -Removing always clobbered register reg byte a as potential for zp[1]:27 [ printf_number_buffer::format_zero_padding#10 ] -Removing always clobbered register reg byte y as potential for zp[1]:27 [ printf_number_buffer::format_zero_padding#10 ] -Removing always clobbered register reg byte a as potential for zp[1]:33 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:33 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:21 [ print::i#2 print::i#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:21 [ print::i#2 print::i#1 ] -Statement [57] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x [ printf_cursor_y printf_ln::$0 ] ( main:5::printf_str:10::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:12::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:38::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i1#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56 [ queens::row#10 count#22 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_cursor_y printf_ln::$0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56 [ TOD_ZERO 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_cursor_y printf_ln::$0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [58] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 [ printf_cursor_y printf_ln::$1 ] ( main:5::printf_str:10::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:12::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:38::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i1#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56 [ queens::row#10 count#22 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_cursor_y printf_ln::$1 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56 [ TOD_ZERO 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_cursor_y printf_ln::$1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [59] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:44::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i1#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56 [ queens::row#10 count#22 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_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56 [ TOD_ZERO 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_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [60] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:56 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:44::printf_ln:56 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [64] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:31 [ printf_number_buffer::format_upper_case#10 ] -Removing always clobbered register reg byte a as potential for zp[1]:30 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:34 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:35 [ printf_padding::pad#7 ] -Removing always clobbered register reg byte a as potential for zp[1]:36 [ printf_padding::i#2 printf_padding::i#1 ] -Statement [69] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 [ printf_cursor_y printf_scroll::$4 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [70] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [74] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a +Statement [35] (dword) printf_ulong::uvalue#0 ← (dword) count#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] ( main:5 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } } ) always clobbers reg byte a +Statement [46] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] ( main:5::printf_str:10 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_str:12 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_str:34 [ count#10 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_str:38 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_str:42 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_string:40::printf_str:98 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249 [ queens::row#10 printf_buffer count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::queens:21::print:243::printf_str:253 [ queens::row#10 printf_buffer count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::queens:21::print:243::printf_str:260 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::queens:21::print:243::printf_str:268 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::queens:21::print:243::printf_str:271 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte a as potential for zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] +Removing always clobbered register reg byte y as potential for zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] +Removing always clobbered register reg byte a as potential for zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] +Removing always clobbered register reg byte y as potential for zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] +Removing always clobbered register reg byte a as potential for zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 ] +Removing always clobbered register reg byte y as potential for zp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 ] +Removing always clobbered register reg byte a as potential for zp[1]:58 [ print::i1#2 print::i1#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:58 [ print::i1#2 print::i1#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:57 [ print::i#2 print::i#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:57 [ print::i#2 print::i#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:59 [ print::j#2 print::j#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:59 [ print::j#2 print::j#1 ] +Statement [55] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x [ printf_cursor_y printf_ln::$0 ] ( main:5::printf_str:10::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:12::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:34::printf_ln:54 [ count#10 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:38::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:42::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54 [ 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54 [ queens::row#10 count#25 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i1#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54 [ TOD_ZERO 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_cursor_y printf_ln::$0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } ) always clobbers reg byte a +Statement [56] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 [ printf_cursor_y printf_ln::$1 ] ( main:5::printf_str:10::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:12::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:34::printf_ln:54 [ count#10 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:38::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:42::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54 [ 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54 [ queens::row#10 count#25 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i1#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54 [ TOD_ZERO 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_cursor_y printf_ln::$1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } ) always clobbers reg byte a +Statement [57] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:34::printf_ln:54 [ count#10 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:42::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:98::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54 [ 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54 [ queens::row#10 count#25 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i1#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54 [ TOD_ZERO 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_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [58] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:34::printf_ln:54 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:42::printf_ln:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:98::printf_ln:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [62] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Removing always clobbered register reg byte a as potential for zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:30 [ printf_padding::pad#7 ] +Removing always clobbered register reg byte a as potential for zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] +Statement [67] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 [ printf_cursor_y printf_scroll::$4 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [68] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [72] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO 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]:8 [ memset::c#4 ] -Statement [75] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [76] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [78] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [80] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [73] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [74] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [76] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [78] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO 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]:8 [ memset::c#4 ] -Removing always clobbered register reg byte y as potential for zp[1]:31 [ printf_number_buffer::format_upper_case#10 ] -Removing always clobbered register reg byte y as potential for zp[1]:30 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:34 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Removing always clobbered register reg byte y as potential for zp[1]:35 [ printf_padding::pad#7 ] -Removing always clobbered register reg byte y as potential for zp[1]:36 [ printf_padding::i#2 printf_padding::i#1 ] -Statement [84] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [86] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a reg byte y -Statement [90] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte y -Statement [93] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [94] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [98] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a +Removing always clobbered register reg byte y as potential for zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Removing always clobbered register reg byte y as potential for zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Removing always clobbered register reg byte y as potential for zp[1]:30 [ printf_padding::pad#7 ] +Removing always clobbered register reg byte y as potential for zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] +Statement [82] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memcpy:64 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memcpy:64 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memcpy:64 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [84] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memcpy:64 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memcpy:64 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memcpy:64 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a reg byte y +Statement [88] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte y +Statement [91] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [92] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [101] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] ( main:5::printf_ulong:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [102] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] ( main:5::printf_ulong:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [109] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { 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:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { 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:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { 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]:20 [ printf_number_buffer::format_min_length#3 ] +Statement [111] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { 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:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { 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:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#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 [112] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [113] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [117] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [134] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [136] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [153] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strupr:135 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strupr:135 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::strupr:135 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y +Statement [155] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strupr:135 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strupr:135 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:14::printf_number_buffer:337::strupr:135 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y +Statement [159] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strupr:135 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strupr:135 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::strupr:135 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte y +Statement [163] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strupr:135::toupper:156 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strupr:135::toupper:156 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strupr:135::toupper:156 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strupr:135::toupper:156 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:14::printf_number_buffer:337::strupr:135::toupper:156 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a +Statement [168] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 [ strlen::len#2 strlen::str#3 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strlen:110 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { 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:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strlen:110 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { 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:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strlen:110 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strlen:110 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:14::printf_number_buffer:337::strlen:110 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { 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]:20 [ printf_number_buffer::format_min_length#3 ] +Statement [175] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [176] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [177] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [178] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [180] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:44 [ ultoa::started#2 ultoa::started#4 ] +Statement [181] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [183] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [186] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [187] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [188] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [190] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [191] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [195] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::printf_ulong:36::ultoa:103::ultoa_append:189 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103::ultoa_append:189 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] +Statement [196] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:5::printf_ulong:36::ultoa:103::ultoa_append:189 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103::ultoa_append:189 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] +Statement [199] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::printf_ulong:36::ultoa:103::ultoa_append:189 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103::ultoa_append:189 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [200] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:93 [ tod_str::tod_TENTHS#0 ] Removing always clobbered register reg byte a as potential for zp[1]:94 [ tod_str::tod_SEC#0 ] Removing always clobbered register reg byte a as potential for zp[1]:95 [ tod_str::tod_MIN#0 ] Removing always clobbered register reg byte a as potential for zp[1]:96 [ tod_str::tod_HOURS#0 ] -Statement [101] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [104] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [107] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [110] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [113] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [116] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [119] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::$14 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [131] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer ] ( main:5::queens:21 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer ] { } ) always clobbers reg byte a -Statement [142] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer ] ( main:5::queens:21 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer ] { } ) always clobbers reg byte a -Statement [148] (dword) printf_ulong::uvalue#0 ← (dword) count#22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#22 printf_ulong::uvalue#0 printf_buffer ] ( main:5::queens:21::print:141 [ queens::row#10 printf_cursor_x printf_cursor_y printf_cursor_ptr count#22 printf_ulong::uvalue#0 printf_buffer ] { { count#22 = printf_ulong::uvalue#0 } } ) always clobbers reg byte a -Statement [164] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#22 print::i1#2 print::j#2 printf_buffer ] ( main:5::queens:21::print:141 [ queens::row#10 printf_cursor_x printf_cursor_y printf_cursor_ptr count#22 print::i1#2 print::j#2 printf_buffer ] { } ) always clobbers reg byte a -Statement [174] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_uchar::uvalue#2 printf_buffer ] ( main:5::queens:21::print:141::printf_uchar:160 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_uchar::uvalue#2 printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:141::printf_uchar:171 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_uchar::uvalue#2 printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:24 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] -Statement [182] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { count#22 = printf_ulong::uvalue#0 } { 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:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { 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]:25 [ printf_number_buffer::format_min_length#3 ] -Statement [184] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { count#22 = printf_ulong::uvalue#0 } { 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:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#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 [185] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [186] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [190] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [207] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [209] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [226] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strupr:208 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::strupr:208 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y -Statement [228] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strupr:208 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:14::printf_number_buffer:335::strupr:208 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [232] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strupr:208 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::strupr:208 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte y -Statement [236] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strupr:208::toupper:229 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strupr:208::toupper:229 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strupr:208::toupper:229 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:14::printf_number_buffer:335::strupr:208::toupper:229 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a -Statement [241] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 [ strlen::len#2 strlen::str#3 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strlen:183 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strlen:183 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strlen:183 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { count#22 = printf_ulong::uvalue#0 } { 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:5::printf_uint:14::printf_number_buffer:335::strlen:183 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { 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]:25 [ printf_number_buffer::format_min_length#3 ] -Statement [248] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:141::printf_uchar:171::uctoa:176 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [249] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:141::printf_uchar:171::uctoa:176 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a -Statement [250] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:141::printf_uchar:171::uctoa:176 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [257] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:141::printf_uchar:171::uctoa:176 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:44 [ uctoa::digit#2 uctoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:45 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:142 [ uctoa::digit_value#0 ] -Statement [267] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176::uctoa_append:260 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:141::printf_uchar:171::uctoa:176::uctoa_append:260 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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::digit#2 uctoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:49 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Removing always clobbered register reg byte y as potential for zp[1]:49 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Statement [270] (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:5::queens:21::print:141::printf_uchar:160::uctoa:176::uctoa_append:260 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:141::printf_uchar:171::uctoa:176::uctoa_append:260 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:145 [ uctoa_append::sub#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:50 [ uctoa_append::digit#2 uctoa_append::digit#1 ] -Statement [272] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] ( main:5::queens:21::print:141::printf_ulong:149 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [273] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] ( main:5::queens:21::print:141::printf_ulong:149 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [281] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [282] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [283] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [284] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [286] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:51 [ ultoa::digit#2 ultoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:56 [ ultoa::started#2 ultoa::started#4 ] -Statement [287] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [289] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [292] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [293] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [294] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [296] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [297] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [301] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274::ultoa_append:295 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:63 [ ultoa_append::digit#2 ultoa_append::digit#1 ] -Statement [302] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274::ultoa_append:295 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp[1]:51 [ ultoa::digit#2 ultoa::digit#1 ] -Statement [305] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274::ultoa_append:295 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [312] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return [ legal::row#0 legal::column#0 legal::i#10 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:126 [ legal::row#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:127 [ legal::column#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:64 [ legal::i#10 legal::i#1 ] -Statement [315] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#1 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#1 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Statement [318] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#1 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#1 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:66 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] -Statement [322] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#0 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#0 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Statement [323] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#0 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#0 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Statement [324] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:5::tod_init:19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:81 [ tod_init::tod_TENTHS#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:82 [ tod_init::tod_SEC#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:83 [ tod_init::tod_MIN#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:84 [ tod_init::tod_HOURS#0 ] -Statement [325] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:5::tod_init:19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a -Statement [332] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] ( main:5::printf_uint:14 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a -Statement [340] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a -Statement [341] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [342] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [343] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [345] (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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:68 [ utoa::digit#2 utoa::digit#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:71 [ utoa::started#2 utoa::started#4 ] -Statement [346] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [348] 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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [351] (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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [352] (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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [353] (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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [355] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [356] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [360] 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:5::printf_uint:14::utoa:333::utoa_append:354 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:76 [ utoa_append::digit#2 utoa_append::digit#1 ] -Statement [361] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:5::printf_uint:14::utoa:333::utoa_append:354 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:68 [ utoa::digit#2 utoa::digit#1 ] -Statement [364] (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:5::printf_uint:14::utoa:333::utoa_append:354 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [367] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [368] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [369] (byte) printf_cursor_y ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [203] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [206] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [209] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [212] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [215] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [218] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [221] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::$14 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [233] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 ] ( main:5::queens:21 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 ] { } ) always clobbers reg byte a +Statement [244] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 ] ( main:5::queens:21 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 ] { } ) always clobbers reg byte a +Statement [250] (dword) printf_ulong::uvalue#1 ← (dword) count#25 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#1 printf_buffer count#25 ] ( main:5::queens:21::print:243 [ queens::row#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#1 printf_buffer count#25 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } } ) always clobbers reg byte a +Statement [266] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer count#25 print::i1#2 print::j#2 ] ( main:5::queens:21::print:243 [ queens::row#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer count#25 print::i1#2 print::j#2 ] { } ) always clobbers reg byte a +Statement [276] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] ( main:5::queens:21::print:243::printf_uchar:262 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:243::printf_uchar:273 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:60 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +Statement [285] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:243::printf_uchar:273::uctoa:278 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [286] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:243::printf_uchar:273::uctoa:278 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a +Statement [287] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:243::printf_uchar:273::uctoa:278 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [294] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:243::printf_uchar:273::uctoa:278 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:61 [ uctoa::digit#2 uctoa::digit#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:62 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:156 [ uctoa::digit_value#0 ] +Statement [304] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278::uctoa_append:297 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:243::printf_uchar:273::uctoa:278::uctoa_append:297 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:61 [ uctoa::digit#2 uctoa::digit#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:66 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] +Removing always clobbered register reg byte y as potential for zp[1]:66 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] +Statement [307] (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:5::queens:21::print:243::printf_uchar:262::uctoa:278::uctoa_append:297 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:243::printf_uchar:273::uctoa:278::uctoa_append:297 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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]:159 [ uctoa_append::sub#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:67 [ uctoa_append::digit#2 uctoa_append::digit#1 ] +Statement [314] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return [ legal::row#0 legal::column#0 legal::i#10 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:150 [ legal::row#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:151 [ legal::column#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:68 [ legal::i#10 legal::i#1 ] +Statement [317] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#1 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#1 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Statement [320] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#1 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#1 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:70 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] +Statement [324] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#0 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#0 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Statement [325] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#0 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#0 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Statement [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:5::tod_init:19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:85 [ tod_init::tod_TENTHS#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:86 [ tod_init::tod_SEC#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:87 [ tod_init::tod_MIN#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:88 [ tod_init::tod_HOURS#0 ] +Statement [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:5::tod_init:19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [334] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] ( main:5::printf_uint:14 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a +Statement [342] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a +Statement [343] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y +Statement [344] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [345] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [347] (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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:72 [ utoa::digit#2 utoa::digit#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:75 [ utoa::started#2 utoa::started#4 ] +Statement [348] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [350] 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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [353] (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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [354] (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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [355] (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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [357] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [358] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [362] 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:5::printf_uint:14::utoa:335::utoa_append:356 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:80 [ utoa_append::digit#2 utoa_append::digit#1 ] +Statement [363] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:5::printf_uint:14::utoa:335::utoa_append:356 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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]:72 [ utoa::digit#2 utoa::digit#1 ] +Statement [366] (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:5::printf_uint:14::utoa:335::utoa_append:356 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [369] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [370] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [371] (byte) printf_cursor_y ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a Statement [1] (byte) printf_cursor_x ← (byte) 0 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a Statement [2] (byte) printf_cursor_y ← (byte) 0 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a Statement [3] (byte*) printf_cursor_ptr ← (byte*) 1024 [ TOD_ZERO printf_buffer ] ( [ TOD_ZERO printf_buffer ] { } ) always clobbers reg byte a -Statement [48] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#11) [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] ( main:5::printf_str:10 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::printf_str:12 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::printf_str:38 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::printf_string:40::printf_str:44 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:147 [ queens::row#10 count#22 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:151 [ queens::row#10 count#22 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:158 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:166 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_str:169 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#11 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y -Statement [57] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x [ printf_cursor_y printf_ln::$0 ] ( main:5::printf_str:10::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:12::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:38::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i1#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56 [ queens::row#10 count#22 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_cursor_y printf_ln::$0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56 [ TOD_ZERO 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_cursor_y printf_ln::$0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [58] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 [ printf_cursor_y printf_ln::$1 ] ( main:5::printf_str:10::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:12::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:38::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i1#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56 [ queens::row#10 count#22 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_cursor_y printf_ln::$1 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56 [ TOD_ZERO 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_cursor_y printf_ln::$1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [59] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:44::printf_ln:56 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i1#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56 [ queens::row#10 count#22 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_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56 [ TOD_ZERO 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_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [60] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:56 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:56 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:44::printf_ln:56 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [64] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [69] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 [ printf_cursor_y printf_scroll::$4 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [70] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [74] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [75] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [76] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [78] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [80] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memset:68 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memset:68 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memset:68 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:366 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [84] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [86] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:5::printf_str:10::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:12::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:38::printf_ln:56::printf_scroll:62::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_string:40::printf_str:44::printf_ln:56::printf_scroll:62::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:147::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:151::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:158::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:166::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_str:169::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_ln:56::printf_scroll:62::memcpy:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_str:10::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54::printf_scroll:96::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54::printf_scroll:96::memcpy:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54::printf_scroll:96::memcpy:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222::printf_scroll:96::memcpy:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a reg byte y -Statement [90] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte y -Statement [93] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [94] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:44::printf_char:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:147::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:151::printf_char:54 [ queens::row#10 count#22 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:158::printf_char:54 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:166::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_str:169::printf_char:54 [ queens::row#10 count#22 print::i1#2 print::j#2 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_str:210::printf_char:54 [ queens::row#10 count#22 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_str:210::printf_char:54 [ queens::row#10 count#22 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_str:210::printf_char:54 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_char:201 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_char:201 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::printf_uint:14::printf_number_buffer:335::printf_char:201 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:198::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:198::printf_char:222 [ queens::row#10 count#22 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:198::printf_char:222 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:205::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:205::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:205::printf_char:222 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::printf_padding:215::printf_char:222 [ queens::row#10 count#22 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::printf_padding:215::printf_char:222 [ queens::row#10 count#22 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:335::printf_padding:215::printf_char:222 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a -Statement [98] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [101] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [104] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [107] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [110] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [113] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [116] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [119] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:5::tod_str:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr tod_str::$14 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [131] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer ] ( main:5::queens:21 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer ] { } ) always clobbers reg byte a -Statement [142] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer ] ( main:5::queens:21 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer ] { } ) always clobbers reg byte a -Statement [148] (dword) printf_ulong::uvalue#0 ← (dword) count#22 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#22 printf_ulong::uvalue#0 printf_buffer ] ( main:5::queens:21::print:141 [ queens::row#10 printf_cursor_x printf_cursor_y printf_cursor_ptr count#22 printf_ulong::uvalue#0 printf_buffer ] { { count#22 = printf_ulong::uvalue#0 } } ) always clobbers reg byte a -Statement [164] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#22 print::i1#2 print::j#2 printf_buffer ] ( main:5::queens:21::print:141 [ queens::row#10 printf_cursor_x printf_cursor_y printf_cursor_ptr count#22 print::i1#2 print::j#2 printf_buffer ] { } ) always clobbers reg byte a -Statement [174] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_uchar::uvalue#2 printf_buffer ] ( main:5::queens:21::print:141::printf_uchar:160 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_uchar::uvalue#2 printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:141::printf_uchar:171 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_uchar::uvalue#2 printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a -Statement [182] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { count#22 = printf_ulong::uvalue#0 } { 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:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { 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 [184] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { count#22 = printf_ulong::uvalue#0 } { 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:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#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 [185] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [186] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [190] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [207] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [209] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#13 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [226] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strupr:208 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::strupr:208 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y -Statement [228] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strupr:208 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:14::printf_number_buffer:335::strupr:208 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [232] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strupr:208 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strupr:208 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:335::strupr:208 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte y -Statement [236] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strupr:208::toupper:229 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strupr:208::toupper:229 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strupr:208::toupper:229 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { count#22 = printf_ulong::uvalue#0 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:14::printf_number_buffer:335::strupr:208::toupper:229 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a -Statement [241] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 [ strlen::len#2 strlen::str#3 ] ( main:5::queens:21::print:141::printf_uchar:160::printf_number_buffer:178::strlen:183 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_uchar:171::printf_number_buffer:178::strlen:183 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:141::printf_ulong:149::printf_number_buffer:276::strlen:183 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { count#22 = printf_ulong::uvalue#0 } { 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:5::printf_uint:14::printf_number_buffer:335::strlen:183 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { 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 [248] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:141::printf_uchar:171::uctoa:176 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [249] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:141::printf_uchar:171::uctoa:176 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a -Statement [250] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:141::printf_uchar:171::uctoa:176 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [257] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:141::printf_uchar:171::uctoa:176 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [267] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:5::queens:21::print:141::printf_uchar:160::uctoa:176::uctoa_append:260 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:141::printf_uchar:171::uctoa:176::uctoa_append:260 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [270] (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:5::queens:21::print:141::printf_uchar:160::uctoa:176::uctoa_append:260 [ queens::row#10 count#22 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:141::printf_uchar:171::uctoa:176::uctoa_append:260 [ queens::row#10 count#22 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [272] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] ( main:5::queens:21::print:141::printf_ulong:149 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [273] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] ( main:5::queens:21::print:141::printf_ulong:149 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [281] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [282] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [283] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [284] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a reg byte y -Statement [286] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [287] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [289] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [292] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [293] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [294] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [296] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [297] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } } ) always clobbers reg byte a -Statement [301] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274::ultoa_append:295 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [302] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274::ultoa_append:295 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [305] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::queens:21::print:141::printf_ulong:149::ultoa:274::ultoa_append:295 [ queens::row#10 count#22 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { count#22 = printf_ulong::uvalue#0 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a -Statement [312] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return [ legal::row#0 legal::column#0 legal::i#10 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Statement [315] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#1 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#1 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Statement [318] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#1 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#1 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Statement [322] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#0 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#0 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Statement [323] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#0 ] ( main:5::queens:21::legal:134 [ printf_cursor_x printf_cursor_y printf_cursor_ptr queens::row#10 count#14 printf_buffer legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#0 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a -Statement [324] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:5::tod_init:19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a -Statement [325] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:5::tod_init:19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a -Statement [332] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] ( main:5::printf_uint:14 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a -Statement [340] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a -Statement [341] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [342] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [343] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [345] (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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a -Statement [346] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [348] 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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [351] (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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [352] (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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [353] (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:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [355] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [356] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:5::printf_uint:14::utoa:333 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [360] 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:5::printf_uint:14::utoa:333::utoa_append:354 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [361] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:5::printf_uint:14::utoa:333::utoa_append:354 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [364] (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:5::printf_uint:14::utoa:333::utoa_append:354 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [367] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [368] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_ptr ] { } ) always clobbers reg byte a -Statement [369] (byte) printf_cursor_y ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a -Potential registers zp[2]:2 [ printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 ] : zp[2]:2 , +Statement [35] (dword) printf_ulong::uvalue#0 ← (dword) count#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] ( main:5 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#0 printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } } ) always clobbers reg byte a +Statement [46] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] ( main:5::printf_str:10 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_str:12 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_str:34 [ count#10 printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_str:38 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_str:42 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_string:40::printf_str:98 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249 [ queens::row#10 printf_buffer count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::queens:21::print:243::printf_str:253 [ queens::row#10 printf_buffer count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::queens:21::print:243::printf_str:260 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::queens:21::print:243::printf_str:268 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } main:5::queens:21::print:243::printf_str:271 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#13 printf_str::ch#0 ] { } ) always clobbers reg byte a reg byte y +Statement [55] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x [ printf_cursor_y printf_ln::$0 ] ( main:5::printf_str:10::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:12::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:34::printf_ln:54 [ count#10 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:38::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_str:42::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54 [ 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54 [ queens::row#10 count#25 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_cursor_y printf_ln::$0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i1#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i#2 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_cursor_y printf_ln::$0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54 [ TOD_ZERO 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_cursor_y printf_ln::$0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$0 ] { } ) always clobbers reg byte a +Statement [56] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 [ printf_cursor_y printf_ln::$1 ] ( main:5::printf_str:10::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:12::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:34::printf_ln:54 [ count#10 printf_buffer printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:38::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_str:42::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54 [ 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54 [ queens::row#10 count#25 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_cursor_y printf_ln::$1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i1#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i#2 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_cursor_y printf_ln::$1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54 [ TOD_ZERO 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_cursor_y printf_ln::$1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_ln::$1 ] { } ) always clobbers reg byte a +Statement [57] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:34::printf_ln:54 [ count#10 printf_buffer printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:42::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:98::printf_ln:54 [ printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54 [ 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54 [ queens::row#10 count#25 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_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i1#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i#2 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_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54 [ TOD_ZERO 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_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [58] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:54 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:34::printf_ln:54 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:42::printf_ln:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:98::printf_ln:54 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [62] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [67] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 [ printf_cursor_y printf_scroll::$4 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_scroll::$4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [68] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 [ printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [72] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a +Statement [73] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [74] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [76] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [78] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memset:66 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memset:66 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memset:66 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memset:66 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memset:66 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_cls:8::memset:368 [ TOD_ZERO printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [82] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memcpy:64 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memcpy:64 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memcpy:64 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [84] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:5::printf_str:10::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:12::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:34::printf_ln:54::printf_scroll:60::memcpy:64 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:38::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:42::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_string:40::printf_str:98::printf_ln:54::printf_scroll:60::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_ln:54::printf_scroll:60::memcpy:64 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_str:249::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:253::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:260::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:268::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::queens:21::print:243::printf_str:271::printf_ln:54::printf_scroll:60::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { } main:5::printf_str:10::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52::printf_scroll:94::memcpy:64 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52::printf_scroll:94::memcpy:64 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52::printf_scroll:94::memcpy:64 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52::printf_scroll:94::memcpy:64 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128::printf_scroll:94::memcpy:64 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr 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#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149::printf_scroll:94::memcpy:64 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a reg byte y +Statement [88] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte y +Statement [91] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [92] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_str:10::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:12::printf_char:52 [ TOD_ZERO printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:34::printf_char:52 [ count#10 printf_buffer printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:38::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_str:42::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_string:40::printf_str:98::printf_char:52 [ printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_str:137::printf_char:52 [ 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_str:137::printf_char:52 [ queens::row#10 count#25 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i1#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_str:137::printf_char:52 [ queens::row#10 count#25 print::i#2 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_uint:14::printf_number_buffer:337::printf_str:137::printf_char:52 [ TOD_ZERO 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_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:249::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:253::printf_char:52 [ queens::row#10 printf_buffer count#25 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:260::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:268::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::queens:21::print:243::printf_str:271::printf_char:52 [ queens::row#10 printf_buffer count#25 print::i1#2 print::j#2 printf_str::str#0 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_char:128 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_char:128 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_char:128 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337::printf_char:128 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:125::printf_char:149 [ printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:125::printf_char:149 [ queens::row#10 count#25 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:125::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:125::printf_char:149 [ TOD_ZERO printf_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::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:132::printf_char:149 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:132::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:132::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:132::printf_char:149 [ TOD_ZERO printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#10 printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_ulong:36::printf_number_buffer:105::printf_padding:142::printf_char:149 [ printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::printf_padding:142::printf_char:149 [ queens::row#10 count#25 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i1#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::printf_padding:142::printf_char:149 [ queens::row#10 count#25 print::i#2 printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } main:5::printf_uint:14::printf_number_buffer:337::printf_padding:142::printf_char:149 [ TOD_ZERO printf_buffer printf_padding::length#6 printf_padding::pad#7 printf_padding::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#6 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#7 } } ) always clobbers reg byte a +Statement [101] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] ( main:5::printf_ulong:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#2 printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [102] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] ( main:5::printf_ulong:36 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::value#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [109] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { 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:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { 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:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::str#1 ] { { 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 [111] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { 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:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { 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:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#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 [112] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [113] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [117] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_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::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [134] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::str#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [136] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] ( main:5::printf_ulong:36::printf_number_buffer:105 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_str::str#1 printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_str::str#15 printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [153] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 [ strupr::src#2 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strupr:135 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strupr:135 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::strupr:135 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y +Statement [155] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) [ strupr::src#2 toupper::ch#0 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strupr:135 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strupr:135 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:14::printf_number_buffer:337::strupr:135 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::ch#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a reg byte y +Statement [159] *((byte*) strupr::src#2) ← (byte~) strupr::$0 [ strupr::src#2 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strupr:135 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strupr:135 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strupr:135 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } main:5::printf_uint:14::printf_number_buffer:337::strupr:135 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte y +Statement [163] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' [ toupper::return#0 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strupr:135::toupper:156 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strupr:135::toupper:156 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strupr:135::toupper:156 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strupr:135::toupper:156 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } main:5::printf_uint:14::printf_number_buffer:337::strupr:135::toupper:156 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 strupr::src#2 toupper::return#0 ] { { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strupr::str#0 = printf_number_buffer::buffer_digits#10 } { toupper::return#2 = toupper::return#3 } } ) always clobbers reg byte a +Statement [168] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 [ strlen::len#2 strlen::str#3 ] ( main:5::printf_ulong:36::printf_number_buffer:105::strlen:110 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 } { 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:5::queens:21::print:243::printf_ulong:251::printf_number_buffer:105::strlen:110 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } { 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:5::queens:21::print:243::printf_uchar:262::printf_number_buffer:280::strlen:110 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::queens:21::print:243::printf_uchar:273::printf_number_buffer:280::strlen:110 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 } { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:5::printf_uint:14::printf_number_buffer:337::strlen:110 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_number_buffer::format_min_length#3 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::len#2 strlen::str#3 ] { { 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 [175] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [176] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [177] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 [ printf_buffer ultoa::buffer#3 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::buffer#3 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [178] *((byte*) ultoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [180] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::$10 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [181] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [183] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::started#2 ultoa::buffer#11 ultoa::digit_value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [186] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 [ printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::value#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [187] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::digit_value#0 ultoa_append::buffer#0 ultoa_append::value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [188] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::value#0 ultoa_append::sub#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [190] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::return#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [191] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 [ printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] ( main:5::printf_ulong:36::ultoa:103 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa::value#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } } ) always clobbers reg byte a +Statement [195] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] ( main:5::printf_ulong:36::ultoa:103::ultoa_append:189 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103::ultoa_append:189 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#2 ultoa_append::digit#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [196] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) [ ultoa_append::value#2 ] ( main:5::printf_ulong:36::ultoa:103::ultoa_append:189 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103::ultoa_append:189 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::value#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [199] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 [ ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] ( main:5::printf_ulong:36::ultoa:103::ultoa_append:189 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count#10 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } main:5::queens:21::print:243::printf_ulong:251::ultoa:103::ultoa_append:189 [ queens::row#10 count#25 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ultoa::digit#2 ultoa::buffer#11 ultoa_append::buffer#0 ultoa_append::sub#0 ultoa_append::value#1 ultoa_append::digit#1 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 ultoa::value#1 } { ultoa_append::buffer#0 = ultoa::buffer#11 } { ultoa_append::value#0 = ultoa::value#2 } { ultoa_append::sub#0 = ultoa::digit_value#0 } { ultoa_append::return#0 = ultoa_append::value#2 } } ) always clobbers reg byte a +Statement [200] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [203] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [206] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [209] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [212] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [215] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [218] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [221] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:5::tod_str:32 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer tod_str::$14 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [233] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 ] ( main:5::queens:21 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 ] { } ) always clobbers reg byte a +Statement [244] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 ] ( main:5::queens:21 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 ] { } ) always clobbers reg byte a +Statement [250] (dword) printf_ulong::uvalue#1 ← (dword) count#25 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#1 printf_buffer count#25 ] ( main:5::queens:21::print:243 [ queens::row#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_ulong::uvalue#1 printf_buffer count#25 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#25 } } ) always clobbers reg byte a +Statement [266] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer count#25 print::i1#2 print::j#2 ] ( main:5::queens:21::print:243 [ queens::row#10 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer count#25 print::i1#2 print::j#2 ] { } ) always clobbers reg byte a +Statement [276] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] ( main:5::queens:21::print:243::printf_uchar:262 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:243::printf_uchar:273 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer printf_uchar::uvalue#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a +Statement [285] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:243::printf_uchar:273::uctoa:278 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#11 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [286] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:243::printf_uchar:273::uctoa:278 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::buffer#3 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a +Statement [287] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } } main:5::queens:21::print:243::printf_uchar:273::uctoa:278 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } } ) always clobbers reg byte a reg byte y +Statement [294] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:243::printf_uchar:273::uctoa:278 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [304] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:5::queens:21::print:243::printf_uchar:262::uctoa:278::uctoa_append:297 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:243::printf_uchar:273::uctoa:278::uctoa_append:297 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [307] (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:5::queens:21::print:243::printf_uchar:262::uctoa:278::uctoa_append:297 [ queens::row#10 count#25 print::i1#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#1 = printf_uchar::uvalue#2 print::i1#2 uctoa::value#1 } { 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:5::queens:21::print:243::printf_uchar:273::uctoa:278::uctoa_append:297 [ queens::row#10 count#25 print::i#2 printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { printf_uchar::uvalue#0 = printf_uchar::uvalue#2 print::i#2 uctoa::value#1 } { 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 [314] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return [ legal::row#0 legal::column#0 legal::i#10 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Statement [317] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#1 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#1 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Statement [320] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#1 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#1 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Statement [324] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#0 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#2 legal::diff2_return#0 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Statement [325] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 [ legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#0 ] ( main:5::queens:21::legal:236 [ printf_cursor_x printf_cursor_y printf_cursor_ptr count#10 printf_buffer queens::row#10 legal::row#0 legal::column#0 legal::i#10 legal::diff1_return#0 ] { { legal::row#0 = queens::row#10 } { legal::return#0 = legal::return#4 } } ) always clobbers reg byte a +Statement [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:5::tod_init:19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:5::tod_init:19 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [334] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] ( main:5::printf_uint:14 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a +Statement [342] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a +Statement [343] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y +Statement [344] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [345] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [347] (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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a +Statement [348] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [350] 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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [353] (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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [354] (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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [355] (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:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [357] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [358] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:5::printf_uint:14::utoa:335 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [362] 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:5::printf_uint:14::utoa:335::utoa_append:356 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [363] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:5::printf_uint:14::utoa:335::utoa_append:356 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [366] (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:5::printf_uint:14::utoa:335::utoa_append:356 [ TOD_ZERO printf_cursor_x printf_cursor_y printf_cursor_ptr 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 [369] (byte*) printf_cursor_ptr ← (byte*) 1024 [ printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [370] (byte) printf_cursor_x ← (byte) 0 [ printf_cursor_x printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_ptr ] { } ) always clobbers reg byte a +Statement [371] (byte) printf_cursor_y ← (byte) 0 [ printf_cursor_x printf_cursor_y printf_cursor_ptr ] ( main:5::printf_cls:8 [ TOD_ZERO printf_buffer printf_cursor_x printf_cursor_y printf_cursor_ptr ] { } ) always clobbers reg byte a +Potential registers zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] : zp[2]:2 , Potential registers zp[2]:4 [ memset::num#2 ] : zp[2]:4 , Potential registers zp[2]:6 [ memset::str#3 ] : zp[2]:6 , Potential registers zp[1]:8 [ memset::c#4 ] : zp[1]:8 , reg byte x , @@ -10145,64 +10252,61 @@ Potential registers zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] : zp[2 Potential registers zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] : zp[2]:11 , Potential registers zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] : zp[2]:13 , Potential registers zp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] : zp[1]:15 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 ] : zp[1]:16 , reg byte x , -Potential registers zp[4]:17 [ count#14 count#22 ] : zp[4]:17 , -Potential registers zp[1]:21 [ print::i#2 print::i#1 ] : zp[1]:21 , reg byte x , -Potential registers zp[1]:22 [ print::i1#2 print::i1#1 ] : zp[1]:22 , reg byte x , -Potential registers zp[1]:23 [ print::j#2 print::j#1 ] : zp[1]:23 , reg byte x , -Potential registers zp[1]:24 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] : zp[1]:24 , reg byte x , reg byte y , -Potential registers zp[1]:25 [ printf_number_buffer::format_min_length#3 ] : zp[1]:25 , reg byte x , -Potential registers zp[1]:26 [ printf_number_buffer::format_justify_left#10 ] : zp[1]:26 , reg byte x , -Potential registers zp[1]:27 [ printf_number_buffer::format_zero_padding#10 ] : zp[1]:27 , reg byte x , -Potential registers zp[2]:28 [ printf_number_buffer::buffer_digits#10 ] : zp[2]:28 , -Potential registers zp[1]:30 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] : zp[1]:30 , reg byte x , -Potential registers zp[1]:31 [ printf_number_buffer::format_upper_case#10 ] : zp[1]:31 , reg byte x , -Potential registers zp[1]:32 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] : zp[1]:32 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:33 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] : zp[1]:33 , reg byte x , -Potential registers zp[1]:34 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] : zp[1]:34 , reg byte x , -Potential registers zp[1]:35 [ printf_padding::pad#7 ] : zp[1]:35 , reg byte x , -Potential registers zp[1]:36 [ printf_padding::i#2 printf_padding::i#1 ] : zp[1]:36 , reg byte x , -Potential registers zp[2]:37 [ strupr::src#2 strupr::str#0 strupr::src#1 ] : zp[2]:37 , -Potential registers zp[1]:39 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] : zp[1]:39 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:40 [ strlen::str#3 strlen::str#1 strlen::str#0 ] : zp[2]:40 , -Potential registers zp[2]:42 [ strlen::len#2 strlen::len#1 ] : zp[2]:42 , -Potential registers zp[1]:44 [ uctoa::digit#2 uctoa::digit#1 ] : zp[1]:44 , reg byte x , -Potential registers zp[1]:45 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] : zp[1]:45 , reg byte x , reg byte y , -Potential registers zp[1]:46 [ uctoa::started#2 uctoa::started#4 ] : zp[1]:46 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:47 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] : zp[2]:47 , -Potential registers zp[1]:49 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] : zp[1]:49 , reg byte x , -Potential registers zp[1]:50 [ uctoa_append::digit#2 uctoa_append::digit#1 ] : zp[1]:50 , reg byte x , reg byte y , -Potential registers zp[1]:51 [ ultoa::digit#2 ultoa::digit#1 ] : zp[1]:51 , reg byte x , -Potential registers zp[4]:52 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] : zp[4]:52 , -Potential registers zp[1]:56 [ ultoa::started#2 ultoa::started#4 ] : zp[1]:56 , reg byte x , reg byte y , -Potential registers zp[2]:57 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] : zp[2]:57 , -Potential registers zp[4]:59 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] : zp[4]:59 , -Potential registers zp[1]:63 [ ultoa_append::digit#2 ultoa_append::digit#1 ] : zp[1]:63 , reg byte x , reg byte y , -Potential registers zp[1]:64 [ legal::i#10 legal::i#1 ] : zp[1]:64 , reg byte x , reg byte y , -Potential registers zp[1]:65 [ legal::return#4 ] : zp[1]:65 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:66 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] : zp[1]:66 , reg byte x , reg byte y , -Potential registers zp[1]:67 [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:68 [ utoa::digit#2 utoa::digit#1 ] : zp[1]:68 , reg byte x , -Potential registers zp[2]:69 [ utoa::value#2 utoa::value#6 utoa::value#0 ] : zp[2]:69 , -Potential registers zp[1]:71 [ utoa::started#2 utoa::started#4 ] : zp[1]:71 , reg byte x , reg byte y , -Potential registers zp[2]:72 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] : zp[2]:72 , -Potential registers zp[2]:74 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] : zp[2]:74 , -Potential registers zp[1]:76 [ utoa_append::digit#2 utoa_append::digit#1 ] : zp[1]:76 , reg byte x , reg byte y , -Potential registers zp[1]:77 [ printf_cursor_x ] : zp[1]:77 , -Potential registers zp[1]:78 [ printf_cursor_y ] : zp[1]:78 , -Potential registers zp[2]:79 [ printf_cursor_ptr ] : zp[2]:79 , -Potential registers zp[1]:81 [ tod_init::tod_TENTHS#0 ] : zp[1]:81 , reg byte x , reg byte y , -Potential registers zp[1]:82 [ tod_init::tod_SEC#0 ] : zp[1]:82 , reg byte x , reg byte y , -Potential registers zp[1]:83 [ tod_init::tod_MIN#0 ] : zp[1]:83 , reg byte x , reg byte y , -Potential registers zp[1]:84 [ tod_init::tod_HOURS#0 ] : zp[1]:84 , reg byte x , reg byte y , -Potential registers zp[1]:85 [ tod_read::return_TENTHS#2 ] : zp[1]:85 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:86 [ tod_read::return_SEC#2 ] : zp[1]:86 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:87 [ tod_read::return_MIN#2 ] : zp[1]:87 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:88 [ tod_read::return_HOURS#2 ] : zp[1]:88 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:89 [ main::tod_TENTHS#0 ] : zp[1]:89 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:90 [ main::tod_SEC#0 ] : zp[1]:90 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:91 [ main::tod_MIN#0 ] : zp[1]:91 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:92 [ main::tod_HOURS#0 ] : zp[1]:92 , reg byte a , reg byte x , reg byte y , +Potential registers zp[4]:16 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] : zp[4]:16 , +Potential registers zp[1]:20 [ printf_number_buffer::format_min_length#3 ] : zp[1]:20 , reg byte x , +Potential registers zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] : zp[1]:21 , reg byte x , +Potential registers zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] : zp[1]:22 , reg byte x , +Potential registers zp[2]:23 [ printf_number_buffer::buffer_digits#10 ] : zp[2]:23 , +Potential registers zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] : zp[1]:25 , reg byte x , +Potential registers zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] : zp[1]:26 , reg byte x , +Potential registers zp[1]:27 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] : zp[1]:27 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] : zp[1]:28 , reg byte x , +Potential registers zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] : zp[1]:29 , reg byte x , +Potential registers zp[1]:30 [ printf_padding::pad#7 ] : zp[1]:30 , reg byte x , +Potential registers zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] : zp[1]:31 , reg byte x , +Potential registers zp[2]:32 [ strupr::src#2 strupr::str#0 strupr::src#1 ] : zp[2]:32 , +Potential registers zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] : zp[1]:34 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 ] : zp[2]:35 , +Potential registers zp[2]:37 [ strlen::len#2 strlen::len#1 ] : zp[2]:37 , +Potential registers zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] : zp[1]:39 , reg byte x , +Potential registers zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] : zp[4]:40 , +Potential registers zp[1]:44 [ ultoa::started#2 ultoa::started#4 ] : zp[1]:44 , reg byte x , reg byte y , +Potential registers zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] : zp[2]:45 , +Potential registers zp[4]:47 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] : zp[4]:47 , +Potential registers zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] : zp[1]:51 , reg byte x , reg byte y , +Potential registers zp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 ] : zp[1]:52 , reg byte x , +Potential registers zp[4]:53 [ count#10 count#25 ] : zp[4]:53 , +Potential registers zp[1]:57 [ print::i#2 print::i#1 ] : zp[1]:57 , reg byte x , +Potential registers zp[1]:58 [ print::i1#2 print::i1#1 ] : zp[1]:58 , reg byte x , +Potential registers zp[1]:59 [ print::j#2 print::j#1 ] : zp[1]:59 , reg byte x , +Potential registers zp[1]:60 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] : zp[1]:60 , reg byte x , reg byte y , +Potential registers zp[1]:61 [ uctoa::digit#2 uctoa::digit#1 ] : zp[1]:61 , reg byte x , +Potential registers zp[1]:62 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] : zp[1]:62 , reg byte x , reg byte y , +Potential registers zp[1]:63 [ uctoa::started#2 uctoa::started#4 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:64 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] : zp[2]:64 , +Potential registers zp[1]:66 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] : zp[1]:66 , reg byte x , +Potential registers zp[1]:67 [ uctoa_append::digit#2 uctoa_append::digit#1 ] : zp[1]:67 , reg byte x , reg byte y , +Potential registers zp[1]:68 [ legal::i#10 legal::i#1 ] : zp[1]:68 , reg byte x , reg byte y , +Potential registers zp[1]:69 [ legal::return#4 ] : zp[1]:69 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:70 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] : zp[1]:70 , reg byte x , reg byte y , +Potential registers zp[1]:71 [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] : zp[1]:71 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:72 [ utoa::digit#2 utoa::digit#1 ] : zp[1]:72 , reg byte x , +Potential registers zp[2]:73 [ utoa::value#2 utoa::value#6 utoa::value#0 ] : zp[2]:73 , +Potential registers zp[1]:75 [ utoa::started#2 utoa::started#4 ] : zp[1]:75 , reg byte x , reg byte y , +Potential registers zp[2]:76 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] : zp[2]:76 , +Potential registers zp[2]:78 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] : zp[2]:78 , +Potential registers zp[1]:80 [ utoa_append::digit#2 utoa_append::digit#1 ] : zp[1]:80 , reg byte x , reg byte y , +Potential registers zp[1]:81 [ printf_cursor_x ] : zp[1]:81 , +Potential registers zp[1]:82 [ printf_cursor_y ] : zp[1]:82 , +Potential registers zp[2]:83 [ printf_cursor_ptr ] : zp[2]:83 , +Potential registers zp[1]:85 [ tod_init::tod_TENTHS#0 ] : zp[1]:85 , reg byte x , reg byte y , +Potential registers zp[1]:86 [ tod_init::tod_SEC#0 ] : zp[1]:86 , reg byte x , reg byte y , +Potential registers zp[1]:87 [ tod_init::tod_MIN#0 ] : zp[1]:87 , reg byte x , reg byte y , +Potential registers zp[1]:88 [ tod_init::tod_HOURS#0 ] : zp[1]:88 , reg byte x , reg byte y , +Potential registers zp[1]:89 [ tod_read::return_TENTHS#2 ] : zp[1]:89 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:90 [ tod_read::return_SEC#2 ] : zp[1]:90 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:91 [ tod_read::return_MIN#2 ] : zp[1]:91 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:92 [ tod_read::return_HOURS#2 ] : zp[1]:92 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:93 [ tod_str::tod_TENTHS#0 ] : zp[1]:93 , reg byte x , reg byte y , Potential registers zp[1]:94 [ tod_str::tod_SEC#0 ] : zp[1]:94 , reg byte x , reg byte y , Potential registers zp[1]:95 [ tod_str::tod_MIN#0 ] : zp[1]:95 , reg byte x , reg byte y , @@ -10212,87 +10316,85 @@ Potential registers zp[2]:98 [ printf_ln::$0 ] : zp[2]:98 , Potential registers zp[2]:100 [ printf_ln::$1 ] : zp[2]:100 , Potential registers zp[2]:102 [ printf_scroll::$4 ] : zp[2]:102 , Potential registers zp[2]:104 [ memset::end#0 ] : zp[2]:104 , -Potential registers zp[1]:106 [ tod_str::$0 ] : zp[1]:106 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:107 [ tod_str::$1 ] : zp[1]:107 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:108 [ tod_str::$2 ] : zp[1]:108 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:109 [ tod_str::$3 ] : zp[1]:109 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:110 [ tod_str::$4 ] : zp[1]:110 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:111 [ tod_str::$5 ] : zp[1]:111 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:112 [ tod_str::$6 ] : zp[1]:112 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:113 [ tod_str::$7 ] : zp[1]:113 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:114 [ tod_str::$8 ] : zp[1]:114 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:115 [ tod_str::$9 ] : zp[1]:115 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:116 [ tod_str::$10 ] : zp[1]:116 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:117 [ tod_str::$11 ] : zp[1]:117 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:118 [ tod_str::$12 ] : zp[1]:118 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:119 [ tod_str::$13 ] : zp[1]:119 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:120 [ tod_str::$14 ] : zp[1]:120 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:121 [ tod_str::$15 ] : zp[1]:121 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:122 [ tod_read::return_HOURS#0 ] : zp[1]:122 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:123 [ tod_read::return_MIN#0 ] : zp[1]:123 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:124 [ tod_read::return_SEC#0 ] : zp[1]:124 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:125 [ tod_read::return_TENTHS#0 ] : zp[1]:125 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:126 [ legal::row#0 ] : zp[1]:126 , reg byte x , reg byte y , -Potential registers zp[1]:127 [ legal::column#0 ] : zp[1]:127 , reg byte x , reg byte y , -Potential registers zp[1]:128 [ legal::return#0 ] : zp[1]:128 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:129 [ queens::$2 ] : zp[1]:129 , reg byte a , reg byte x , reg byte y , -Potential registers zp[4]:130 [ printf_ulong::uvalue#0 ] : zp[4]:130 , -Potential registers zp[2]:134 [ strlen::return#2 ] : zp[2]:134 , -Potential registers zp[2]:136 [ printf_number_buffer::$19 ] : zp[2]:136 , -Potential registers zp[1]:138 [ toupper::return#3 ] : zp[1]:138 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:139 [ strupr::$0 ] : zp[1]:139 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:140 [ uctoa::buffer#3 ] : zp[2]:140 , -Potential registers zp[1]:142 [ uctoa::digit_value#0 ] : zp[1]:142 , reg byte x , reg byte y , -Potential registers zp[2]:143 [ uctoa_append::buffer#0 ] : zp[2]:143 , -Potential registers zp[1]:145 [ uctoa_append::sub#0 ] : zp[1]:145 , reg byte x , reg byte y , -Potential registers zp[1]:146 [ uctoa_append::return#0 ] : zp[1]:146 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:147 [ ultoa::$11 ] : zp[1]:147 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:148 [ ultoa::buffer#3 ] : zp[2]:148 , -Potential registers zp[1]:150 [ ultoa::$10 ] : zp[1]:150 , reg byte a , reg byte x , reg byte y , -Potential registers zp[4]:151 [ ultoa::digit_value#0 ] : zp[4]:151 , -Potential registers zp[2]:155 [ ultoa_append::buffer#0 ] : zp[2]:155 , -Potential registers zp[4]:157 [ ultoa_append::sub#0 ] : zp[4]:157 , -Potential registers zp[4]:161 [ ultoa_append::return#0 ] : zp[4]:161 , -Potential registers zp[1]:165 [ legal::$0 ] : zp[1]:165 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:166 [ legal::diff1_a#0 ] : zp[1]:166 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:167 [ utoa::$11 ] : zp[1]:167 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:168 [ utoa::buffer#3 ] : zp[2]:168 , -Potential registers zp[1]:170 [ utoa::$10 ] : zp[1]:170 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:171 [ utoa::digit_value#0 ] : zp[2]:171 , -Potential registers zp[2]:173 [ utoa_append::buffer#0 ] : zp[2]:173 , -Potential registers zp[2]:175 [ utoa_append::sub#0 ] : zp[2]:175 , -Potential registers zp[2]:177 [ utoa_append::return#0 ] : zp[2]:177 , +Potential registers zp[2]:106 [ strlen::return#2 ] : zp[2]:106 , +Potential registers zp[2]:108 [ printf_number_buffer::$19 ] : zp[2]:108 , +Potential registers zp[1]:110 [ toupper::return#3 ] : zp[1]:110 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:111 [ strupr::$0 ] : zp[1]:111 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:112 [ ultoa::$11 ] : zp[1]:112 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:113 [ ultoa::buffer#3 ] : zp[2]:113 , +Potential registers zp[1]:115 [ ultoa::$10 ] : zp[1]:115 , reg byte a , reg byte x , reg byte y , +Potential registers zp[4]:116 [ ultoa::digit_value#0 ] : zp[4]:116 , +Potential registers zp[2]:120 [ ultoa_append::buffer#0 ] : zp[2]:120 , +Potential registers zp[4]:122 [ ultoa_append::sub#0 ] : zp[4]:122 , +Potential registers zp[4]:126 [ ultoa_append::return#0 ] : zp[4]:126 , +Potential registers zp[1]:130 [ tod_str::$0 ] : zp[1]:130 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:131 [ tod_str::$1 ] : zp[1]:131 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:132 [ tod_str::$2 ] : zp[1]:132 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:133 [ tod_str::$3 ] : zp[1]:133 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:134 [ tod_str::$4 ] : zp[1]:134 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:135 [ tod_str::$5 ] : zp[1]:135 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:136 [ tod_str::$6 ] : zp[1]:136 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:137 [ tod_str::$7 ] : zp[1]:137 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:138 [ tod_str::$8 ] : zp[1]:138 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:139 [ tod_str::$9 ] : zp[1]:139 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:140 [ tod_str::$10 ] : zp[1]:140 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:141 [ tod_str::$11 ] : zp[1]:141 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:142 [ tod_str::$12 ] : zp[1]:142 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:143 [ tod_str::$13 ] : zp[1]:143 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:144 [ tod_str::$14 ] : zp[1]:144 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:145 [ tod_str::$15 ] : zp[1]:145 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:146 [ tod_read::return_HOURS#0 ] : zp[1]:146 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:147 [ tod_read::return_MIN#0 ] : zp[1]:147 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:148 [ tod_read::return_SEC#0 ] : zp[1]:148 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:149 [ tod_read::return_TENTHS#0 ] : zp[1]:149 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:150 [ legal::row#0 ] : zp[1]:150 , reg byte x , reg byte y , +Potential registers zp[1]:151 [ legal::column#0 ] : zp[1]:151 , reg byte x , reg byte y , +Potential registers zp[1]:152 [ legal::return#0 ] : zp[1]:152 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:153 [ queens::$2 ] : zp[1]:153 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:154 [ uctoa::buffer#3 ] : zp[2]:154 , +Potential registers zp[1]:156 [ uctoa::digit_value#0 ] : zp[1]:156 , reg byte x , reg byte y , +Potential registers zp[2]:157 [ uctoa_append::buffer#0 ] : zp[2]:157 , +Potential registers zp[1]:159 [ uctoa_append::sub#0 ] : zp[1]:159 , reg byte x , reg byte y , +Potential registers zp[1]:160 [ uctoa_append::return#0 ] : zp[1]:160 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:161 [ legal::$0 ] : zp[1]:161 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:162 [ legal::diff1_a#0 ] : zp[1]:162 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:163 [ utoa::$11 ] : zp[1]:163 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:164 [ utoa::buffer#3 ] : zp[2]:164 , +Potential registers zp[1]:166 [ utoa::$10 ] : zp[1]:166 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:167 [ utoa::digit_value#0 ] : zp[2]:167 , +Potential registers zp[2]:169 [ utoa_append::buffer#0 ] : zp[2]:169 , +Potential registers zp[2]:171 [ utoa_append::sub#0 ] : zp[2]:171 , +Potential registers zp[2]:173 [ utoa_append::return#0 ] : zp[2]:173 , Potential registers mem[12] [ printf_buffer ] : mem[12] , Potential registers mem[4] [ TOD_ZERO ] : mem[4] , REGISTER UPLIFT SCOPES Uplift Scope [memcpy] 30,000,000,000,000,000,000: zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] 20,000,000,000,000,000,000: zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] Uplift Scope [memset] 335,666,666,666,666,620: zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 16,833,333,333,333,332: zp[2]:104 [ memset::end#0 ] 12,500,000,000,000,000: zp[1]:8 [ memset::c#4 ] 1,000,000,000,000,001: zp[2]:4 [ memset::num#2 ] 0: zp[2]:6 [ memset::str#3 ] -Uplift Scope [uctoa_append] 25,000,550,000,000,000: zp[1]:49 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] 20,000,500,000,000,000: zp[1]:50 [ uctoa_append::digit#2 uctoa_append::digit#1 ] 3,333,350,000,000,000: zp[1]:145 [ uctoa_append::sub#0 ] 200,000,000,002: zp[1]:146 [ uctoa_append::return#0 ] 137,500,000,000.25: zp[2]:143 [ uctoa_append::buffer#0 ] +Uplift Scope [uctoa_append] 25,000,550,000,000,000: zp[1]:66 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] 20,000,500,000,000,000: zp[1]:67 [ uctoa_append::digit#2 uctoa_append::digit#1 ] 3,333,350,000,000,000: zp[1]:159 [ uctoa_append::sub#0 ] 200,000,000,002: zp[1]:160 [ uctoa_append::return#0 ] 137,500,000,000.25: zp[2]:157 [ uctoa_append::buffer#0 ] Uplift Scope [printf_scroll] 200,000,000,000,002: zp[2]:102 [ printf_scroll::$4 ] -Uplift Scope [toupper] 47,333,333,333,338.66: zp[1]:39 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] 2,000,000,000,002: zp[1]:138 [ toupper::return#3 ] +Uplift Scope [toupper] 47,333,333,333,338.66: zp[1]:34 [ toupper::return#2 toupper::return#0 toupper::ch#0 ] 2,000,000,000,002: zp[1]:110 [ toupper::return#3 ] Uplift Scope [printf_char] 13,030,300,000,010: zp[1]:15 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -Uplift Scope [ultoa_append] 2,500,550,000,003.5: zp[4]:59 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] 2,000,500,000,002.5: zp[1]:63 [ ultoa_append::digit#2 ultoa_append::digit#1 ] 333,350,000,000.5: zp[4]:157 [ ultoa_append::sub#0 ] 200,000,002: zp[4]:161 [ ultoa_append::return#0 ] 137,500,000.25: zp[2]:155 [ ultoa_append::buffer#0 ] -Uplift Scope [strupr] 2,714,978,571,432.43: zp[2]:37 [ strupr::src#2 strupr::str#0 strupr::src#1 ] 2,000,000,000,002: zp[1]:139 [ strupr::$0 ] -Uplift Scope [strlen] 3,000,883,333,337.67: zp[2]:40 [ strlen::str#3 strlen::str#1 strlen::str#0 ] 1,500,025,000,001.75: zp[2]:42 [ strlen::len#2 strlen::len#1 ] 200,000,002: zp[2]:134 [ strlen::return#2 ] -Uplift Scope [] 1,769,060,773,481.27: zp[1]:78 [ printf_cursor_y ] 1,278,888,888,889.5: zp[2]:79 [ printf_cursor_ptr ] 236,470,588,235.94: zp[1]:77 [ printf_cursor_x ] 985.9: zp[4]:17 [ count#14 count#22 ] 0: mem[12] [ printf_buffer ] 0: mem[4] [ TOD_ZERO ] -Uplift Scope [printf_padding] 2,750,000,000,002.75: zp[1]:36 [ printf_padding::i#2 printf_padding::i#1 ] 167,316,666,673.33: zp[1]:34 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] 166,666,666,666.83: zp[1]:35 [ printf_padding::pad#7 ] -Uplift Scope [uctoa] 383,350,000,004: zp[2]:47 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] 316,755,000,004.5: zp[1]:45 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] 230,769,230,771.54: zp[1]:44 [ uctoa::digit#2 uctoa::digit#1 ] 160,000,000,001.6: zp[1]:46 [ uctoa::started#2 uctoa::started#4 ] 60,000,000,000.6: zp[1]:142 [ uctoa::digit_value#0 ] 200,000,002: zp[2]:140 [ uctoa::buffer#3 ] +Uplift Scope [ultoa_append] 2,500,550,000,003.5: zp[4]:47 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] 2,000,500,000,002.5: zp[1]:51 [ ultoa_append::digit#2 ultoa_append::digit#1 ] 333,350,000,000.5: zp[4]:122 [ ultoa_append::sub#0 ] 200,000,002: zp[4]:126 [ ultoa_append::return#0 ] 137,500,000.25: zp[2]:120 [ ultoa_append::buffer#0 ] +Uplift Scope [strupr] 2,714,978,571,432.43: zp[2]:32 [ strupr::src#2 strupr::str#0 strupr::src#1 ] 2,000,000,000,002: zp[1]:111 [ strupr::$0 ] +Uplift Scope [strlen] 3,000,883,333,337.67: zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 ] 1,500,025,000,001.75: zp[2]:37 [ strlen::len#2 strlen::len#1 ] 200,000,002: zp[2]:106 [ strlen::return#2 ] +Uplift Scope [] 1,730,810,810,811.41: zp[1]:82 [ printf_cursor_y ] 1,251,086,956,522.34: zp[2]:83 [ printf_cursor_ptr ] 231,034,482,759.25: zp[1]:81 [ printf_cursor_x ] 690.41: zp[4]:53 [ count#10 count#25 ] 0: mem[12] [ printf_buffer ] 0: mem[4] [ TOD_ZERO ] +Uplift Scope [printf_padding] 2,750,000,000,002.75: zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] 167,316,666,673.33: zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] 166,666,666,666.83: zp[1]:30 [ printf_padding::pad#7 ] +Uplift Scope [uctoa] 383,350,000,004: zp[2]:64 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] 316,755,000,004.5: zp[1]:62 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] 230,769,230,771.54: zp[1]:61 [ uctoa::digit#2 uctoa::digit#1 ] 160,000,000,001.6: zp[1]:63 [ uctoa::started#2 uctoa::started#4 ] 60,000,000,000.6: zp[1]:156 [ uctoa::digit_value#0 ] 200,000,002: zp[2]:154 [ uctoa::buffer#3 ] Uplift Scope [printf_ln] 200,000,000,002: zp[2]:98 [ printf_ln::$0 ] 200,000,000,002: zp[2]:100 [ printf_ln::$1 ] -Uplift Scope [printf_str] 26,085,714,292.64: zp[2]:2 [ printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 ] 10,000,000,001: zp[1]:97 [ printf_str::ch#0 ] -Uplift Scope [ultoa] 378,714,289.64: zp[2]:57 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] 307,835,718.5: zp[4]:52 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] 228,571,430.86: zp[1]:51 [ ultoa::digit#2 ultoa::digit#1 ] 200,000,002: zp[1]:150 [ ultoa::$10 ] 150,000,001.5: zp[1]:56 [ ultoa::started#2 ultoa::started#4 ] 60,000,000.6: zp[4]:151 [ ultoa::digit_value#0 ] 2,000,002: zp[1]:147 [ ultoa::$11 ] 2,000,002: zp[2]:148 [ ultoa::buffer#3 ] -Uplift Scope [printf_number_buffer] 650,000,006.5: zp[1]:32 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] 119,047,620.24: zp[1]:33 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] 100,000,001: zp[2]:136 [ printf_number_buffer::$19 ] 35,705,211.3: zp[1]:30 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] 10,344,827.69: zp[2]:28 [ printf_number_buffer::buffer_digits#10 ] 10,000,000.1: zp[1]:25 [ printf_number_buffer::format_min_length#3 ] 9,375,000.09: zp[1]:27 [ printf_number_buffer::format_zero_padding#10 ] 6,451,612.97: zp[1]:26 [ printf_number_buffer::format_justify_left#10 ] 3,846,153.88: zp[1]:31 [ printf_number_buffer::format_upper_case#10 ] -Uplift Scope [utoa_append] 25,055,003.5: zp[2]:74 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] 20,050,002.5: zp[1]:76 [ utoa_append::digit#2 utoa_append::digit#1 ] 3,335,000.5: zp[2]:175 [ utoa_append::sub#0 ] 20,002: zp[2]:177 [ utoa_append::return#0 ] 13,750.25: zp[2]:173 [ utoa_append::buffer#0 ] -Uplift Scope [print] 25,714,288.29: zp[1]:23 [ print::j#2 print::j#1 ] 3,000,003: zp[1]:21 [ print::i#2 print::i#1 ] 3,000,002.36: zp[1]:22 [ print::i1#2 print::i1#1 ] -Uplift Scope [legal] 7,000,007: zp[1]:67 [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] 4,600,004.6: zp[1]:66 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] 2,571,431.14: zp[1]:64 [ legal::i#10 legal::i#1 ] 2,000,002: zp[1]:165 [ legal::$0 ] 2,000,002: zp[1]:166 [ legal::diff1_a#0 ] 235,353.24: zp[1]:127 [ legal::column#0 ] 222,278.06: zp[1]:126 [ legal::row#0 ] 2,002: zp[1]:128 [ legal::return#0 ] 333.67: zp[1]:65 [ legal::return#4 ] -Uplift Scope [printf_uchar] 10,000,005.5: zp[1]:24 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] -Uplift Scope [utoa] 38,003.93: zp[2]:72 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] 30,717.36: zp[2]:69 [ utoa::value#2 utoa::value#6 utoa::value#0 ] 22,859.43: zp[1]:68 [ utoa::digit#2 utoa::digit#1 ] 20,002: zp[1]:170 [ utoa::$10 ] 15,001.5: zp[1]:71 [ utoa::started#2 utoa::started#4 ] 6,000.6: zp[2]:171 [ utoa::digit_value#0 ] 2,002: zp[1]:167 [ utoa::$11 ] 2,002: zp[2]:168 [ utoa::buffer#3 ] -Uplift Scope [printf_ulong] 36,667.33: zp[4]:130 [ printf_ulong::uvalue#0 ] -Uplift Scope [queens] 5,148: zp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 ] 2,002: zp[1]:129 [ queens::$2 ] -Uplift Scope [tod_str] 202: zp[1]:106 [ tod_str::$0 ] 202: zp[1]:107 [ tod_str::$1 ] 202: zp[1]:108 [ tod_str::$2 ] 202: zp[1]:109 [ tod_str::$3 ] 202: zp[1]:110 [ tod_str::$4 ] 202: zp[1]:111 [ tod_str::$5 ] 202: zp[1]:112 [ tod_str::$6 ] 202: zp[1]:113 [ tod_str::$7 ] 202: zp[1]:114 [ tod_str::$8 ] 202: zp[1]:115 [ tod_str::$9 ] 202: zp[1]:116 [ tod_str::$10 ] 202: zp[1]:117 [ tod_str::$11 ] 202: zp[1]:118 [ tod_str::$12 ] 202: zp[1]:119 [ tod_str::$13 ] 202: zp[1]:120 [ tod_str::$14 ] 202: zp[1]:121 [ tod_str::$15 ] 53.25: zp[1]:96 [ tod_str::tod_HOURS#0 ] 19.36: zp[1]:95 [ tod_str::tod_MIN#0 ] 11.83: zp[1]:94 [ tod_str::tod_SEC#0 ] 8.52: zp[1]:93 [ tod_str::tod_TENTHS#0 ] -Uplift Scope [tod_read] 37.33: zp[1]:125 [ tod_read::return_TENTHS#0 ] 22.4: zp[1]:124 [ tod_read::return_SEC#0 ] 16: zp[1]:123 [ tod_read::return_MIN#0 ] 12.44: zp[1]:122 [ tod_read::return_HOURS#0 ] 5.5: zp[1]:85 [ tod_read::return_TENTHS#2 ] 5.5: zp[1]:86 [ tod_read::return_SEC#2 ] 5.5: zp[1]:87 [ tod_read::return_MIN#2 ] 5.5: zp[1]:88 [ tod_read::return_HOURS#2 ] -Uplift Scope [tod_init] 37.33: zp[1]:84 [ tod_init::tod_HOURS#0 ] 22.4: zp[1]:83 [ tod_init::tod_MIN#0 ] 16: zp[1]:82 [ tod_init::tod_SEC#0 ] 12.44: zp[1]:81 [ tod_init::tod_TENTHS#0 ] -Uplift Scope [main] 5.5: zp[1]:89 [ main::tod_TENTHS#0 ] 5.5: zp[1]:90 [ main::tod_SEC#0 ] 5.5: zp[1]:91 [ main::tod_MIN#0 ] 5.5: zp[1]:92 [ main::tod_HOURS#0 ] +Uplift Scope [printf_str] 26,085,714,292.64: zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] 10,000,000,001: zp[1]:97 [ printf_str::ch#0 ] +Uplift Scope [ultoa] 378,714,289.64: zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] 307,835,718.5: zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] 228,571,430.86: zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] 200,000,002: zp[1]:115 [ ultoa::$10 ] 150,000,001.5: zp[1]:44 [ ultoa::started#2 ultoa::started#4 ] 60,000,000.6: zp[4]:116 [ ultoa::digit_value#0 ] 2,000,002: zp[1]:112 [ ultoa::$11 ] 2,000,002: zp[2]:113 [ ultoa::buffer#3 ] +Uplift Scope [printf_number_buffer] 650,000,006.5: zp[1]:27 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] 119,047,620.24: zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] 100,000,001: zp[2]:108 [ printf_number_buffer::$19 ] 35,705,211.3: zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] 10,344,827.69: zp[2]:23 [ printf_number_buffer::buffer_digits#10 ] 10,000,000.1: zp[1]:20 [ printf_number_buffer::format_min_length#3 ] 9,375,000.09: zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] 6,451,612.97: zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] 3,846,153.88: zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Uplift Scope [utoa_append] 25,055,003.5: zp[2]:78 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] 20,050,002.5: zp[1]:80 [ utoa_append::digit#2 utoa_append::digit#1 ] 3,335,000.5: zp[2]:171 [ utoa_append::sub#0 ] 20,002: zp[2]:173 [ utoa_append::return#0 ] 13,750.25: zp[2]:169 [ utoa_append::buffer#0 ] +Uplift Scope [print] 25,714,288.29: zp[1]:59 [ print::j#2 print::j#1 ] 3,000,003: zp[1]:57 [ print::i#2 print::i#1 ] 3,000,002.36: zp[1]:58 [ print::i1#2 print::i1#1 ] +Uplift Scope [legal] 7,000,007: zp[1]:71 [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] 4,600,004.6: zp[1]:70 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] 2,571,431.14: zp[1]:68 [ legal::i#10 legal::i#1 ] 2,000,002: zp[1]:161 [ legal::$0 ] 2,000,002: zp[1]:162 [ legal::diff1_a#0 ] 235,353.24: zp[1]:151 [ legal::column#0 ] 222,278.06: zp[1]:150 [ legal::row#0 ] 2,002: zp[1]:152 [ legal::return#0 ] 333.67: zp[1]:69 [ legal::return#4 ] +Uplift Scope [printf_uchar] 10,000,005.5: zp[1]:60 [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +Uplift Scope [utoa] 38,003.93: zp[2]:76 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] 30,717.36: zp[2]:73 [ utoa::value#2 utoa::value#6 utoa::value#0 ] 22,859.43: zp[1]:72 [ utoa::digit#2 utoa::digit#1 ] 20,002: zp[1]:166 [ utoa::$10 ] 15,001.5: zp[1]:75 [ utoa::started#2 utoa::started#4 ] 6,000.6: zp[2]:167 [ utoa::digit_value#0 ] 2,002: zp[1]:163 [ utoa::$11 ] 2,002: zp[2]:164 [ utoa::buffer#3 ] +Uplift Scope [printf_ulong] 75,030.5: zp[4]:16 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] +Uplift Scope [queens] 5,148: zp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 ] 2,002: zp[1]:153 [ queens::$2 ] +Uplift Scope [tod_str] 202: zp[1]:130 [ tod_str::$0 ] 202: zp[1]:131 [ tod_str::$1 ] 202: zp[1]:132 [ tod_str::$2 ] 202: zp[1]:133 [ tod_str::$3 ] 202: zp[1]:134 [ tod_str::$4 ] 202: zp[1]:135 [ tod_str::$5 ] 202: zp[1]:136 [ tod_str::$6 ] 202: zp[1]:137 [ tod_str::$7 ] 202: zp[1]:138 [ tod_str::$8 ] 202: zp[1]:139 [ tod_str::$9 ] 202: zp[1]:140 [ tod_str::$10 ] 202: zp[1]:141 [ tod_str::$11 ] 202: zp[1]:142 [ tod_str::$12 ] 202: zp[1]:143 [ tod_str::$13 ] 202: zp[1]:144 [ tod_str::$14 ] 202: zp[1]:145 [ tod_str::$15 ] 53.25: zp[1]:96 [ tod_str::tod_HOURS#0 ] 19.36: zp[1]:95 [ tod_str::tod_MIN#0 ] 11.83: zp[1]:94 [ tod_str::tod_SEC#0 ] 8.52: zp[1]:93 [ tod_str::tod_TENTHS#0 ] +Uplift Scope [tod_read] 37.33: zp[1]:149 [ tod_read::return_TENTHS#0 ] 22.4: zp[1]:148 [ tod_read::return_SEC#0 ] 16: zp[1]:147 [ tod_read::return_MIN#0 ] 12.44: zp[1]:146 [ tod_read::return_HOURS#0 ] 5.5: zp[1]:89 [ tod_read::return_TENTHS#2 ] 5.5: zp[1]:90 [ tod_read::return_SEC#2 ] 5.5: zp[1]:91 [ tod_read::return_MIN#2 ] 5.5: zp[1]:92 [ tod_read::return_HOURS#2 ] +Uplift Scope [tod_init] 37.33: zp[1]:88 [ tod_init::tod_HOURS#0 ] 22.4: zp[1]:87 [ tod_init::tod_MIN#0 ] 16: zp[1]:86 [ tod_init::tod_SEC#0 ] 12.44: zp[1]:85 [ tod_init::tod_TENTHS#0 ] Uplift Scope [RADIX] Uplift Scope [printf_format_number] Uplift Scope [printf_buffer_number] @@ -10302,225 +10404,219 @@ Uplift Scope [printf_uint] Uplift Scope [printf_string] Uplift Scope [TIME_OF_DAY] Uplift Scope [MOS6526_CIA] +Uplift Scope [main] -Uplifting [memcpy] best 1739248 combination zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] -Uplifting [memset] best 1739142 combination zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:104 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:4 [ memset::num#2 ] zp[2]:6 [ memset::str#3 ] -Uplifting [uctoa_append] best 1617139 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]:145 [ uctoa_append::sub#0 ] reg byte x [ uctoa_append::return#0 ] zp[2]:143 [ uctoa_append::buffer#0 ] -Uplifting [printf_scroll] best 1617139 combination zp[2]:102 [ printf_scroll::$4 ] -Uplifting [toupper] best 1605132 combination reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] reg byte a [ toupper::return#3 ] -Uplifting [printf_char] best 1602096 combination reg byte a [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -Uplifting [ultoa_append] best 1596093 combination zp[4]:59 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] zp[4]:157 [ ultoa_append::sub#0 ] zp[4]:161 [ ultoa_append::return#0 ] zp[2]:155 [ ultoa_append::buffer#0 ] -Uplifting [strupr] best 1590093 combination zp[2]:37 [ strupr::src#2 strupr::str#0 strupr::src#1 ] reg byte a [ strupr::$0 ] -Uplifting [strlen] best 1590093 combination zp[2]:40 [ strlen::str#3 strlen::str#1 strlen::str#0 ] zp[2]:42 [ strlen::len#2 strlen::len#1 ] zp[2]:134 [ strlen::return#2 ] -Uplifting [] best 1590093 combination zp[1]:78 [ printf_cursor_y ] zp[2]:79 [ printf_cursor_ptr ] zp[1]:77 [ printf_cursor_x ] zp[4]:17 [ count#14 count#22 ] mem[12] [ printf_buffer ] mem[4] [ TOD_ZERO ] -Uplifting [printf_padding] best 1590093 combination zp[1]:36 [ printf_padding::i#2 printf_padding::i#1 ] zp[1]:34 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] zp[1]:35 [ printf_padding::pad#7 ] -Uplifting [uctoa] best 1581087 combination zp[2]:47 [ 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]:44 [ uctoa::digit#2 uctoa::digit#1 ] zp[1]:46 [ uctoa::started#2 uctoa::started#4 ] zp[1]:142 [ uctoa::digit_value#0 ] zp[2]:140 [ uctoa::buffer#3 ] -Uplifting [printf_ln] best 1581087 combination zp[2]:98 [ printf_ln::$0 ] zp[2]:100 [ printf_ln::$1 ] -Uplifting [printf_str] best 1580967 combination zp[2]:2 [ printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 ] reg byte a [ printf_str::ch#0 ] -Uplifting [ultoa] best 1579663 combination zp[2]:57 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] zp[4]:52 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] zp[1]:51 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:151 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:148 [ ultoa::buffer#3 ] -Uplifting [printf_number_buffer] best 1579649 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:33 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:136 [ printf_number_buffer::$19 ] zp[1]:30 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] zp[2]:28 [ printf_number_buffer::buffer_digits#10 ] reg byte x [ printf_number_buffer::format_min_length#3 ] zp[1]:27 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:26 [ printf_number_buffer::format_justify_left#10 ] zp[1]:31 [ printf_number_buffer::format_upper_case#10 ] +Uplifting [memcpy] best 1739295 combination zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] +Uplifting [memset] best 1739189 combination zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:104 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:4 [ memset::num#2 ] zp[2]:6 [ memset::str#3 ] +Uplifting [uctoa_append] best 1617186 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]:159 [ uctoa_append::sub#0 ] reg byte x [ uctoa_append::return#0 ] zp[2]:157 [ uctoa_append::buffer#0 ] +Uplifting [printf_scroll] best 1617186 combination zp[2]:102 [ printf_scroll::$4 ] +Uplifting [toupper] best 1605179 combination reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] reg byte a [ toupper::return#3 ] +Uplifting [printf_char] best 1602143 combination reg byte a [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +Uplifting [ultoa_append] best 1596140 combination zp[4]:47 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] zp[4]:122 [ ultoa_append::sub#0 ] zp[4]:126 [ ultoa_append::return#0 ] zp[2]:120 [ ultoa_append::buffer#0 ] +Uplifting [strupr] best 1590140 combination zp[2]:32 [ strupr::src#2 strupr::str#0 strupr::src#1 ] reg byte a [ strupr::$0 ] +Uplifting [strlen] best 1590140 combination zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 ] zp[2]:37 [ strlen::len#2 strlen::len#1 ] zp[2]:106 [ strlen::return#2 ] +Uplifting [] best 1590140 combination zp[1]:82 [ printf_cursor_y ] zp[2]:83 [ printf_cursor_ptr ] zp[1]:81 [ printf_cursor_x ] zp[4]:53 [ count#10 count#25 ] mem[12] [ printf_buffer ] mem[4] [ TOD_ZERO ] +Uplifting [printf_padding] best 1590140 combination zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] zp[1]:30 [ printf_padding::pad#7 ] +Uplifting [uctoa] best 1581134 combination zp[2]:64 [ 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]:61 [ uctoa::digit#2 uctoa::digit#1 ] zp[1]:63 [ uctoa::started#2 uctoa::started#4 ] zp[1]:156 [ uctoa::digit_value#0 ] zp[2]:154 [ uctoa::buffer#3 ] +Uplifting [printf_ln] best 1581134 combination zp[2]:98 [ printf_ln::$0 ] zp[2]:100 [ printf_ln::$1 ] +Uplifting [printf_str] best 1581014 combination zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] reg byte a [ printf_str::ch#0 ] +Uplifting [ultoa] best 1579710 combination zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:116 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:113 [ ultoa::buffer#3 ] +Uplifting [printf_number_buffer] best 1579696 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:108 [ printf_number_buffer::$19 ] zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] zp[2]:23 [ printf_number_buffer::buffer_digits#10 ] reg byte x [ printf_number_buffer::format_min_length#3 ] zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] Limited combination testing to 100 combinations of 256 possible. -Uplifting [utoa_append] best 1579046 combination zp[2]:74 [ 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]:175 [ utoa_append::sub#0 ] zp[2]:177 [ utoa_append::return#0 ] zp[2]:173 [ utoa_append::buffer#0 ] -Uplifting [print] best 1579046 combination zp[1]:23 [ print::j#2 print::j#1 ] zp[1]:21 [ print::i#2 print::i#1 ] zp[1]:22 [ print::i1#2 print::i1#1 ] -Uplifting [legal] best 1576346 combination reg byte a [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] zp[1]:66 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] reg byte y [ legal::i#10 legal::i#1 ] reg byte x [ legal::$0 ] zp[1]:166 [ legal::diff1_a#0 ] zp[1]:127 [ legal::column#0 ] zp[1]:126 [ legal::row#0 ] zp[1]:128 [ legal::return#0 ] zp[1]:65 [ legal::return#4 ] +Uplifting [utoa_append] best 1579093 combination zp[2]:78 [ 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]:171 [ utoa_append::sub#0 ] zp[2]:173 [ utoa_append::return#0 ] zp[2]:169 [ utoa_append::buffer#0 ] +Uplifting [print] best 1579093 combination zp[1]:59 [ print::j#2 print::j#1 ] zp[1]:57 [ print::i#2 print::i#1 ] zp[1]:58 [ print::i1#2 print::i1#1 ] +Uplifting [legal] best 1576393 combination reg byte a [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] zp[1]:70 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] reg byte y [ legal::i#10 legal::i#1 ] reg byte x [ legal::$0 ] zp[1]:162 [ legal::diff1_a#0 ] zp[1]:151 [ legal::column#0 ] zp[1]:150 [ legal::row#0 ] zp[1]:152 [ legal::return#0 ] zp[1]:69 [ legal::return#4 ] Limited combination testing to 100 combinations of 82944 possible. -Uplifting [printf_uchar] best 1575743 combination reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] -Uplifting [utoa] best 1575609 combination zp[2]:72 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:69 [ utoa::value#2 utoa::value#6 utoa::value#0 ] zp[1]:68 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:171 [ utoa::digit_value#0 ] reg byte a [ utoa::$11 ] zp[2]:168 [ utoa::buffer#3 ] -Uplifting [printf_ulong] best 1575609 combination zp[4]:130 [ printf_ulong::uvalue#0 ] -Uplifting [queens] best 1575549 combination zp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 ] reg byte a [ queens::$2 ] -Uplifting [tod_read] best 1575531 combination reg byte y [ tod_read::return_TENTHS#0 ] reg byte x [ tod_read::return_SEC#0 ] reg byte a [ tod_read::return_MIN#0 ] zp[1]:122 [ tod_read::return_HOURS#0 ] zp[1]:85 [ tod_read::return_TENTHS#2 ] zp[1]:86 [ tod_read::return_SEC#2 ] zp[1]:87 [ tod_read::return_MIN#2 ] zp[1]:88 [ tod_read::return_HOURS#2 ] +Uplifting [printf_uchar] best 1575790 combination reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +Uplifting [utoa] best 1575656 combination zp[2]:76 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:73 [ utoa::value#2 utoa::value#6 utoa::value#0 ] zp[1]:72 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:167 [ utoa::digit_value#0 ] reg byte a [ utoa::$11 ] zp[2]:164 [ utoa::buffer#3 ] +Uplifting [printf_ulong] best 1575656 combination zp[4]:16 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] +Uplifting [queens] best 1575596 combination zp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 ] reg byte a [ queens::$2 ] +Uplifting [tod_read] best 1575578 combination reg byte y [ tod_read::return_TENTHS#0 ] reg byte x [ tod_read::return_SEC#0 ] reg byte a [ tod_read::return_MIN#0 ] zp[1]:146 [ tod_read::return_HOURS#0 ] zp[1]:89 [ tod_read::return_TENTHS#2 ] zp[1]:90 [ tod_read::return_SEC#2 ] zp[1]:91 [ tod_read::return_MIN#2 ] zp[1]:92 [ tod_read::return_HOURS#2 ] Limited combination testing to 100 combinations of 65536 possible. -Uplifting [tod_init] best 1575519 combination reg byte y [ tod_init::tod_HOURS#0 ] reg byte x [ tod_init::tod_MIN#0 ] zp[1]:82 [ tod_init::tod_SEC#0 ] zp[1]:81 [ tod_init::tod_TENTHS#0 ] -Uplifting [main] best 1575507 combination reg byte y [ main::tod_TENTHS#0 ] reg byte x [ main::tod_SEC#0 ] zp[1]:91 [ main::tod_MIN#0 ] zp[1]:92 [ main::tod_HOURS#0 ] -Limited combination testing to 100 combinations of 256 possible. -Uplifting [RADIX] best 1575507 combination -Uplifting [printf_format_number] best 1575507 combination -Uplifting [printf_buffer_number] best 1575507 combination -Uplifting [printf_format_string] best 1575507 combination -Uplifting [printf_cls] best 1575507 combination -Uplifting [printf_uint] best 1575507 combination -Uplifting [printf_string] best 1575507 combination -Uplifting [TIME_OF_DAY] best 1575507 combination -Uplifting [MOS6526_CIA] best 1575507 combination -Attempting to uplift remaining variables inzp[1]:145 [ uctoa_append::sub#0 ] -Uplifting [uctoa_append] best 1575507 combination zp[1]:145 [ uctoa_append::sub#0 ] -Attempting to uplift remaining variables inzp[1]:36 [ printf_padding::i#2 printf_padding::i#1 ] -Uplifting [printf_padding] best 1575507 combination zp[1]:36 [ printf_padding::i#2 printf_padding::i#1 ] -Attempting to uplift remaining variables inzp[1]:78 [ printf_cursor_y ] -Uplifting [] best 1575507 combination zp[1]:78 [ printf_cursor_y ] -Attempting to uplift remaining variables inzp[1]:77 [ printf_cursor_x ] -Uplifting [] best 1575507 combination zp[1]:77 [ printf_cursor_x ] -Attempting to uplift remaining variables inzp[1]:44 [ uctoa::digit#2 uctoa::digit#1 ] -Uplifting [uctoa] best 1575507 combination zp[1]:44 [ uctoa::digit#2 uctoa::digit#1 ] -Attempting to uplift remaining variables inzp[1]:34 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Uplifting [printf_padding] best 1575507 combination zp[1]:34 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Attempting to uplift remaining variables inzp[1]:35 [ printf_padding::pad#7 ] -Uplifting [printf_padding] best 1575507 combination zp[1]:35 [ printf_padding::pad#7 ] -Attempting to uplift remaining variables inzp[1]:46 [ uctoa::started#2 uctoa::started#4 ] -Uplifting [uctoa] best 1575507 combination zp[1]:46 [ uctoa::started#2 uctoa::started#4 ] -Attempting to uplift remaining variables inzp[1]:142 [ uctoa::digit_value#0 ] -Uplifting [uctoa] best 1575507 combination zp[1]:142 [ uctoa::digit_value#0 ] -Attempting to uplift remaining variables inzp[1]:51 [ ultoa::digit#2 ultoa::digit#1 ] -Uplifting [ultoa] best 1575507 combination zp[1]:51 [ ultoa::digit#2 ultoa::digit#1 ] -Attempting to uplift remaining variables inzp[1]:33 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Uplifting [printf_number_buffer] best 1575507 combination zp[1]:33 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Attempting to uplift remaining variables inzp[1]:30 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Uplifting [printf_number_buffer] best 1575507 combination zp[1]:30 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Attempting to uplift remaining variables inzp[1]:23 [ print::j#2 print::j#1 ] -Uplifting [print] best 1575507 combination zp[1]:23 [ print::j#2 print::j#1 ] -Attempting to uplift remaining variables inzp[1]:27 [ printf_number_buffer::format_zero_padding#10 ] -Uplifting [printf_number_buffer] best 1575507 combination zp[1]:27 [ printf_number_buffer::format_zero_padding#10 ] -Attempting to uplift remaining variables inzp[1]:26 [ printf_number_buffer::format_justify_left#10 ] -Uplifting [printf_number_buffer] best 1575507 combination zp[1]:26 [ printf_number_buffer::format_justify_left#10 ] -Attempting to uplift remaining variables inzp[1]:66 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] -Uplifting [legal] best 1575507 combination zp[1]:66 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] -Attempting to uplift remaining variables inzp[1]:31 [ printf_number_buffer::format_upper_case#10 ] -Uplifting [printf_number_buffer] best 1575507 combination zp[1]:31 [ printf_number_buffer::format_upper_case#10 ] -Attempting to uplift remaining variables inzp[1]:21 [ print::i#2 print::i#1 ] -Uplifting [print] best 1575507 combination zp[1]:21 [ print::i#2 print::i#1 ] -Attempting to uplift remaining variables inzp[1]:22 [ print::i1#2 print::i1#1 ] -Uplifting [print] best 1575507 combination zp[1]:22 [ print::i1#2 print::i1#1 ] -Attempting to uplift remaining variables inzp[1]:166 [ legal::diff1_a#0 ] -Uplifting [legal] best 1574507 combination reg byte a [ legal::diff1_a#0 ] -Attempting to uplift remaining variables inzp[1]:127 [ legal::column#0 ] -Uplifting [legal] best 1574507 combination zp[1]:127 [ legal::column#0 ] -Attempting to uplift remaining variables inzp[1]:126 [ legal::row#0 ] -Uplifting [legal] best 1574507 combination zp[1]:126 [ legal::row#0 ] -Attempting to uplift remaining variables inzp[1]:68 [ utoa::digit#2 utoa::digit#1 ] -Uplifting [utoa] best 1574507 combination zp[1]:68 [ utoa::digit#2 utoa::digit#1 ] -Attempting to uplift remaining variables inzp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 ] -Uplifting [queens] best 1574507 combination zp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 ] -Attempting to uplift remaining variables inzp[1]:128 [ legal::return#0 ] -Uplifting [legal] best 1574447 combination reg byte a [ legal::return#0 ] -Attempting to uplift remaining variables inzp[1]:65 [ legal::return#4 ] -Uplifting [legal] best 1574411 combination reg byte a [ legal::return#4 ] -Attempting to uplift remaining variables inzp[1]:106 [ tod_str::$0 ] -Uplifting [tod_str] best 1574407 combination reg byte a [ tod_str::$0 ] -Attempting to uplift remaining variables inzp[1]:107 [ tod_str::$1 ] -Uplifting [tod_str] best 1574401 combination reg byte a [ tod_str::$1 ] -Attempting to uplift remaining variables inzp[1]:108 [ tod_str::$2 ] -Uplifting [tod_str] best 1574397 combination reg byte a [ tod_str::$2 ] -Attempting to uplift remaining variables inzp[1]:109 [ tod_str::$3 ] -Uplifting [tod_str] best 1574391 combination reg byte a [ tod_str::$3 ] -Attempting to uplift remaining variables inzp[1]:110 [ tod_str::$4 ] -Uplifting [tod_str] best 1574387 combination reg byte a [ tod_str::$4 ] -Attempting to uplift remaining variables inzp[1]:111 [ tod_str::$5 ] -Uplifting [tod_str] best 1574381 combination reg byte a [ tod_str::$5 ] -Attempting to uplift remaining variables inzp[1]:112 [ tod_str::$6 ] -Uplifting [tod_str] best 1574377 combination reg byte a [ tod_str::$6 ] -Attempting to uplift remaining variables inzp[1]:113 [ tod_str::$7 ] -Uplifting [tod_str] best 1574371 combination reg byte a [ tod_str::$7 ] -Attempting to uplift remaining variables inzp[1]:114 [ tod_str::$8 ] -Uplifting [tod_str] best 1574367 combination reg byte a [ tod_str::$8 ] -Attempting to uplift remaining variables inzp[1]:115 [ tod_str::$9 ] -Uplifting [tod_str] best 1574361 combination reg byte a [ tod_str::$9 ] -Attempting to uplift remaining variables inzp[1]:116 [ tod_str::$10 ] -Uplifting [tod_str] best 1574357 combination reg byte a [ tod_str::$10 ] -Attempting to uplift remaining variables inzp[1]:117 [ tod_str::$11 ] -Uplifting [tod_str] best 1574351 combination reg byte a [ tod_str::$11 ] -Attempting to uplift remaining variables inzp[1]:118 [ tod_str::$12 ] -Uplifting [tod_str] best 1574347 combination reg byte a [ tod_str::$12 ] -Attempting to uplift remaining variables inzp[1]:119 [ tod_str::$13 ] -Uplifting [tod_str] best 1574341 combination reg byte a [ tod_str::$13 ] -Attempting to uplift remaining variables inzp[1]:120 [ tod_str::$14 ] -Uplifting [tod_str] best 1574337 combination reg byte a [ tod_str::$14 ] -Attempting to uplift remaining variables inzp[1]:121 [ tod_str::$15 ] -Uplifting [tod_str] best 1574331 combination reg byte a [ tod_str::$15 ] +Uplifting [tod_init] best 1575566 combination reg byte y [ tod_init::tod_HOURS#0 ] reg byte x [ tod_init::tod_MIN#0 ] zp[1]:86 [ tod_init::tod_SEC#0 ] zp[1]:85 [ tod_init::tod_TENTHS#0 ] +Uplifting [RADIX] best 1575566 combination +Uplifting [printf_format_number] best 1575566 combination +Uplifting [printf_buffer_number] best 1575566 combination +Uplifting [printf_format_string] best 1575566 combination +Uplifting [printf_cls] best 1575566 combination +Uplifting [printf_uint] best 1575566 combination +Uplifting [printf_string] best 1575566 combination +Uplifting [TIME_OF_DAY] best 1575566 combination +Uplifting [MOS6526_CIA] best 1575566 combination +Uplifting [main] best 1575566 combination +Attempting to uplift remaining variables inzp[1]:159 [ uctoa_append::sub#0 ] +Uplifting [uctoa_append] best 1575566 combination zp[1]:159 [ uctoa_append::sub#0 ] +Attempting to uplift remaining variables inzp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] +Uplifting [printf_padding] best 1575566 combination zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] +Attempting to uplift remaining variables inzp[1]:82 [ printf_cursor_y ] +Uplifting [] best 1575566 combination zp[1]:82 [ printf_cursor_y ] +Attempting to uplift remaining variables inzp[1]:81 [ printf_cursor_x ] +Uplifting [] best 1575566 combination zp[1]:81 [ printf_cursor_x ] +Attempting to uplift remaining variables inzp[1]:61 [ uctoa::digit#2 uctoa::digit#1 ] +Uplifting [uctoa] best 1575566 combination zp[1]:61 [ uctoa::digit#2 uctoa::digit#1 ] +Attempting to uplift remaining variables inzp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Uplifting [printf_padding] best 1575566 combination zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Attempting to uplift remaining variables inzp[1]:30 [ printf_padding::pad#7 ] +Uplifting [printf_padding] best 1575566 combination zp[1]:30 [ printf_padding::pad#7 ] +Attempting to uplift remaining variables inzp[1]:63 [ uctoa::started#2 uctoa::started#4 ] +Uplifting [uctoa] best 1575566 combination zp[1]:63 [ uctoa::started#2 uctoa::started#4 ] +Attempting to uplift remaining variables inzp[1]:156 [ uctoa::digit_value#0 ] +Uplifting [uctoa] best 1575566 combination zp[1]:156 [ uctoa::digit_value#0 ] +Attempting to uplift remaining variables inzp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] +Uplifting [ultoa] best 1575566 combination zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] +Attempting to uplift remaining variables inzp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Uplifting [printf_number_buffer] best 1575566 combination zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Attempting to uplift remaining variables inzp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Uplifting [printf_number_buffer] best 1575566 combination zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Attempting to uplift remaining variables inzp[1]:59 [ print::j#2 print::j#1 ] +Uplifting [print] best 1575566 combination zp[1]:59 [ print::j#2 print::j#1 ] +Attempting to uplift remaining variables inzp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] +Uplifting [printf_number_buffer] best 1575566 combination zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] +Attempting to uplift remaining variables inzp[1]:21 [ printf_number_buffer::format_justify_left#10 ] +Uplifting [printf_number_buffer] best 1575566 combination zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] +Attempting to uplift remaining variables inzp[1]:70 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] +Uplifting [legal] best 1575566 combination zp[1]:70 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] +Attempting to uplift remaining variables inzp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Uplifting [printf_number_buffer] best 1575566 combination zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] +Attempting to uplift remaining variables inzp[1]:57 [ print::i#2 print::i#1 ] +Uplifting [print] best 1575566 combination zp[1]:57 [ print::i#2 print::i#1 ] +Attempting to uplift remaining variables inzp[1]:58 [ print::i1#2 print::i1#1 ] +Uplifting [print] best 1575566 combination zp[1]:58 [ print::i1#2 print::i1#1 ] +Attempting to uplift remaining variables inzp[1]:162 [ legal::diff1_a#0 ] +Uplifting [legal] best 1574566 combination reg byte a [ legal::diff1_a#0 ] +Attempting to uplift remaining variables inzp[1]:151 [ legal::column#0 ] +Uplifting [legal] best 1574566 combination zp[1]:151 [ legal::column#0 ] +Attempting to uplift remaining variables inzp[1]:150 [ legal::row#0 ] +Uplifting [legal] best 1574566 combination zp[1]:150 [ legal::row#0 ] +Attempting to uplift remaining variables inzp[1]:72 [ utoa::digit#2 utoa::digit#1 ] +Uplifting [utoa] best 1574566 combination zp[1]:72 [ utoa::digit#2 utoa::digit#1 ] +Attempting to uplift remaining variables inzp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 ] +Uplifting [queens] best 1574566 combination zp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 ] +Attempting to uplift remaining variables inzp[1]:152 [ legal::return#0 ] +Uplifting [legal] best 1574506 combination reg byte a [ legal::return#0 ] +Attempting to uplift remaining variables inzp[1]:69 [ legal::return#4 ] +Uplifting [legal] best 1574470 combination reg byte a [ legal::return#4 ] +Attempting to uplift remaining variables inzp[1]:130 [ tod_str::$0 ] +Uplifting [tod_str] best 1574466 combination reg byte a [ tod_str::$0 ] +Attempting to uplift remaining variables inzp[1]:131 [ tod_str::$1 ] +Uplifting [tod_str] best 1574460 combination reg byte a [ tod_str::$1 ] +Attempting to uplift remaining variables inzp[1]:132 [ tod_str::$2 ] +Uplifting [tod_str] best 1574456 combination reg byte a [ tod_str::$2 ] +Attempting to uplift remaining variables inzp[1]:133 [ tod_str::$3 ] +Uplifting [tod_str] best 1574450 combination reg byte a [ tod_str::$3 ] +Attempting to uplift remaining variables inzp[1]:134 [ tod_str::$4 ] +Uplifting [tod_str] best 1574446 combination reg byte a [ tod_str::$4 ] +Attempting to uplift remaining variables inzp[1]:135 [ tod_str::$5 ] +Uplifting [tod_str] best 1574440 combination reg byte a [ tod_str::$5 ] +Attempting to uplift remaining variables inzp[1]:136 [ tod_str::$6 ] +Uplifting [tod_str] best 1574436 combination reg byte a [ tod_str::$6 ] +Attempting to uplift remaining variables inzp[1]:137 [ tod_str::$7 ] +Uplifting [tod_str] best 1574430 combination reg byte a [ tod_str::$7 ] +Attempting to uplift remaining variables inzp[1]:138 [ tod_str::$8 ] +Uplifting [tod_str] best 1574426 combination reg byte a [ tod_str::$8 ] +Attempting to uplift remaining variables inzp[1]:139 [ tod_str::$9 ] +Uplifting [tod_str] best 1574420 combination reg byte a [ tod_str::$9 ] +Attempting to uplift remaining variables inzp[1]:140 [ tod_str::$10 ] +Uplifting [tod_str] best 1574416 combination reg byte a [ tod_str::$10 ] +Attempting to uplift remaining variables inzp[1]:141 [ tod_str::$11 ] +Uplifting [tod_str] best 1574410 combination reg byte a [ tod_str::$11 ] +Attempting to uplift remaining variables inzp[1]:142 [ tod_str::$12 ] +Uplifting [tod_str] best 1574406 combination reg byte a [ tod_str::$12 ] +Attempting to uplift remaining variables inzp[1]:143 [ tod_str::$13 ] +Uplifting [tod_str] best 1574400 combination reg byte a [ tod_str::$13 ] +Attempting to uplift remaining variables inzp[1]:144 [ tod_str::$14 ] +Uplifting [tod_str] best 1574396 combination reg byte a [ tod_str::$14 ] +Attempting to uplift remaining variables inzp[1]:145 [ tod_str::$15 ] +Uplifting [tod_str] best 1574390 combination reg byte a [ tod_str::$15 ] Attempting to uplift remaining variables inzp[1]:96 [ tod_str::tod_HOURS#0 ] -Uplifting [tod_str] best 1574326 combination reg byte x [ tod_str::tod_HOURS#0 ] +Uplifting [tod_str] best 1574385 combination reg byte x [ tod_str::tod_HOURS#0 ] Attempting to uplift remaining variables inzp[1]:95 [ tod_str::tod_MIN#0 ] -Uplifting [tod_str] best 1574321 combination reg byte y [ tod_str::tod_MIN#0 ] -Attempting to uplift remaining variables inzp[1]:82 [ tod_init::tod_SEC#0 ] -Uplifting [tod_init] best 1574321 combination zp[1]:82 [ tod_init::tod_SEC#0 ] -Attempting to uplift remaining variables inzp[1]:81 [ tod_init::tod_TENTHS#0 ] -Uplifting [tod_init] best 1574321 combination zp[1]:81 [ tod_init::tod_TENTHS#0 ] -Attempting to uplift remaining variables inzp[1]:122 [ tod_read::return_HOURS#0 ] -Uplifting [tod_read] best 1574321 combination zp[1]:122 [ tod_read::return_HOURS#0 ] +Uplifting [tod_str] best 1574380 combination reg byte y [ tod_str::tod_MIN#0 ] +Attempting to uplift remaining variables inzp[1]:86 [ tod_init::tod_SEC#0 ] +Uplifting [tod_init] best 1574380 combination zp[1]:86 [ tod_init::tod_SEC#0 ] +Attempting to uplift remaining variables inzp[1]:85 [ tod_init::tod_TENTHS#0 ] +Uplifting [tod_init] best 1574380 combination zp[1]:85 [ tod_init::tod_TENTHS#0 ] +Attempting to uplift remaining variables inzp[1]:146 [ tod_read::return_HOURS#0 ] +Uplifting [tod_read] best 1574380 combination zp[1]:146 [ tod_read::return_HOURS#0 ] Attempting to uplift remaining variables inzp[1]:94 [ tod_str::tod_SEC#0 ] -Uplifting [tod_str] best 1574321 combination zp[1]:94 [ tod_str::tod_SEC#0 ] +Uplifting [tod_str] best 1574380 combination zp[1]:94 [ tod_str::tod_SEC#0 ] Attempting to uplift remaining variables inzp[1]:93 [ tod_str::tod_TENTHS#0 ] -Uplifting [tod_str] best 1574321 combination zp[1]:93 [ tod_str::tod_TENTHS#0 ] -Attempting to uplift remaining variables inzp[1]:85 [ tod_read::return_TENTHS#2 ] -Uplifting [tod_read] best 1574315 combination reg byte y [ tod_read::return_TENTHS#2 ] -Attempting to uplift remaining variables inzp[1]:86 [ tod_read::return_SEC#2 ] -Uplifting [tod_read] best 1574309 combination reg byte x [ tod_read::return_SEC#2 ] -Attempting to uplift remaining variables inzp[1]:87 [ tod_read::return_MIN#2 ] -Uplifting [tod_read] best 1574309 combination zp[1]:87 [ tod_read::return_MIN#2 ] -Attempting to uplift remaining variables inzp[1]:88 [ tod_read::return_HOURS#2 ] -Uplifting [tod_read] best 1574309 combination zp[1]:88 [ tod_read::return_HOURS#2 ] -Attempting to uplift remaining variables inzp[1]:91 [ main::tod_MIN#0 ] -Uplifting [main] best 1574309 combination zp[1]:91 [ main::tod_MIN#0 ] -Attempting to uplift remaining variables inzp[1]:92 [ main::tod_HOURS#0 ] -Uplifting [main] best 1574305 combination reg byte a [ main::tod_HOURS#0 ] -Coalescing zero page register [ zp[2]:79 [ printf_cursor_ptr ] ] with [ zp[2]:102 [ printf_scroll::$4 ] ] - score: 2 -Coalescing zero page register [ zp[2]:2 [ printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 ] ] with [ zp[2]:28 [ printf_number_buffer::buffer_digits#10 ] ] - score: 1 +Uplifting [tod_str] best 1574380 combination zp[1]:93 [ tod_str::tod_TENTHS#0 ] +Attempting to uplift remaining variables inzp[1]:89 [ tod_read::return_TENTHS#2 ] +Uplifting [tod_read] best 1574374 combination reg byte y [ tod_read::return_TENTHS#2 ] +Attempting to uplift remaining variables inzp[1]:90 [ tod_read::return_SEC#2 ] +Uplifting [tod_read] best 1574368 combination reg byte x [ tod_read::return_SEC#2 ] +Attempting to uplift remaining variables inzp[1]:91 [ tod_read::return_MIN#2 ] +Uplifting [tod_read] best 1574368 combination zp[1]:91 [ tod_read::return_MIN#2 ] +Attempting to uplift remaining variables inzp[1]:92 [ tod_read::return_HOURS#2 ] +Uplifting [tod_read] best 1574364 combination reg byte a [ tod_read::return_HOURS#2 ] +Coalescing zero page register [ zp[4]:16 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] ] with [ zp[4]:53 [ count#10 count#25 ] ] - score: 2 +Coalescing zero page register [ zp[2]:83 [ printf_cursor_ptr ] ] with [ zp[2]:102 [ printf_scroll::$4 ] ] - score: 2 +Coalescing zero page register [ zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 ] ] with [ zp[2]:23 [ printf_number_buffer::buffer_digits#10 ] ] - score: 1 Coalescing zero page register [ zp[2]:4 [ memset::num#2 ] ] with [ zp[2]:104 [ memset::end#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:6 [ memset::str#3 ] ] with [ zp[2]:9 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 -Coalescing zero page register [ zp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 ] ] with [ zp[1]:126 [ legal::row#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:17 [ count#14 count#22 ] ] with [ zp[4]:130 [ printf_ulong::uvalue#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:42 [ strlen::len#2 strlen::len#1 ] ] with [ zp[2]:134 [ strlen::return#2 ] ] - score: 1 -Coalescing zero page register [ zp[2]:47 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] ] with [ zp[2]:140 [ uctoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:47 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 ] ] with [ zp[2]:143 [ uctoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:52 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] ] with [ zp[4]:59 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] - score: 1 -Coalescing zero page register [ zp[4]:52 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] with [ zp[4]:161 [ ultoa_append::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:57 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] ] with [ zp[2]:148 [ ultoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:57 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ] ] with [ zp[2]:155 [ ultoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:69 [ utoa::value#2 utoa::value#6 utoa::value#0 ] ] with [ zp[2]:74 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:69 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] with [ zp[2]:177 [ utoa_append::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:72 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] ] with [ zp[2]:168 [ utoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:72 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 ] ] with [ zp[2]:173 [ utoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:79 [ printf_cursor_ptr printf_scroll::$4 ] ] with [ zp[2]:98 [ printf_ln::$0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:79 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 ] ] with [ zp[2]:100 [ printf_ln::$1 ] ] - score: 1 -Coalescing zero page register [ zp[1]:87 [ tod_read::return_MIN#2 ] ] with [ zp[1]:91 [ main::tod_MIN#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:88 [ tod_read::return_HOURS#2 ] ] with [ zp[1]:122 [ tod_read::return_HOURS#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:142 [ uctoa::digit_value#0 ] ] with [ zp[1]:145 [ uctoa_append::sub#0 ] ] - score: 1 -Coalescing zero page register [ zp[4]:151 [ ultoa::digit_value#0 ] ] with [ zp[4]:157 [ ultoa_append::sub#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:171 [ utoa::digit_value#0 ] ] with [ zp[2]:175 [ utoa_append::sub#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:42 [ strlen::len#2 strlen::len#1 strlen::return#2 ] ] with [ zp[2]:136 [ printf_number_buffer::$19 ] ] - score: 1 +Coalescing zero page register [ zp[2]:37 [ strlen::len#2 strlen::len#1 ] ] with [ zp[2]:106 [ strlen::return#2 ] ] - score: 1 +Coalescing zero page register [ zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] ] with [ zp[4]:47 [ ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] - score: 1 +Coalescing zero page register [ zp[4]:40 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ] ] with [ zp[4]:126 [ ultoa_append::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] ] with [ zp[2]:113 [ ultoa::buffer#3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ] ] with [ zp[2]:120 [ ultoa_append::buffer#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 ] ] with [ zp[1]:150 [ legal::row#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:64 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] ] with [ zp[2]:154 [ uctoa::buffer#3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:64 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 ] ] with [ zp[2]:157 [ uctoa_append::buffer#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:73 [ utoa::value#2 utoa::value#6 utoa::value#0 ] ] with [ zp[2]:78 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] - score: 1 +Coalescing zero page register [ zp[2]:73 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] with [ zp[2]:173 [ utoa_append::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:76 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] ] with [ zp[2]:164 [ utoa::buffer#3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:76 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 ] ] with [ zp[2]:169 [ utoa_append::buffer#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:83 [ printf_cursor_ptr printf_scroll::$4 ] ] with [ zp[2]:98 [ printf_ln::$0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:83 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 ] ] with [ zp[2]:100 [ printf_ln::$1 ] ] - score: 1 +Coalescing zero page register [ zp[4]:116 [ ultoa::digit_value#0 ] ] with [ zp[4]:122 [ ultoa_append::sub#0 ] ] - score: 1 +Coalescing zero page register [ zp[1]:156 [ uctoa::digit_value#0 ] ] with [ zp[1]:159 [ uctoa_append::sub#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:167 [ utoa::digit_value#0 ] ] with [ zp[2]:171 [ utoa_append::sub#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:37 [ strlen::len#2 strlen::len#1 strlen::return#2 ] ] with [ zp[2]:108 [ printf_number_buffer::$19 ] ] - score: 1 Coalescing zero page register [ zp[2]:11 [ memcpy::src#2 memcpy::src#1 ] ] with [ zp[2]:4 [ memset::num#2 memset::end#0 ] ] Coalescing zero page register [ zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 ] ] with [ zp[2]:6 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] -Coalescing zero page register [ zp[2]:40 [ strlen::str#3 strlen::str#1 strlen::str#0 ] ] with [ zp[2]:37 [ strupr::src#2 strupr::str#0 strupr::src#1 ] ] -Coalescing zero page register [ zp[1]:44 [ uctoa::digit#2 uctoa::digit#1 ] ] with [ zp[1]:26 [ printf_number_buffer::format_justify_left#10 ] ] -Coalescing zero page register [ zp[1]:46 [ uctoa::started#2 uctoa::started#4 ] ] with [ zp[1]:27 [ printf_number_buffer::format_zero_padding#10 ] ] -Coalescing zero page register [ zp[2]:47 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] ] with [ zp[2]:2 [ printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] ] -Coalescing zero page register [ zp[1]:51 [ ultoa::digit#2 ultoa::digit#1 ] ] with [ zp[1]:30 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] ] -Coalescing zero page register [ zp[2]:57 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 ] ] with [ zp[2]:42 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] -Coalescing zero page register [ zp[1]:66 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] ] with [ zp[1]:21 [ print::i#2 print::i#1 ] ] -Coalescing zero page register [ zp[1]:68 [ utoa::digit#2 utoa::digit#1 ] ] with [ zp[1]:16 [ queens::row#10 queens::row#1 queens::row#2 legal::row#0 ] ] -Coalescing zero page register [ zp[1]:81 [ tod_init::tod_TENTHS#0 ] ] with [ zp[1]:22 [ print::i1#2 print::i1#1 ] ] -Coalescing zero page register [ zp[1]:82 [ tod_init::tod_SEC#0 ] ] with [ zp[1]:23 [ print::j#2 print::j#1 ] ] -Coalescing zero page register [ zp[1]:87 [ tod_read::return_MIN#2 main::tod_MIN#0 ] ] with [ zp[1]:31 [ printf_number_buffer::format_upper_case#10 ] ] -Coalescing zero page register [ zp[1]:88 [ tod_read::return_HOURS#2 tod_read::return_HOURS#0 ] ] with [ zp[1]:33 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] -Coalescing zero page register [ zp[1]:93 [ tod_str::tod_TENTHS#0 ] ] with [ zp[1]:34 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] ] -Coalescing zero page register [ zp[1]:94 [ tod_str::tod_SEC#0 ] ] with [ zp[1]:35 [ printf_padding::pad#7 ] ] -Coalescing zero page register [ zp[1]:127 [ legal::column#0 ] ] with [ zp[1]:36 [ printf_padding::i#2 printf_padding::i#1 ] ] -Coalescing zero page register [ zp[2]:40 [ strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 ] ] with [ zp[2]:11 [ memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] ] -Coalescing zero page register [ zp[2]:57 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] with [ zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] -Coalescing zero page register [ zp[2]:69 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 ] ] with [ zp[2]:47 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] ] -Coalescing zero page register [ zp[1]:82 [ tod_init::tod_SEC#0 print::j#2 print::j#1 ] ] with [ zp[1]:44 [ uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_justify_left#10 ] ] -Coalescing zero page register [ zp[1]:142 [ uctoa::digit_value#0 uctoa_append::sub#0 ] ] with [ zp[1]:51 [ ultoa::digit#2 ultoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] ] -Coalescing zero page register [ zp[2]:72 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ] ] with [ zp[2]:40 [ strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] ] -Coalescing zero page register [ zp[2]:171 [ utoa::digit_value#0 utoa_append::sub#0 ] ] with [ zp[2]:57 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] -Allocated (was zp[4]:17) zp[4]:2 [ count#14 count#22 printf_ulong::uvalue#0 ] -Allocated (was zp[1]:46) zp[1]:6 [ uctoa::started#2 uctoa::started#4 printf_number_buffer::format_zero_padding#10 ] -Allocated (was zp[4]:52) zp[4]:7 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ] -Allocated (was zp[1]:66) zp[1]:11 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 print::i#2 print::i#1 ] -Allocated (was zp[1]:68) zp[1]:12 [ utoa::digit#2 utoa::digit#1 queens::row#10 queens::row#1 queens::row#2 legal::row#0 ] -Allocated (was zp[2]:69) zp[2]:13 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] -Allocated (was zp[2]:72) zp[2]:15 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] -Allocated (was zp[1]:77) zp[1]:17 [ printf_cursor_x ] -Allocated (was zp[1]:78) zp[1]:18 [ printf_cursor_y ] -Allocated (was zp[2]:79) zp[2]:19 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] -Allocated (was zp[1]:81) zp[1]:21 [ tod_init::tod_TENTHS#0 print::i1#2 print::i1#1 ] -Allocated (was zp[1]:82) zp[1]:22 [ tod_init::tod_SEC#0 print::j#2 print::j#1 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_justify_left#10 ] -Allocated (was zp[1]:87) zp[1]:23 [ tod_read::return_MIN#2 main::tod_MIN#0 printf_number_buffer::format_upper_case#10 ] -Allocated (was zp[1]:88) zp[1]:24 [ tod_read::return_HOURS#2 tod_read::return_HOURS#0 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Allocated (was zp[1]:93) zp[1]:25 [ tod_str::tod_TENTHS#0 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Allocated (was zp[1]:94) zp[1]:26 [ tod_str::tod_SEC#0 printf_padding::pad#7 ] -Allocated (was zp[1]:127) zp[1]:27 [ legal::column#0 printf_padding::i#2 printf_padding::i#1 ] -Allocated (was zp[1]:142) zp[1]:28 [ uctoa::digit_value#0 uctoa_append::sub#0 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Allocated (was zp[4]:151) zp[4]:29 [ ultoa::digit_value#0 ultoa_append::sub#0 ] -Allocated (was zp[2]:171) zp[2]:33 [ utoa::digit_value#0 utoa_append::sub#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] +Coalescing zero page register [ zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 ] ] with [ zp[2]:32 [ strupr::src#2 strupr::str#0 strupr::src#1 ] ] +Coalescing zero page register [ zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 ] ] with [ zp[1]:21 [ printf_number_buffer::format_justify_left#10 ] ] +Coalescing zero page register [ zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 ] ] with [ zp[2]:2 [ printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] ] +Coalescing zero page register [ zp[1]:59 [ print::j#2 print::j#1 ] ] with [ zp[1]:22 [ printf_number_buffer::format_zero_padding#10 ] ] +Coalescing zero page register [ zp[1]:61 [ uctoa::digit#2 uctoa::digit#1 ] ] with [ zp[1]:25 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] ] +Coalescing zero page register [ zp[1]:63 [ uctoa::started#2 uctoa::started#4 ] ] with [ zp[1]:26 [ printf_number_buffer::format_upper_case#10 ] ] +Coalescing zero page register [ zp[2]:64 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] ] with [ zp[2]:37 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] +Coalescing zero page register [ zp[1]:70 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ] ] with [ zp[1]:28 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] +Coalescing zero page register [ zp[1]:72 [ utoa::digit#2 utoa::digit#1 ] ] with [ zp[1]:29 [ printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] ] +Coalescing zero page register [ zp[1]:85 [ tod_init::tod_TENTHS#0 ] ] with [ zp[1]:30 [ printf_padding::pad#7 ] ] +Coalescing zero page register [ zp[1]:86 [ tod_init::tod_SEC#0 ] ] with [ zp[1]:31 [ printf_padding::i#2 printf_padding::i#1 ] ] +Coalescing zero page register [ zp[1]:91 [ tod_read::return_MIN#2 ] ] with [ zp[1]:52 [ queens::row#10 queens::row#1 queens::row#2 legal::row#0 ] ] +Coalescing zero page register [ zp[1]:93 [ tod_str::tod_TENTHS#0 ] ] with [ zp[1]:57 [ print::i#2 print::i#1 ] ] +Coalescing zero page register [ zp[1]:94 [ tod_str::tod_SEC#0 ] ] with [ zp[1]:58 [ print::i1#2 print::i1#1 ] ] +Coalescing zero page register [ zp[1]:151 [ legal::column#0 ] ] with [ zp[1]:146 [ tod_read::return_HOURS#0 ] ] +Coalescing zero page register [ zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 ] ] with [ zp[2]:11 [ memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] ] +Coalescing zero page register [ zp[2]:64 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 ] ] with [ zp[2]:13 [ memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] +Coalescing zero page register [ zp[2]:73 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 ] ] with [ zp[2]:45 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] ] +Coalescing zero page register [ zp[1]:151 [ legal::column#0 tod_read::return_HOURS#0 ] ] with [ zp[1]:39 [ ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_justify_left#10 ] ] +Coalescing zero page register [ zp[1]:156 [ uctoa::digit_value#0 uctoa_append::sub#0 ] ] with [ zp[1]:70 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] ] +Coalescing zero page register [ zp[2]:76 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ] ] with [ zp[2]:35 [ strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] ] +Coalescing zero page register [ zp[2]:167 [ utoa::digit_value#0 utoa_append::sub#0 ] ] with [ zp[2]:64 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] +Allocated (was zp[4]:16) zp[4]:2 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 count#10 count#25 ] +Allocated (was zp[4]:40) zp[4]:6 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ] +Allocated (was zp[1]:59) zp[1]:10 [ print::j#2 print::j#1 printf_number_buffer::format_zero_padding#10 ] +Allocated (was zp[1]:61) zp[1]:11 [ uctoa::digit#2 uctoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Allocated (was zp[1]:63) zp[1]:12 [ uctoa::started#2 uctoa::started#4 printf_number_buffer::format_upper_case#10 ] +Allocated (was zp[1]:72) zp[1]:13 [ utoa::digit#2 utoa::digit#1 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Allocated (was zp[2]:73) zp[2]:14 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] +Allocated (was zp[2]:76) zp[2]:16 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] +Allocated (was zp[1]:81) zp[1]:18 [ printf_cursor_x ] +Allocated (was zp[1]:82) zp[1]:19 [ printf_cursor_y ] +Allocated (was zp[2]:83) zp[2]:20 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] +Allocated (was zp[1]:85) zp[1]:22 [ tod_init::tod_TENTHS#0 printf_padding::pad#7 ] +Allocated (was zp[1]:86) zp[1]:23 [ tod_init::tod_SEC#0 printf_padding::i#2 printf_padding::i#1 ] +Allocated (was zp[1]:91) zp[1]:24 [ tod_read::return_MIN#2 queens::row#10 queens::row#1 queens::row#2 legal::row#0 ] +Allocated (was zp[1]:93) zp[1]:25 [ tod_str::tod_TENTHS#0 print::i#2 print::i#1 ] +Allocated (was zp[1]:94) zp[1]:26 [ tod_str::tod_SEC#0 print::i1#2 print::i1#1 ] +Allocated (was zp[4]:116) zp[4]:27 [ ultoa::digit_value#0 ultoa_append::sub#0 ] +Allocated (was zp[1]:151) zp[1]:31 [ legal::column#0 tod_read::return_HOURS#0 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_justify_left#10 ] +Allocated (was zp[1]:156) zp[1]:32 [ uctoa::digit_value#0 uctoa_append::sub#0 legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Allocated (was zp[2]:167) zp[2]:33 [ utoa::digit_value#0 utoa_append::sub#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -10547,9 +10643,9 @@ ASSEMBLER BEFORE OPTIMIZATION .const OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 .const OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - .label printf_cursor_x = $11 - .label printf_cursor_y = $12 - .label printf_cursor_ptr = $13 + .label printf_cursor_x = $12 + .label printf_cursor_y = $13 + .label printf_cursor_ptr = $14 // The number of found solutions .label count = 2 // @begin @@ -10587,9 +10683,8 @@ __bend_from___b2: __bend: // main main: { - .label tod_MIN = $17 // [8] call printf_cls - // [365] phi from main to printf_cls [phi:main->printf_cls] + // [367] phi from main to printf_cls [phi:main->printf_cls] printf_cls_from_main: jsr printf_cls // [9] phi from main to main::@1 [phi:main->main::@1] @@ -10598,9 +10693,9 @@ main: { // main::@1 __b1: // [10] call printf_str - // [46] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [44] phi from main::@1 to printf_str [phi:main::@1->printf_str] printf_str_from___b1: - // [46] phi (byte*) printf_str::str#13 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 lda #str @@ -10612,9 +10707,9 @@ main: { // main::@2 __b2: // [12] call printf_str - // [46] phi from main::@2 to printf_str [phi:main::@2->printf_str] + // [44] phi from main::@2 to printf_str [phi:main::@2->printf_str] printf_str_from___b2: - // [46] phi (byte*) printf_str::str#13 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 lda #str1 @@ -10626,7 +10721,7 @@ main: { // main::@3 __b3: // [14] call printf_uint - // [331] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] + // [333] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] printf_uint_from___b3: jsr printf_uint jmp __b4 @@ -10650,7 +10745,7 @@ main: { // main::@5 __b5: // [21] call queens - // [128] phi from main::@5 to queens [phi:main::@5->queens] + // [230] phi from main::@5 to queens [phi:main::@5->queens] queens_from___b5: jsr queens // [22] phi from main::@5 to main::@6 [phi:main::@5->main::@6] @@ -10664,147 +10759,160 @@ main: { // [25] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 // [26] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 -- vbuz1=vbuaa sta.z tod_read.return_MIN - // [27] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 + // [27] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 -- vbuaa=vbuz1 + lda.z tod_read.return_HOURS jmp __b7 // main::@7 __b7: - // [28] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 - // [29] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 - // [30] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 - // [31] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuaa=vbuz1 - lda.z tod_read.return_HOURS - // [32] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 -- vbuz1=vbuyy + // [28] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 -- vbuz1=vbuyy sty.z tod_str.tod_TENTHS - // [33] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 -- vbuz1=vbuxx + // [29] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 -- vbuz1=vbuxx stx.z tod_str.tod_SEC - // [34] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 -- vbuyy=vbuz1 - ldy.z tod_MIN - // [35] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 -- vbuxx=vbuaa + // [30] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 -- vbuyy=vbuz1 + ldy.z tod_read.return_MIN + // [31] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuxx=vbuaa tax - // [36] call tod_str + // [32] call tod_str jsr tod_str - // [37] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [33] phi from main::@7 to main::@8 [phi:main::@7->main::@8] __b8_from___b7: jmp __b8 // main::@8 __b8: - // [38] call printf_str - // [46] phi from main::@8 to printf_str [phi:main::@8->printf_str] + // [34] call printf_str + // [44] phi from main::@8 to printf_str [phi:main::@8->printf_str] printf_str_from___b8: - // [46] phi (byte*) printf_str::str#13 = (const byte*) main::str2 [phi:main::@8->printf_str#0] -- pbuz1=pbuc1 + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str2 [phi:main::@8->printf_str#0] -- pbuz1=pbuc1 lda #str2 sta.z printf_str.str+1 jsr printf_str - // [39] phi from main::@8 to main::@9 [phi:main::@8->main::@9] - __b9_from___b8: jmp __b9 // main::@9 __b9: + // [35] (dword) printf_ulong::uvalue#0 ← (dword) count#10 + // [36] call printf_ulong + // [100] phi from main::@9 to printf_ulong [phi:main::@9->printf_ulong] + printf_ulong_from___b9: + // [100] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#0 [phi:main::@9->printf_ulong#0] -- register_copy + jsr printf_ulong + // [37] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + __b10_from___b9: + jmp __b10 + // main::@10 + __b10: + // [38] call printf_str + // [44] phi from main::@10 to printf_str [phi:main::@10->printf_str] + printf_str_from___b10: + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str3 [phi:main::@10->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + // [39] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + __b11_from___b10: + jmp __b11 + // main::@11 + __b11: // [40] call printf_string - // [42] phi from main::@9 to printf_string [phi:main::@9->printf_string] - printf_string_from___b9: + // [96] phi from main::@11 to printf_string [phi:main::@11->printf_string] + printf_string_from___b11: jsr printf_string + // [41] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + __b12_from___b11: + jmp __b12 + // main::@12 + __b12: + // [42] call printf_str + // [44] phi from main::@12 to printf_str [phi:main::@12->printf_str] + printf_str_from___b12: + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str4 [phi:main::@12->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str jmp __breturn // main::@return __breturn: - // [41] return + // [43] return rts str: .text " - n queens problem using backtracking -" .byte 0 str1: .text @"\nnumber of queens:" .byte 0 - str2: .text @"\ntime: " + str2: .text @"\nsolutions: " + .byte 0 + str3: .text " time: " + .byte 0 + str4: .text @".\n" .byte 0 -} - // printf_string -// Print a string value using a specific format -// Handles justification and min length -printf_string: { - // [43] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] - __b1_from_printf_string: - jmp __b1 - // printf_string::@1 - __b1: - // [44] call printf_str - // [46] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] - printf_str_from___b1: - // [46] phi (byte*) printf_str::str#13 = (const byte*) tod_buffer [phi:printf_string::@1->printf_str#0] -- pbuz1=pbuc1 - lda #tod_buffer - sta.z printf_str.str+1 - jsr printf_str - jmp __breturn - // printf_string::@return - __breturn: - // [45] return - rts } // printf_str // Print a zero-terminated string // Handles escape codes such as newline -// printf_str(byte* zp($d) str) +// printf_str(byte* zp($e) str) printf_str: { - .label str = $d - // [47] 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] + .label str = $e + // [45] 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___b4: __b1_from___b5: - // [47] phi (byte*) printf_str::str#11 = (byte*) printf_str::str#13 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy + // [45] phi (byte*) printf_str::str#13 = (byte*) printf_str::str#15 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy jmp __b1 // printf_str::@1 __b1: jmp __b2 // printf_str::@2 __b2: - // [48] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#11) -- vbuaa=_deref_pbuz1 + // [46] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [49] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#11 -- pbuz1=_inc_pbuz1 + // [47] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [50] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuaa_neq_0_then_la1 + // [48] 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: - // [51] return + // [49] return rts // printf_str::@3 __b3: - // [52] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuaa_eq_vbuc1_then_la1 + // [50] 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: - // [53] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 - // [54] call printf_char - // [89] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + // [51] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + // [52] call printf_char + // [87] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] printf_char_from___b5: - // [89] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#1 [phi:printf_str::@5->printf_char#0] -- register_copy + // [87] 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 - // [55] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + // [53] 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: - // [56] call printf_ln + // [54] call printf_ln jsr printf_ln jmp __b1_from___b4 } // printf_ln // Print a newline printf_ln: { - .label __0 = $13 - .label __1 = $13 - // [57] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz1_minus_vbuz2 + .label __0 = $14 + .label __1 = $14 + // [55] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz1_minus_vbuz2 sec lda.z __0 sbc.z printf_cursor_x @@ -10812,7 +10920,7 @@ printf_ln: { bcs !+ dec.z __0+1 !: - // [58] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [56] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z __1 @@ -10820,53 +10928,53 @@ printf_ln: { bcc !+ inc.z __1+1 !: - // [59] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 - // [60] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [57] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 + // [58] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [61] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [59] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y - // [62] call printf_scroll + // [60] call printf_scroll jsr printf_scroll jmp __breturn // printf_ln::@return __breturn: - // [63] return + // [61] return rts } // printf_scroll // Scroll the entire screen if the cursor is on the last line printf_scroll: { - .label __4 = $13 - // [64] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 + .label __4 = $14 + // [62] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z printf_cursor_y bne __breturn - // [65] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] + // [63] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] __b1_from_printf_scroll: jmp __b1 // printf_scroll::@1 __b1: - // [66] call memcpy - // [82] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] + // [64] call memcpy + // [80] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] memcpy_from___b1: jsr memcpy - // [67] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] + // [65] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] __b2_from___b1: jmp __b2 // printf_scroll::@2 __b2: - // [68] call memset - // [73] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] + // [66] call memset + // [71] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] memset_from___b2: - // [73] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuxx=vbuc1 + // [71] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [73] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 + // [71] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 lda #<$400+$28*$19-$28 sta.z memset.str lda #>$400+$28*$19-$28 sta.z memset.str+1 - // [73] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 + // [71] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 lda #<$28 sta.z memset.num lda #>$28 @@ -10875,7 +10983,7 @@ printf_scroll: { jmp __b3 // printf_scroll::@3 __b3: - // [69] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 + // [67] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 lda.z __4 sec sbc #<$28 @@ -10883,24 +10991,24 @@ printf_scroll: { lda.z __4+1 sbc #>$28 sta.z __4+1 - // [70] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 - // [71] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 + // [68] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 + // [69] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 dec.z printf_cursor_y jmp __breturn // printf_scroll::@return __breturn: - // [72] return + // [70] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($21) str, byte register(X) c, word zp($f) num) +// memset(void* zp($21) str, byte register(X) c, word zp($10) num) memset: { - .label end = $f + .label end = $10 .label dst = $21 - .label num = $f + .label num = $10 .label str = $21 - // [74] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 + // [72] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -10909,7 +11017,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [75] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [73] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 lda.z end clc adc.z str @@ -10917,15 +11025,15 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [76] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 - // [77] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [74] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 + // [75] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: - // [77] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [75] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: - // [78] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [76] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -10935,15 +11043,15 @@ memset: { jmp __breturn // memset::@return __breturn: - // [79] return + // [77] return rts // memset::@3 __b3: - // [80] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuxx + // [78] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y - // [81] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + // [79] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -10959,15 +11067,15 @@ memcpy: { .const num = $28*$19-$28 .label src_end = source+num .label dst = $21 - .label src = $f - // [83] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] + .label src = $10 + // [81] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] __b1_from_memcpy: - // [83] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 + // [81] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 lda #destination sta.z dst+1 - // [83] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 + // [81] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 lda #source @@ -10975,7 +11083,7 @@ memcpy: { jmp __b1 // memcpy::@1 __b1: - // [84] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 + // [82] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z src+1 cmp #>src_end bne __b2 @@ -10985,29 +11093,29 @@ memcpy: { jmp __breturn // memcpy::@return __breturn: - // [85] return + // [83] return rts // memcpy::@2 __b2: - // [86] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 + // [84] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y ldy #0 sta (dst),y - // [87] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 + // [85] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [88] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 + // [86] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [83] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] + // [81] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] __b1_from___b2: - // [83] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy - // [83] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy + // [81] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy + // [81] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy jmp __b1 } // printf_char @@ -11015,782 +11123,403 @@ memcpy: { // If the end of the screen is reached scroll it up one char and place the cursor at the // printf_char(byte register(A) ch) printf_char: { - // [90] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuaa + // [88] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 sta (printf_cursor_ptr),y - // [91] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 + // [89] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 inc.z printf_cursor_ptr bne !+ inc.z printf_cursor_ptr+1 !: - // [92] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 + // [90] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 inc.z printf_cursor_x - // [93] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 + // [91] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z printf_cursor_x bne __breturn jmp __b1 // printf_char::@1 __b1: - // [94] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [92] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [95] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [93] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y - // [96] call printf_scroll + // [94] call printf_scroll jsr printf_scroll jmp __breturn // printf_char::@return __breturn: - // [97] return + // [95] return rts } - // tod_str -// Convert time of day to a human-readable string "hh:mm:ss:10" -// tod_str(byte zp($19) tod_TENTHS, byte zp($1a) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) -tod_str: { - .label tod_TENTHS = $19 - .label tod_SEC = $1a - // [98] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuaa=vbuxx_ror_4 - txa - lsr - lsr - lsr - lsr - // [99] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // [100] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuaa - sta tod_buffer - // [101] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 - txa - and #$f - // [102] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // [103] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuaa - sta tod_buffer+1 - // [104] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuaa=vbuyy_ror_4 - tya - lsr - lsr - lsr - lsr - // [105] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // [106] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuaa - sta tod_buffer+3 - // [107] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 - tya - and #$f - // [108] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // [109] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuaa - sta tod_buffer+4 - // [110] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 - lda.z tod_SEC - lsr - lsr - lsr - lsr - // [111] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // [112] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuaa - sta tod_buffer+6 - // [113] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 - lda #$f - and.z tod_SEC - // [114] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // [115] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuaa - sta tod_buffer+7 - // [116] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 - lda.z tod_TENTHS - lsr - lsr - lsr - lsr - // [117] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // [118] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuaa - sta tod_buffer+9 - // [119] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 - lda #$f - and.z tod_TENTHS - // [120] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // [121] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuaa - sta tod_buffer+$a - jmp __breturn - // tod_str::@return - __breturn: - // [122] return - rts -} - // tod_read -// Read time of day -tod_read: { - .label return_HOURS = $18 - .label return_MIN = $17 - // [123] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 - // Reading sequence is important. TOD latches on reading hours until 10ths is read. - lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS - sta.z return_HOURS - // [124] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 - lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - // [125] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 - ldx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - // [126] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 - ldy CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS - jmp __breturn - // tod_read::@return - __breturn: - // [127] return - rts -} - // queens -// Generates all valid placements of queens on a NxN board without recursion -// Works exactly like the recursive solution by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below -// and then moving on to generating all legal placements on the rows above. -// In practice this works like a depth first tree search where the level in the tree is the row on the board and each branch in the tree is the legal placement of a queen on that row. -// The solution uses the board itself as a "cursor" moving through all possibilities -// When all columns on a row is exhausted move back down to the lower level and move forward one position until we are done with the last position on the first row -queens: { - // The current row where the queen is moving - .label row = $c - // [129] phi from queens to queens::@1 [phi:queens->queens::@1] - __b1_from_queens: - // [129] phi (dword) count#14 = (dword) 0 [phi:queens->queens::@1#0] -- vduz1=vduc1 - lda #<0 - sta.z count - lda #>0 - sta.z count+1 - lda #<0>>$10 - sta.z count+2 - lda #>0>>$10 - sta.z count+3 - // [129] phi (byte) queens::row#10 = (byte) 1 [phi:queens->queens::@1#1] -- vbuz1=vbuc1 - lda #1 - sta.z row + // printf_string +// Print a string value using a specific format +// Handles justification and min length +printf_string: { + // [97] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + __b1_from_printf_string: jmp __b1 - // [129] phi from queens::@4 queens::@7 queens::@8 queens::@9 to queens::@1 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1] - __b1_from___b4: - __b1_from___b7: - __b1_from___b8: - __b1_from___b9: - // [129] phi (dword) count#14 = (dword) count#22 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#0] -- register_copy - // [129] phi (byte) queens::row#10 = (byte) queens::row#10 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#1] -- register_copy - jmp __b1 - // queens::@1 + // printf_string::@1 __b1: - jmp __b2 - // queens::@2 - __b2: - // [130] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z row - inc board,x - // [131] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 -- pbuc1_derefidx_vbuz1_eq_vbuc2_then_la1 - ldy.z row - lda board,y - cmp #8+1 - beq __b3 - jmp __b5 - // queens::@5 - __b5: - // [132] (byte) legal::row#0 ← (byte) queens::row#10 - // [133] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z row - lda board,y - sta.z legal.column - // [134] call legal - // [306] phi from queens::@5 to legal [phi:queens::@5->legal] - legal_from___b5: - jsr legal - // [135] (byte) legal::return#0 ← (byte) legal::return#4 - jmp __b9 - // queens::@9 - __b9: - // [136] (byte~) queens::$2 ← (byte) legal::return#0 - // [137] if((byte) 0==(byte~) queens::$2) goto queens::@1 -- vbuc1_eq_vbuaa_then_la1 - cmp #0 - beq __b1_from___b9 - jmp __b6 - // queens::@6 - __b6: - // [138] if((byte) queens::row#10==(byte) 8) goto queens::@4 -- vbuz1_eq_vbuc1_then_la1 - // position is legal - move up to the next row - lda #8 - cmp.z row - beq __b4 - jmp __b7 - // queens::@7 - __b7: - // [139] (byte) queens::row#1 ← ++ (byte) queens::row#10 -- vbuz1=_inc_vbuz1 - inc.z row - jmp __b1_from___b7 - // queens::@4 - __b4: - // [140] (dword) count#22 ← ++ (dword) count#14 -- vduz1=_inc_vduz1 - inc.z count - bne !+ - inc.z count+1 - bne !+ - inc.z count+2 - bne !+ - inc.z count+3 - !: - // [141] call print - // [146] phi from queens::@4 to print [phi:queens::@4->print] - print_from___b4: - jsr print - jmp __b1_from___b4 - // queens::@3 - __b3: - // [142] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 -- pbuc1_derefidx_vbuz1=vbuc2 - // We moved past the end of the row - reset position and go down to the lower row - lda #0 - ldy.z row - sta board,y - // [143] if((byte) queens::row#10==(byte) 1) goto queens::@return -- vbuz1_eq_vbuc1_then_la1 - lda #1 - cmp.z row - beq __breturn - jmp __b8 - // queens::@8 - __b8: - // [144] (byte) queens::row#2 ← -- (byte) queens::row#10 -- vbuz1=_dec_vbuz1 - dec.z row - jmp __b1_from___b8 - // queens::@return - __breturn: - // [145] return - rts -} - // print -// Print the board with a legal placement. -print: { - .label i = $b - .label i1 = $15 - .label j = $16 - // [147] call printf_str - // [46] phi from print to printf_str [phi:print->printf_str] - printf_str_from_print: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 - lda #printf_str] + printf_str_from___b1: + // [44] phi (byte*) printf_str::str#15 = (const byte*) tod_buffer [phi:printf_string::@1->printf_str#0] -- pbuz1=pbuc1 + lda #str + lda #>tod_buffer sta.z printf_str.str+1 jsr printf_str - jmp __b11 - // print::@11 - __b11: - // [148] (dword) printf_ulong::uvalue#0 ← (dword) count#22 - // [149] call printf_ulong - // [271] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] - printf_ulong_from___b11: - jsr printf_ulong - // [150] phi from print::@11 to print::@12 [phi:print::@11->print::@12] - __b12_from___b11: - jmp __b12 - // print::@12 - __b12: - // [151] call printf_str - // [46] phi from print::@12 to printf_str [phi:print::@12->printf_str] - printf_str_from___b12: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 - lda #str1 - sta.z printf_str.str+1 - jsr printf_str - // [152] phi from print::@12 to print::@1 [phi:print::@12->print::@1] - __b1_from___b12: - // [152] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z i - jmp __b1 - // print::@1 - __b1: - // [153] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z i - cmp #8+1 - bcc __b2 - // [154] phi from print::@1 to print::@3 [phi:print::@1->print::@3] - __b3_from___b1: - // [154] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 - lda #1 - sta.z i1 - jmp __b3 - // print::@3 - __b3: - // [155] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 - lda.z i1 - cmp #8+1 - bcc __b4_from___b3 jmp __breturn - // print::@return + // printf_string::@return __breturn: - // [156] return + // [99] return rts - // [157] phi from print::@3 to print::@4 [phi:print::@3->print::@4] - __b4_from___b3: - jmp __b4 - // print::@4 - __b4: - // [158] call printf_str - // [46] phi from print::@4 to printf_str [phi:print::@4->printf_str] - printf_str_from___b4: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 - lda #str2 - sta.z printf_str.str+1 - jsr printf_str - jmp __b14 - // print::@14 - __b14: - // [159] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 -- vbuxx=vbuz1 - ldx.z i1 - // [160] call printf_uchar - // [173] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] - printf_uchar_from___b14: - // [173] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy - jsr printf_uchar - // [161] phi from print::@14 to print::@5 [phi:print::@14->print::@5] - __b5_from___b14: - // [161] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 - lda #1 - sta.z j - jmp __b5 - // print::@5 - __b5: - // [162] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 - lda.z j - cmp #8+1 - bcc __b6 - jmp __b7 - // print::@7 - __b7: - // [163] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 - inc.z i1 - // [154] phi from print::@7 to print::@3 [phi:print::@7->print::@3] - __b3_from___b7: - // [154] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy - jmp __b3 - // print::@6 - __b6: - // [164] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 - ldy.z i1 - lda board,y - cmp.z j - beq __b8_from___b6 - // [165] phi from print::@6 to print::@10 [phi:print::@6->print::@10] - __b10_from___b6: - jmp __b10 - // print::@10 - __b10: - // [166] call printf_str - // [46] phi from print::@10 to printf_str [phi:print::@10->printf_str] - printf_str_from___b10: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 - lda #str4 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@9 - __b9: - // [167] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 - inc.z j - // [161] phi from print::@9 to print::@5 [phi:print::@9->print::@5] - __b5_from___b9: - // [161] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy - jmp __b5 - // [168] phi from print::@6 to print::@8 [phi:print::@6->print::@8] - __b8_from___b6: - jmp __b8 - // print::@8 - __b8: - // [169] call printf_str - // [46] phi from print::@8 to printf_str [phi:print::@8->printf_str] - printf_str_from___b8: - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 - lda #str3 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@2 - __b2: - // [170] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 -- vbuxx=vbuz1 - ldx.z i - // [171] call printf_uchar - // [173] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] - printf_uchar_from___b2: - // [173] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy - jsr printf_uchar - jmp __b13 - // print::@13 - __b13: - // [172] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [152] phi from print::@13 to print::@1 [phi:print::@13->print::@1] - __b1_from___b13: - // [152] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy - jmp __b1 - str: .text @"\n#" - .byte 0 - str1: .text @":\n " - .byte 0 - str2: .text @"\n" - .byte 0 - str3: .text "Q" - .byte 0 - str4: .text "-" - .byte 0 } - // printf_uchar -// Print an unsigned char using a specific format -// printf_uchar(byte register(X) uvalue) -printf_uchar: { + // printf_ulong +// Print an unsigned int using a specific format +// printf_ulong(dword zp(2) uvalue) +printf_ulong: { + .label uvalue = 2 jmp __b1 - // printf_uchar::@1 + // printf_ulong::@1 __b1: - // [174] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [101] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [175] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 - // [176] call uctoa + // [102] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 -- vduz1=vduz2 + lda.z uvalue + sta.z ultoa.value + lda.z uvalue+1 + sta.z ultoa.value+1 + lda.z uvalue+2 + sta.z ultoa.value+2 + lda.z uvalue+3 + sta.z ultoa.value+3 + // [103] call ultoa // Format number into buffer - // [245] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] - uctoa_from___b1: - jsr uctoa + // [172] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] + ultoa_from___b1: + jsr ultoa jmp __b2 - // printf_uchar::@2 + // printf_ulong::@2 __b2: - // [177] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + // [104] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [178] call printf_number_buffer + // [105] call printf_number_buffer // Print using format - // [180] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] + // [107] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] printf_number_buffer_from___b2: - // [180] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_upper_case - // [180] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy - // [180] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + // [107] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy + // [107] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z printf_number_buffer.buffer_digits+1 - // [180] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_zero_padding - // [180] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_justify_left - // [180] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [107] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #0 jsr printf_number_buffer jmp __breturn - // printf_uchar::@return + // printf_ulong::@return __breturn: - // [179] return + // [106] return rts } // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($1c) buffer_sign, byte* zp($d) buffer_digits, byte register(X) format_min_length, byte zp($16) format_justify_left, byte zp(6) format_zero_padding, byte zp($17) format_upper_case) +// printf_number_buffer(byte zp($b) buffer_sign, byte* zp($e) buffer_digits, byte register(X) format_min_length, byte zp($1f) format_justify_left, byte zp($a) format_zero_padding, byte zp($c) format_upper_case) printf_number_buffer: { .label __19 = $21 - .label buffer_sign = $1c - .label padding = $18 - .label format_zero_padding = 6 - .label format_justify_left = $16 - .label buffer_digits = $d - .label format_upper_case = $17 - // [181] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuxx_then_la1 + .label buffer_sign = $b + .label padding = $20 + .label format_zero_padding = $a + .label format_justify_left = $1f + .label buffer_digits = $e + .label format_upper_case = $c + // [108] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuxx_then_la1 cpx #0 beq __b1_from_printf_number_buffer jmp __b6 // printf_number_buffer::@6 __b6: - // [182] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + // [109] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 lda.z buffer_digits sta.z strlen.str lda.z buffer_digits+1 sta.z strlen.str+1 - // [183] call strlen - // [239] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + // [110] call strlen + // [166] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] strlen_from___b6: jsr strlen - // [184] (word) strlen::return#2 ← (word) strlen::len#2 + // [111] (word) strlen::return#2 ← (word) strlen::len#2 jmp __b14 // printf_number_buffer::@14 __b14: - // [185] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 - // [186] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 + // [112] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 + // [113] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 // There is a minimum length - work out the padding lda.z __19 tay - // [187] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 + // [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z buffer_sign beq __b13_from___b14 jmp __b7 // printf_number_buffer::@7 __b7: - // [188] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy + // [115] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy iny - // [189] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + // [116] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] __b13_from___b14: __b13_from___b7: - // [189] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + // [116] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy jmp __b13 // printf_number_buffer::@13 __b13: - // [190] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy + // [117] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy txa sty.z $ff sec sbc.z $ff sta.z padding - // [191] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + // [118] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 lda.z padding cmp #0 bpl __b21_from___b13 - // [193] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + // [120] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] __b1_from_printf_number_buffer: __b1_from___b13: - // [193] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + // [120] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 lda #0 sta.z padding jmp __b1 - // [192] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + // [119] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] __b21_from___b13: jmp __b21 // printf_number_buffer::@21 __b21: - // [193] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + // [120] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] __b1_from___b21: - // [193] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + // [120] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy jmp __b1 // printf_number_buffer::@1 __b1: - // [194] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + // [121] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z format_justify_left bne __b2 jmp __b17 // printf_number_buffer::@17 __b17: - // [195] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + // [122] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z format_zero_padding bne __b2 jmp __b16 // printf_number_buffer::@16 __b16: - // [196] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 + // [123] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 lda #0 cmp.z padding bne __b8 jmp __b2 // printf_number_buffer::@8 __b8: - // [197] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [124] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [198] call printf_padding - // [217] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + // [125] call printf_padding + // [144] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] printf_padding_from___b8: - // [217] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 + // [144] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [217] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy + // [144] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy jsr printf_padding jmp __b2 // printf_number_buffer::@2 __b2: - // [199] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 + // [126] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z buffer_sign beq __b3 jmp __b9 // printf_number_buffer::@9 __b9: - // [200] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuaa=vbuz1 + // [127] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuaa=vbuz1 lda.z buffer_sign - // [201] call printf_char - // [89] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] + // [128] call printf_char + // [87] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] printf_char_from___b9: - // [89] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy + // [87] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy jsr printf_char jmp __b3 // printf_number_buffer::@3 __b3: - // [202] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 + // [129] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_zero_padding beq __b4 jmp __b18 // printf_number_buffer::@18 __b18: - // [203] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 + // [130] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 lda #0 cmp.z padding bne __b10 jmp __b4 // printf_number_buffer::@10 __b10: - // [204] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [131] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [205] call printf_padding - // [217] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + // [132] call printf_padding + // [144] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] printf_padding_from___b10: - // [217] phi (byte) printf_padding::pad#7 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 + // [144] phi (byte) printf_padding::pad#7 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 lda #'0' sta.z printf_padding.pad - // [217] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy + // [144] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy jsr printf_padding jmp __b4 // printf_number_buffer::@4 __b4: - // [206] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 + // [133] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_upper_case beq __b5 jmp __b11 // printf_number_buffer::@11 __b11: - // [207] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + // [134] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 lda.z buffer_digits sta.z strupr.str lda.z buffer_digits+1 sta.z strupr.str+1 - // [208] call strupr - // [224] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + // [135] call strupr + // [151] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] strupr_from___b11: jsr strupr jmp __b5 // printf_number_buffer::@5 __b5: - // [209] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - // [210] call printf_str - // [46] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + // [136] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + // [137] call printf_str + // [44] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] printf_str_from___b5: - // [46] phi (byte*) printf_str::str#13 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + // [44] phi (byte*) printf_str::str#15 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy jsr printf_str jmp __b15 // printf_number_buffer::@15 __b15: - // [211] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 + // [138] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_justify_left beq __breturn jmp __b20 // printf_number_buffer::@20 __b20: - // [212] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 + // [139] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z format_zero_padding bne __breturn jmp __b19 // printf_number_buffer::@19 __b19: - // [213] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 + // [140] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 lda #0 cmp.z padding bne __b12 jmp __breturn // printf_number_buffer::@12 __b12: - // [214] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [141] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [215] call printf_padding - // [217] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + // [142] call printf_padding + // [144] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] printf_padding_from___b12: - // [217] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 + // [144] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [217] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy + // [144] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy jsr printf_padding jmp __breturn // printf_number_buffer::@return __breturn: - // [216] return + // [143] return rts } // printf_padding // Print a padding char a number of times -// printf_padding(byte zp($1a) pad, byte zp($19) length) +// printf_padding(byte zp($16) pad, byte zp($d) length) printf_padding: { - .label i = $1b - .label length = $19 - .label pad = $1a - // [218] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + .label i = $17 + .label length = $d + .label pad = $16 + // [145] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] __b1_from_printf_padding: - // [218] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + // [145] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i jmp __b1 // printf_padding::@1 __b1: - // [219] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 + // [146] if((byte) printf_padding::i#2<(byte) printf_padding::length#6) goto printf_padding::@2 -- vbuz1_lt_vbuz2_then_la1 lda.z i cmp.z length bcc __b2 jmp __breturn // printf_padding::@return __breturn: - // [220] return + // [147] return rts // printf_padding::@2 __b2: - // [221] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 -- vbuaa=vbuz1 + // [148] (byte) printf_char::ch#0 ← (byte) printf_padding::pad#7 -- vbuaa=vbuz1 lda.z pad - // [222] call printf_char - // [89] phi from printf_padding::@2 to printf_char [phi:printf_padding::@2->printf_char] + // [149] call printf_char + // [87] phi from printf_padding::@2 to printf_char [phi:printf_padding::@2->printf_char] printf_char_from___b2: - // [89] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy + // [87] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy jsr printf_char jmp __b3 // printf_padding::@3 __b3: - // [223] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 + // [150] (byte) printf_padding::i#1 ← ++ (byte) printf_padding::i#2 -- vbuz1=_inc_vbuz1 inc.z i - // [218] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] + // [145] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] __b1_from___b3: - // [218] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + // [145] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy jmp __b1 } // strupr // Converts a string to uppercase. -// strupr(byte* zp($f) str) +// strupr(byte* zp($10) str) strupr: { - .label src = $f - .label str = $f - // [225] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] + .label src = $10 + .label str = $10 + // [152] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] __b1_from_strupr: __b1_from___b3: - // [225] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy + // [152] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy jmp __b1 // strupr::@1 __b1: - // [226] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [153] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 @@ -11798,24 +11527,24 @@ strupr: { jmp __breturn // strupr::@return __breturn: - // [227] return + // [154] return rts // strupr::@2 __b2: - // [228] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuaa=_deref_pbuz1 + // [155] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (src),y - // [229] call toupper + // [156] call toupper jsr toupper - // [230] (byte) toupper::return#3 ← (byte) toupper::return#2 + // [157] (byte) toupper::return#3 ← (byte) toupper::return#2 jmp __b3 // strupr::@3 __b3: - // [231] (byte~) strupr::$0 ← (byte) toupper::return#3 - // [232] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuaa + // [158] (byte~) strupr::$0 ← (byte) toupper::return#3 + // [159] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuaa ldy #0 sta (src),y - // [233] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 + // [160] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 @@ -11827,52 +11556,52 @@ strupr: { // Returns uppercase equivalent to c, if such value exists, else c remains unchanged // toupper(byte register(A) ch) toupper: { - // [234] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 + // [161] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 cmp #'a' bcc __breturn_from_toupper jmp __b2 // toupper::@2 __b2: - // [235] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 + // [162] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 cmp #'z' bcc __b1 beq __b1 - // [237] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [164] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] __breturn_from_toupper: __breturn_from___b1: __breturn_from___b2: - // [237] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [164] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy jmp __breturn // toupper::@1 __b1: - // [236] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuaa=vbuaa_plus_vbuc1 + // [163] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuaa=vbuaa_plus_vbuc1 clc adc #'A'-'a' jmp __breturn_from___b1 // toupper::@return __breturn: - // [238] return + // [165] return rts } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($f) str) +// strlen(byte* zp($10) str) strlen: { .label len = $21 - .label str = $f + .label str = $10 .label return = $21 - // [240] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [167] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] __b1_from_strlen: - // [240] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [167] 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 - // [240] phi (byte*) strlen::str#3 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // [167] phi (byte*) strlen::str#3 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy jmp __b1 // strlen::@1 __b1: - // [241] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [168] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -11880,255 +11609,25 @@ strlen: { jmp __breturn // strlen::@return __breturn: - // [242] return + // [169] return rts // strlen::@2 __b2: - // [243] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + // [170] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: - // [244] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 -- pbuz1=_inc_pbuz1 + // [171] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [240] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [167] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] __b1_from___b2: - // [240] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [240] phi (byte*) strlen::str#3 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [167] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [167] phi (byte*) strlen::str#3 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 -} - // uctoa -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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 register(X) value, byte* zp($d) buffer) -uctoa: { - .label digit_value = $1c - .label buffer = $d - .label digit = $16 - .label started = 6 - // [246] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - __b1_from_uctoa: - // [246] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - // [246] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [246] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy - // [246] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 - lda #0 - sta.z digit - jmp __b1 - // uctoa::@1 - __b1: - // [247] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z digit - cmp #2-1 - bcc __b2 - jmp __b3 - // uctoa::@3 - __b3: - // [248] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx - lda DIGITS,x - ldy #0 - sta (buffer),y - // [249] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [250] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 - lda #0 - ldy #0 - sta (buffer),y - jmp __breturn - // uctoa::@return - __breturn: - // [251] return - rts - // uctoa::@2 - __b2: - // [252] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy.z digit - lda RADIX_HEXADECIMAL_VALUES_CHAR,y - sta.z digit_value - // [253] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - jmp __b7 - // uctoa::@7 - __b7: - // [254] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuxx_ge_vbuz1_then_la1 - cpx.z digit_value - bcs __b5 - // [255] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] - __b4_from___b7: - // [255] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy - // [255] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy - // [255] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy - jmp __b4 - // uctoa::@4 - __b4: - // [256] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 - inc.z digit - // [246] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] - __b1_from___b4: - // [246] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy - // [246] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy - // [246] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy - // [246] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy - jmp __b1 - // uctoa::@5 - __b5: - // [257] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - // [258] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - // [259] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - // [260] call uctoa_append - // [264] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] - uctoa_append_from___b5: - jsr uctoa_append - // [261] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - jmp __b6 - // uctoa::@6 - __b6: - // [262] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - // [263] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [255] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] - __b4_from___b6: - // [255] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy - // [255] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [255] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy - jmp __b4 -} - // uctoa_append -// Used to convert a single digit of an unsigned number value to a string representation -// Counts a single digit up from '0' as long as the value is larger than sub. -// Each time the digit is increased sub is subtracted from value. -// - buffer : pointer to the char that receives the digit -// - value : The value where the digit will be derived from -// - 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($d) buffer, byte register(X) value, byte zp($1c) sub) -uctoa_append: { - .label buffer = $d - .label sub = $1c - // [265] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - __b1_from_uctoa_append: - // [265] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 - ldy #0 - // [265] 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: - // [266] 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: - // [267] *((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: - // [268] return - rts - // uctoa_append::@2 - __b2: - // [269] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy - iny - // [270] (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 - // [265] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - __b1_from___b2: - // [265] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [265] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_ulong -// Print an unsigned int using a specific format -// printf_ulong(dword zp(2) uvalue) -printf_ulong: { - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = 2 - jmp __b1 - // printf_ulong::@1 - __b1: - // [272] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // [273] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 -- vduz1=vduz2 - lda.z uvalue - sta.z ultoa.value - lda.z uvalue+1 - sta.z ultoa.value+1 - lda.z uvalue+2 - sta.z ultoa.value+2 - lda.z uvalue+3 - sta.z ultoa.value+3 - // [274] call ultoa - // Format number into buffer - // [278] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] - ultoa_from___b1: - jsr ultoa - jmp __b2 - // printf_ulong::@2 - __b2: - // [275] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [276] call printf_number_buffer - // Print using format - // [180] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] - printf_number_buffer_from___b2: - // [180] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_ulong::format_upper_case#0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [180] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy - // [180] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [180] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_ulong::format_zero_padding#0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [180] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_ulong::format_justify_left#0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [180] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_ulong::format_min_length#0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 - ldx #format_min_length - jsr printf_number_buffer - jmp __breturn - // printf_ulong::@return - __breturn: - // [277] return - rts } // ultoa // Converts unsigned number value to a string representing it in RADIX format. @@ -12136,64 +11635,63 @@ printf_ulong: { // - 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) -// ultoa(dword zp(7) value, byte* zp($21) buffer) +// ultoa(dword zp(6) value, byte* zp($e) buffer) ultoa: { - .const max_digits = $a - .label digit_value = $1d - .label buffer = $21 - .label digit = $1c - .label value = 7 - // [279] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] + .label digit_value = $1b + .label buffer = $e + .label digit = $1f + .label value = 6 + // [173] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] __b1_from_ultoa: - // [279] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 + // [173] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [279] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 + // [173] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 ldx #0 - // [279] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy - // [279] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 + // [173] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy + // [173] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // ultoa::@1 __b1: - // [280] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 + // [174] if((byte) ultoa::digit#2<(byte) $a-(byte) 1) goto ultoa::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z digit - cmp #max_digits-1 + cmp #$a-1 bcc __b2 jmp __b3 // ultoa::@3 __b3: - // [281] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuaa=_byte_vduz1 + // [175] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 -- vbuaa=_byte_vduz1 lda.z value - // [282] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuaa + // [176] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuaa tay lda DIGITS,y ldy #0 sta (buffer),y - // [283] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [177] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [284] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [178] *((byte*) ultoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // ultoa::@return __breturn: - // [285] return + // [179] return rts // ultoa::@2 __b2: - // [286] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 + // [180] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2 -- vbuaa=vbuz1_rol_2 lda.z digit asl asl - // [287] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuaa + // [181] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10) -- vduz1=pduc1_derefidx_vbuaa tay lda RADIX_DECIMAL_VALUES_LONG,y sta.z digit_value @@ -12203,13 +11701,13 @@ ultoa: { sta.z digit_value+2 lda RADIX_DECIMAL_VALUES_LONG+3,y sta.z digit_value+3 - // [288] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuxx_then_la1 + // [182] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuxx_then_la1 cpx #0 bne __b5 jmp __b7 // ultoa::@7 __b7: - // [289] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 + // [183] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z digit_value+3 bcc !+ @@ -12226,48 +11724,48 @@ ultoa: { cmp.z digit_value bcs __b5 !: - // [290] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] + // [184] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] __b4_from___b7: - // [290] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [290] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [290] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy + // [184] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy + // [184] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy + // [184] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy jmp __b4 // ultoa::@4 __b4: - // [291] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 + // [185] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [279] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] + // [173] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] __b1_from___b4: - // [279] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [279] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [279] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [279] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy + // [173] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy + // [173] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy + // [173] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy + // [173] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy jmp __b1 // ultoa::@5 __b5: - // [292] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - // [293] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - // [294] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - // [295] call ultoa_append - // [299] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] + // [186] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 + // [187] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 + // [188] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 + // [189] call ultoa_append + // [193] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] ultoa_append_from___b5: jsr ultoa_append - // [296] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 + // [190] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 jmp __b6 // ultoa::@6 __b6: - // [297] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 - // [298] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [191] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 + // [192] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [290] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] + // [184] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] __b4_from___b6: - // [290] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [290] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 + // [184] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy + // [184] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 ldx #1 - // [290] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy + // [184] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy jmp __b4 } // ultoa_append @@ -12279,21 +11777,21 @@ ultoa: { // - 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. -// ultoa_append(byte* zp($21) buffer, dword zp(7) value, dword zp($1d) sub) +// ultoa_append(byte* zp($e) buffer, dword zp(6) value, dword zp($1b) sub) ultoa_append: { - .label buffer = $21 - .label value = 7 - .label sub = $1d - .label return = 7 - // [300] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] + .label buffer = $e + .label value = 6 + .label sub = $1b + .label return = 6 + // [194] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] __b1_from_ultoa_append: - // [300] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 + // [194] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [300] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy + // [194] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy jmp __b1 // ultoa_append::@1 __b1: - // [301] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 + // [195] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z sub+3 bcc !+ @@ -12313,20 +11811,20 @@ ultoa_append: { jmp __b3 // ultoa_append::@3 __b3: - // [302] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [196] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y jmp __breturn // ultoa_append::@return __breturn: - // [303] return + // [197] return rts // ultoa_append::@2 __b2: - // [304] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [198] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuxx=_inc_vbuxx inx - // [305] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 + // [199] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 lda.z value sec sbc.z sub @@ -12340,119 +11838,749 @@ ultoa_append: { lda.z value+3 sbc.z sub+3 sta.z value+3 - // [300] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] + // [194] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] __b1_from___b2: - // [300] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [300] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + // [194] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy + // [194] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + jmp __b1 +} + // tod_str +// Convert time of day to a human-readable string "hh:mm:ss:10" +// tod_str(byte zp($19) tod_TENTHS, byte zp($1a) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) +tod_str: { + .label tod_TENTHS = $19 + .label tod_SEC = $1a + // [200] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuaa=vbuxx_ror_4 + txa + lsr + lsr + lsr + lsr + // [201] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // [202] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuaa + sta tod_buffer + // [203] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 + txa + and #$f + // [204] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // [205] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuaa + sta tod_buffer+1 + // [206] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuaa=vbuyy_ror_4 + tya + lsr + lsr + lsr + lsr + // [207] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // [208] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuaa + sta tod_buffer+3 + // [209] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 + tya + and #$f + // [210] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // [211] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuaa + sta tod_buffer+4 + // [212] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 + lda.z tod_SEC + lsr + lsr + lsr + lsr + // [213] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // [214] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuaa + sta tod_buffer+6 + // [215] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + lda #$f + and.z tod_SEC + // [216] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // [217] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuaa + sta tod_buffer+7 + // [218] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 + lda.z tod_TENTHS + lsr + lsr + lsr + lsr + // [219] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // [220] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuaa + sta tod_buffer+9 + // [221] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + lda #$f + and.z tod_TENTHS + // [222] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // [223] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuaa + sta tod_buffer+$a + jmp __breturn + // tod_str::@return + __breturn: + // [224] return + rts +} + // tod_read +// Read time of day +tod_read: { + .label return_HOURS = $1f + .label return_MIN = $18 + // [225] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // Reading sequence is important. TOD latches on reading hours until 10ths is read. + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + sta.z return_HOURS + // [226] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + // [227] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 + ldx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + // [228] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 + ldy CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + jmp __breturn + // tod_read::@return + __breturn: + // [229] return + rts +} + // queens +// Generates all valid placements of queens on a NxN board without recursion +// Works exactly like the recursive solution by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below +// and then moving on to generating all legal placements on the rows above. +// In practice this works like a depth first tree search where the level in the tree is the row on the board and each branch in the tree is the legal placement of a queen on that row. +// The solution uses the board itself as a "cursor" moving through all possibilities +// When all columns on a row is exhausted move back down to the lower level and move forward one position until we are done with the last position on the first row +queens: { + // The current row where the queen is moving + .label row = $18 + // [231] phi from queens to queens::@1 [phi:queens->queens::@1] + __b1_from_queens: + // [231] phi (dword) count#10 = (dword) 0 [phi:queens->queens::@1#0] -- vduz1=vduc1 + lda #<0 + sta.z count + lda #>0 + sta.z count+1 + lda #<0>>$10 + sta.z count+2 + lda #>0>>$10 + sta.z count+3 + // [231] phi (byte) queens::row#10 = (byte) 1 [phi:queens->queens::@1#1] -- vbuz1=vbuc1 + lda #1 + sta.z row + jmp __b1 + // [231] phi from queens::@4 queens::@7 queens::@8 queens::@9 to queens::@1 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1] + __b1_from___b4: + __b1_from___b7: + __b1_from___b8: + __b1_from___b9: + // [231] phi (dword) count#10 = (dword) count#25 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#0] -- register_copy + // [231] phi (byte) queens::row#10 = (byte) queens::row#10 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#1] -- register_copy + jmp __b1 + // queens::@1 + __b1: + jmp __b2 + // queens::@2 + __b2: + // [232] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 + ldx.z row + inc board,x + // [233] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 -- pbuc1_derefidx_vbuz1_eq_vbuc2_then_la1 + ldy.z row + lda board,y + cmp #8+1 + beq __b3 + jmp __b5 + // queens::@5 + __b5: + // [234] (byte) legal::row#0 ← (byte) queens::row#10 + // [235] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy.z row + lda board,y + sta.z legal.column + // [236] call legal + // [308] phi from queens::@5 to legal [phi:queens::@5->legal] + legal_from___b5: + jsr legal + // [237] (byte) legal::return#0 ← (byte) legal::return#4 + jmp __b9 + // queens::@9 + __b9: + // [238] (byte~) queens::$2 ← (byte) legal::return#0 + // [239] if((byte) 0==(byte~) queens::$2) goto queens::@1 -- vbuc1_eq_vbuaa_then_la1 + cmp #0 + beq __b1_from___b9 + jmp __b6 + // queens::@6 + __b6: + // [240] if((byte) queens::row#10==(byte) 8) goto queens::@4 -- vbuz1_eq_vbuc1_then_la1 + // position is legal - move up to the next row + lda #8 + cmp.z row + beq __b4 + jmp __b7 + // queens::@7 + __b7: + // [241] (byte) queens::row#1 ← ++ (byte) queens::row#10 -- vbuz1=_inc_vbuz1 + inc.z row + jmp __b1_from___b7 + // queens::@4 + __b4: + // [242] (dword) count#25 ← ++ (dword) count#10 -- vduz1=_inc_vduz1 + inc.z count + bne !+ + inc.z count+1 + bne !+ + inc.z count+2 + bne !+ + inc.z count+3 + !: + // [243] call print + // [248] phi from queens::@4 to print [phi:queens::@4->print] + print_from___b4: + jsr print + jmp __b1_from___b4 + // queens::@3 + __b3: + // [244] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + // We moved past the end of the row - reset position and go down to the lower row + lda #0 + ldy.z row + sta board,y + // [245] if((byte) queens::row#10==(byte) 1) goto queens::@return -- vbuz1_eq_vbuc1_then_la1 + lda #1 + cmp.z row + beq __breturn + jmp __b8 + // queens::@8 + __b8: + // [246] (byte) queens::row#2 ← -- (byte) queens::row#10 -- vbuz1=_dec_vbuz1 + dec.z row + jmp __b1_from___b8 + // queens::@return + __breturn: + // [247] return + rts +} + // print +// Print the board with a legal placement. +print: { + .label i = $19 + .label i1 = $1a + .label j = $a + // [249] call printf_str + // [44] phi from print to printf_str [phi:print->printf_str] + printf_str_from_print: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 + lda #str + sta.z printf_str.str+1 + jsr printf_str + jmp __b11 + // print::@11 + __b11: + // [250] (dword) printf_ulong::uvalue#1 ← (dword) count#25 + // [251] call printf_ulong + // [100] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] + printf_ulong_from___b11: + // [100] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#1 [phi:print::@11->printf_ulong#0] -- register_copy + jsr printf_ulong + // [252] phi from print::@11 to print::@12 [phi:print::@11->print::@12] + __b12_from___b11: + jmp __b12 + // print::@12 + __b12: + // [253] call printf_str + // [44] phi from print::@12 to printf_str [phi:print::@12->printf_str] + printf_str_from___b12: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 + lda #str1 + sta.z printf_str.str+1 + jsr printf_str + // [254] phi from print::@12 to print::@1 [phi:print::@12->print::@1] + __b1_from___b12: + // [254] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 + lda #1 + sta.z i + jmp __b1 + // print::@1 + __b1: + // [255] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z i + cmp #8+1 + bcc __b2 + // [256] phi from print::@1 to print::@3 [phi:print::@1->print::@3] + __b3_from___b1: + // [256] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 + lda #1 + sta.z i1 + jmp __b3 + // print::@3 + __b3: + // [257] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 + lda.z i1 + cmp #8+1 + bcc __b4_from___b3 + jmp __breturn + // print::@return + __breturn: + // [258] return + rts + // [259] phi from print::@3 to print::@4 [phi:print::@3->print::@4] + __b4_from___b3: + jmp __b4 + // print::@4 + __b4: + // [260] call printf_str + // [44] phi from print::@4 to printf_str [phi:print::@4->printf_str] + printf_str_from___b4: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + jmp __b14 + // print::@14 + __b14: + // [261] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 -- vbuxx=vbuz1 + ldx.z i1 + // [262] call printf_uchar + // [275] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] + printf_uchar_from___b14: + // [275] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy + jsr printf_uchar + // [263] phi from print::@14 to print::@5 [phi:print::@14->print::@5] + __b5_from___b14: + // [263] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 + lda #1 + sta.z j + jmp __b5 + // print::@5 + __b5: + // [264] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 + lda.z j + cmp #8+1 + bcc __b6 + jmp __b7 + // print::@7 + __b7: + // [265] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 + inc.z i1 + // [256] phi from print::@7 to print::@3 [phi:print::@7->print::@3] + __b3_from___b7: + // [256] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy + jmp __b3 + // print::@6 + __b6: + // [266] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + ldy.z i1 + lda board,y + cmp.z j + beq __b8_from___b6 + // [267] phi from print::@6 to print::@10 [phi:print::@6->print::@10] + __b10_from___b6: + jmp __b10 + // print::@10 + __b10: + // [268] call printf_str + // [44] phi from print::@10 to printf_str [phi:print::@10->printf_str] + printf_str_from___b10: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@9 + __b9: + // [269] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 + inc.z j + // [263] phi from print::@9 to print::@5 [phi:print::@9->print::@5] + __b5_from___b9: + // [263] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy + jmp __b5 + // [270] phi from print::@6 to print::@8 [phi:print::@6->print::@8] + __b8_from___b6: + jmp __b8 + // print::@8 + __b8: + // [271] call printf_str + // [44] phi from print::@8 to printf_str [phi:print::@8->printf_str] + printf_str_from___b8: + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@2 + __b2: + // [272] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 -- vbuxx=vbuz1 + ldx.z i + // [273] call printf_uchar + // [275] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] + printf_uchar_from___b2: + // [275] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy + jsr printf_uchar + jmp __b13 + // print::@13 + __b13: + // [274] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 + inc.z i + // [254] phi from print::@13 to print::@1 [phi:print::@13->print::@1] + __b1_from___b13: + // [254] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy + jmp __b1 + str: .text @"\n#" + .byte 0 + str1: .text @":\n " + .byte 0 + str2: .text @"\n" + .byte 0 + str3: .text "Q" + .byte 0 + str4: .text "-" + .byte 0 +} + // printf_uchar +// Print an unsigned char using a specific format +// printf_uchar(byte register(X) uvalue) +printf_uchar: { + jmp __b1 + // printf_uchar::@1 + __b1: + // [276] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // [277] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 + // [278] call uctoa + // Format number into buffer + // [282] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] + uctoa_from___b1: + jsr uctoa + jmp __b2 + // printf_uchar::@2 + __b2: + // [279] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // [280] call printf_number_buffer + // Print using format + // [107] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] + printf_number_buffer_from___b2: + // [107] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_upper_case + // [107] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy + // [107] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [107] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + // [107] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_justify_left + // [107] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + ldx #0 + jsr printf_number_buffer + jmp __breturn + // printf_uchar::@return + __breturn: + // [281] return + rts +} + // uctoa +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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 register(X) value, byte* zp($21) buffer) +uctoa: { + .label digit_value = $20 + .label buffer = $21 + .label digit = $b + .label started = $c + // [283] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] + __b1_from_uctoa: + // [283] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z buffer+1 + // [283] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 + lda #0 + sta.z started + // [283] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy + // [283] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 + lda #0 + sta.z digit + jmp __b1 + // uctoa::@1 + __b1: + // [284] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z digit + cmp #2-1 + bcc __b2 + jmp __b3 + // uctoa::@3 + __b3: + // [285] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + lda DIGITS,x + ldy #0 + sta (buffer),y + // [286] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer + bne !+ + inc.z buffer+1 + !: + // [287] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + lda #0 + ldy #0 + sta (buffer),y + jmp __breturn + // uctoa::@return + __breturn: + // [288] return + rts + // uctoa::@2 + __b2: + // [289] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy.z digit + lda RADIX_HEXADECIMAL_VALUES_CHAR,y + sta.z digit_value + // [290] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z started + bne __b5 + jmp __b7 + // uctoa::@7 + __b7: + // [291] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuxx_ge_vbuz1_then_la1 + cpx.z digit_value + bcs __b5 + // [292] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] + __b4_from___b7: + // [292] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy + // [292] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy + // [292] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy + jmp __b4 + // uctoa::@4 + __b4: + // [293] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 + inc.z digit + // [283] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] + __b1_from___b4: + // [283] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy + // [283] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy + // [283] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy + // [283] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy + jmp __b1 + // uctoa::@5 + __b5: + // [294] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + // [295] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + // [296] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + // [297] call uctoa_append + // [301] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] + uctoa_append_from___b5: + jsr uctoa_append + // [298] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + jmp __b6 + // uctoa::@6 + __b6: + // [299] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + // [300] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer + bne !+ + inc.z buffer+1 + !: + // [292] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] + __b4_from___b6: + // [292] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy + // [292] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 + lda #1 + sta.z started + // [292] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy + jmp __b4 +} + // uctoa_append +// Used to convert a single digit of an unsigned number value to a string representation +// Counts a single digit up from '0' as long as the value is larger than sub. +// Each time the digit is increased sub is subtracted from value. +// - buffer : pointer to the char that receives the digit +// - value : The value where the digit will be derived from +// - 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($21) buffer, byte register(X) value, byte zp($20) sub) +uctoa_append: { + .label buffer = $21 + .label sub = $20 + // [302] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] + __b1_from_uctoa_append: + // [302] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 + ldy #0 + // [302] 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: + // [303] 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: + // [304] *((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: + // [305] return + rts + // uctoa_append::@2 + __b2: + // [306] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy + iny + // [307] (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 + // [302] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] + __b1_from___b2: + // [302] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy + // [302] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy jmp __b1 } // legal // Checks is a placement of the queen on the board is legal. // Checks the passed (row, column) against all queens placed on the board on lower rows. // If no conflict for desired position returns 1 otherwise returns 0 -// legal(byte zp($c) row, byte zp($1b) column) +// legal(byte zp($18) row, byte zp($1f) column) legal: { - .label row = $c - .label column = $1b - .label diff1_return = $b - // [307] phi from legal to legal::@1 [phi:legal->legal::@1] + .label row = $18 + .label column = $1f + .label diff1_return = $20 + // [309] phi from legal to legal::@1 [phi:legal->legal::@1] __b1_from_legal: - // [307] phi (byte) legal::i#10 = (byte) 1 [phi:legal->legal::@1#0] -- vbuyy=vbuc1 + // [309] phi (byte) legal::i#10 = (byte) 1 [phi:legal->legal::@1#0] -- vbuyy=vbuc1 ldy #1 jmp __b1 // legal::@1 __b1: - // [308] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuxx=vbuz1_minus_1 + // [310] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuxx=vbuz1_minus_1 ldx.z row dex - // [309] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 -- vbuyy_le_vbuxx_then_la1 + // [311] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 -- vbuyy_le_vbuxx_then_la1 sty.z $ff cpx.z $ff bcs __b2 - // [310] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] + // [312] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] __breturn_from___b1: - // [310] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuaa=vbuc1 + // [312] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuaa=vbuc1 lda #1 jmp __breturn - // [310] phi from legal::@2 legal::@5 to legal::@return [phi:legal::@2/legal::@5->legal::@return] + // [312] phi from legal::@2 legal::@5 to legal::@return [phi:legal::@2/legal::@5->legal::@return] __breturn_from___b2: __breturn_from___b5: - // [310] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@5->legal::@return#0] -- vbuaa=vbuc1 + // [312] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@5->legal::@return#0] -- vbuaa=vbuc1 lda #0 jmp __breturn // legal::@return __breturn: - // [311] return + // [313] return rts // legal::@2 __b2: - // [312] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuyy_eq_vbuz1_then_la1 + // [314] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuyy_eq_vbuz1_then_la1 lda board,y cmp.z column beq __breturn_from___b2 jmp __b4 // legal::@4 __b4: - // [313] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) -- vbuaa=pbuc1_derefidx_vbuyy + // [315] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) -- vbuaa=pbuc1_derefidx_vbuyy lda board,y jmp diff1 // legal::diff1 diff1: - // [314] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 -- vbuaa_lt_vbuz1_then_la1 + // [316] if((byte) legal::diff1_a#0<(byte) legal::column#0) goto legal::diff1_@1 -- vbuaa_lt_vbuz1_then_la1 cmp.z column bcc diff1___b1 jmp diff1___b3 // legal::diff1_@3 diff1___b3: - // [315] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 -- vbuz1=vbuaa_minus_vbuz2 + // [317] (byte) legal::diff1_return#1 ← (byte) legal::diff1_a#0 - (byte) legal::column#0 -- vbuz1=vbuaa_minus_vbuz2 sec sbc.z column sta.z diff1_return - // [316] phi from legal::diff1_@1 legal::diff1_@3 to legal::diff1_@return [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return] + // [318] phi from legal::diff1_@1 legal::diff1_@3 to legal::diff1_@return [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return] diff1___breturn_from_diff1___b1: diff1___breturn_from_diff1___b3: - // [316] phi (byte) legal::diff1_return#2 = (byte) legal::diff1_return#0 [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return#0] -- register_copy + // [318] phi (byte) legal::diff1_return#2 = (byte) legal::diff1_return#0 [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return#0] -- register_copy jmp diff1___breturn // legal::diff1_@return diff1___breturn: jmp diff2 // legal::diff2 diff2: - // [317] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 -- vbuyy_lt_vbuz1_then_la1 + // [319] if((byte) legal::i#10<(byte) legal::row#0) goto legal::diff2_@1 -- vbuyy_lt_vbuz1_then_la1 cpy.z row bcc diff2___b1 jmp diff2___b3 // legal::diff2_@3 diff2___b3: - // [318] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 -- vbuaa=vbuyy_minus_vbuz1 + // [320] (byte) legal::diff2_return#1 ← (byte) legal::i#10 - (byte) legal::row#0 -- vbuaa=vbuyy_minus_vbuz1 tya sec sbc.z row - // [319] phi from legal::diff2_@1 legal::diff2_@3 to legal::diff2_@return [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return] + // [321] phi from legal::diff2_@1 legal::diff2_@3 to legal::diff2_@return [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return] diff2___breturn_from_diff2___b1: diff2___breturn_from_diff2___b3: - // [319] phi (byte) legal::diff2_return#2 = (byte) legal::diff2_return#0 [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return#0] -- register_copy + // [321] phi (byte) legal::diff2_return#2 = (byte) legal::diff2_return#0 [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return#0] -- register_copy jmp diff2___breturn // legal::diff2_@return diff2___breturn: jmp __b5 // legal::@5 __b5: - // [320] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 -- vbuz1_neq_vbuaa_then_la1 + // [322] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 -- vbuz1_neq_vbuaa_then_la1 cmp.z diff1_return bne __b3 jmp __breturn_from___b5 // legal::@3 __b3: - // [321] (byte) legal::i#1 ← ++ (byte) legal::i#10 -- vbuyy=_inc_vbuyy + // [323] (byte) legal::i#1 ← ++ (byte) legal::i#10 -- vbuyy=_inc_vbuyy iny - // [307] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] + // [309] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] __b1_from___b3: - // [307] phi (byte) legal::i#10 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy + // [309] phi (byte) legal::i#10 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy jmp __b1 // legal::diff2_@1 diff2___b1: - // [322] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 -- vbuaa=vbuz1_minus_vbuyy + // [324] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 -- vbuaa=vbuz1_minus_vbuyy tya eor #$ff sec @@ -12460,7 +12588,7 @@ legal: { jmp diff2___breturn_from_diff2___b1 // legal::diff1_@1 diff1___b1: - // [323] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 -- vbuz1=vbuz2_minus_vbuaa + // [325] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 -- vbuz1=vbuz2_minus_vbuaa eor #$ff sec adc.z column @@ -12470,36 +12598,36 @@ legal: { // tod_init // Initialize time-of-day clock // This uses the MOS6526 CIA#1 -// tod_init(byte zp($15) tod_TENTHS, byte zp($16) tod_SEC, byte register(X) tod_MIN, byte register(Y) tod_HOURS) +// tod_init(byte zp($16) tod_TENTHS, byte zp($17) tod_SEC, byte register(X) tod_MIN, byte register(Y) tod_HOURS) tod_init: { - .label tod_TENTHS = $15 - .label tod_SEC = $16 - // [324] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 + .label tod_TENTHS = $16 + .label tod_SEC = $17 + // [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 // Set 50hz (this assumes PAL!) (bit7=1) lda #$80 ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL - // [325] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 + // [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 // Writing TOD clock (bit7=0) lda #$7f and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy + // [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy // Reset TOD clock // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. sty CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS - // [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx + // [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx stx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - // [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + // [330] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 lda.z tod_SEC sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - // [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + // [331] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 lda.z tod_TENTHS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS jmp __breturn // tod_init::@return __breturn: - // [330] return + // [332] return rts } // printf_uint @@ -12513,47 +12641,47 @@ printf_uint: { jmp __b1 // printf_uint::@1 __b1: - // [332] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [334] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [333] call utoa + // [335] call utoa // Format number into buffer - // [337] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [339] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] utoa_from___b1: jsr utoa jmp __b2 // printf_uint::@2 __b2: - // [334] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + // [336] (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 - // [335] call printf_number_buffer + // [337] call printf_number_buffer // Print using format - // [180] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + // [107] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] printf_number_buffer_from___b2: - // [180] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [180] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy - // [180] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + // [107] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy + // [107] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z printf_number_buffer.buffer_digits+1 - // [180] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [180] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [180] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [107] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer jmp __breturn // printf_uint::@return __breturn: - // [336] return + // [338] return rts } // utoa @@ -12562,79 +12690,79 @@ printf_uint: { // - 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($d) value, byte* zp($f) buffer) +// utoa(word zp($e) value, byte* zp($10) buffer) utoa: { .const max_digits = 5 .label digit_value = $21 - .label buffer = $f - .label digit = $c - .label value = $d - // [338] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + .label buffer = $10 + .label digit = $d + .label value = $e + // [340] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b1_from_utoa: - // [338] 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 + // [340] 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 - // [338] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuxx=vbuc1 + // [340] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuxx=vbuc1 ldx #0 - // [338] phi (word) utoa::value#2 = (const word) printf_uint::uvalue#0 [phi:utoa->utoa::@1#2] -- vwuz1=vwuc1 + // [340] 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 - // [338] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 + // [340] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // utoa::@1 __b1: - // [339] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 + // [341] if((byte) utoa::digit#2<(const byte) utoa::max_digits#1-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z digit cmp #max_digits-1 bcc __b2 jmp __b3 // utoa::@3 __b3: - // [340] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuaa=_byte_vwuz1 + // [342] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuaa=_byte_vwuz1 lda.z value - // [341] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuaa + // [343] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuaa tay lda DIGITS,y ldy #0 sta (buffer),y - // [342] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [344] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [343] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [345] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // utoa::@return __breturn: - // [344] return + // [346] return rts // utoa::@2 __b2: - // [345] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 + // [347] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 lda.z digit asl - // [346] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuaa + // [348] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuaa tay lda RADIX_DECIMAL_VALUES,y sta.z digit_value lda RADIX_DECIMAL_VALUES+1,y sta.z digit_value+1 - // [347] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuxx_then_la1 + // [349] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuxx_then_la1 cpx #0 bne __b5 jmp __b7 // utoa::@7 __b7: - // [348] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 + // [350] 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 !+ @@ -12643,48 +12771,48 @@ utoa: { beq __b5 !: bcc __b5 - // [349] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] + // [351] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] __b4_from___b7: - // [349] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy - // [349] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy - // [349] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy + // [351] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy + // [351] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy + // [351] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy jmp __b4 // utoa::@4 __b4: - // [350] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 + // [352] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [338] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [340] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] __b1_from___b4: - // [338] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy - // [338] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy - // [338] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy - // [338] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy + // [340] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy + // [340] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy + // [340] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy + // [340] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy jmp __b1 // utoa::@5 __b5: - // [351] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - // [352] (word) utoa_append::value#0 ← (word) utoa::value#2 - // [353] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - // [354] call utoa_append - // [358] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] + // [353] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + // [354] (word) utoa_append::value#0 ← (word) utoa::value#2 + // [355] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + // [356] call utoa_append + // [360] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] utoa_append_from___b5: jsr utoa_append - // [355] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + // [357] (word) utoa_append::return#0 ← (word) utoa_append::value#2 jmp __b6 // utoa::@6 __b6: - // [356] (word) utoa::value#0 ← (word) utoa_append::return#0 - // [357] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [358] (word) utoa::value#0 ← (word) utoa_append::return#0 + // [359] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [349] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] + // [351] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] __b4_from___b6: - // [349] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy - // [349] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuxx=vbuc1 + // [351] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy + // [351] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuxx=vbuc1 ldx #1 - // [349] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy + // [351] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy jmp __b4 } // utoa_append @@ -12696,21 +12824,21 @@ 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($f) buffer, word zp($d) value, word zp($21) sub) +// utoa_append(byte* zp($10) buffer, word zp($e) value, word zp($21) sub) utoa_append: { - .label buffer = $f - .label value = $d + .label buffer = $10 + .label value = $e .label sub = $21 - .label return = $d - // [359] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + .label return = $e + // [361] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] __b1_from_utoa_append: - // [359] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 + // [361] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [359] phi (word) utoa_append::value#2 = (word) utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [361] 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: - // [360] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [362] 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 !+ @@ -12722,20 +12850,20 @@ utoa_append: { jmp __b3 // utoa_append::@3 __b3: - // [361] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [363] *((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: - // [362] return + // [364] return rts // utoa_append::@2 __b2: - // [363] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [365] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuxx=_inc_vbuxx inx - // [364] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [366] (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 @@ -12743,26 +12871,26 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [359] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [361] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] __b1_from___b2: - // [359] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [359] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [361] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [361] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // printf_cls // Clear the screen. Also resets current line/char cursor. printf_cls: { - // [366] call memset - // [73] phi from printf_cls to memset [phi:printf_cls->memset] + // [368] call memset + // [71] phi from printf_cls to memset [phi:printf_cls->memset] memset_from_printf_cls: - // [73] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuxx=vbuc1 + // [71] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [73] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 + // [71] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 lda #<$400 sta.z memset.str lda #>$400 sta.z memset.str+1 - // [73] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 + // [71] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 @@ -12771,21 +12899,21 @@ printf_cls: { jmp __b1 // printf_cls::@1 __b1: - // [367] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 + // [369] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z printf_cursor_ptr lda #>$400 sta.z printf_cursor_ptr+1 - // [368] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [370] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x - // [369] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 + // [371] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_y jmp __breturn // printf_cls::@return __breturn: - // [370] return + // [372] return rts } // File Data @@ -12820,48 +12948,29 @@ Removing instruction jmp __b6 Removing instruction jmp __b7 Removing instruction jmp __b8 Removing instruction jmp __b9 -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 __b5 -Removing instruction jmp __b4 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b3 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __breturn -Removing instruction jmp __b1 -Removing instruction jmp __b2 -Removing instruction jmp __b5 -Removing instruction jmp __b9 -Removing instruction jmp __b6 -Removing instruction jmp __b7 -Removing instruction jmp __b8 +Removing instruction jmp __b10 Removing instruction jmp __b11 Removing instruction jmp __b12 +Removing instruction jmp __breturn Removing instruction jmp __b1 +Removing instruction jmp __b2 +Removing instruction jmp __breturn +Removing instruction jmp __b5 +Removing instruction jmp __b4 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __breturn -Removing instruction jmp __b4 -Removing instruction jmp __b14 -Removing instruction jmp __b5 -Removing instruction jmp __b7 -Removing instruction jmp __b10 -Removing instruction jmp __b9 -Removing instruction jmp __b8 -Removing instruction jmp __b13 +Removing instruction jmp __b1 +Removing instruction jmp __b2 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __breturn @@ -12902,6 +13011,28 @@ Removing instruction jmp __b6 Removing instruction jmp __b1 Removing instruction jmp __b3 Removing instruction jmp __breturn +Removing instruction jmp __breturn +Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __b2 +Removing instruction jmp __b5 +Removing instruction jmp __b9 +Removing instruction jmp __b6 +Removing instruction jmp __b7 +Removing instruction jmp __b8 +Removing instruction jmp __b11 +Removing instruction jmp __b12 +Removing instruction jmp __b1 +Removing instruction jmp __b3 +Removing instruction jmp __breturn +Removing instruction jmp __b4 +Removing instruction jmp __b14 +Removing instruction jmp __b5 +Removing instruction jmp __b7 +Removing instruction jmp __b10 +Removing instruction jmp __b9 +Removing instruction jmp __b8 +Removing instruction jmp __b13 Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __breturn @@ -12942,15 +13073,17 @@ Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #0 Removing instruction ldy #0 -Removing instruction lda #>0 Removing instruction lda #0 Replacing instruction ldx #0 with TAX Removing instruction lda.z padding Removing instruction lda #>0 -Removing instruction lda #0 -Replacing instruction ldy #0 with TAY Replacing instruction lda #0 with TXA Replacing instruction ldy #0 with TAY +Removing instruction lda #>0 +Removing instruction lda #0 +Replacing instruction ldx #0 with TAX +Removing instruction lda #0 +Replacing instruction ldy #0 with TAY Replacing instruction lda #0 with TXA Replacing instruction ldy #0 with TAY Removing instruction lda #0 @@ -12959,6 +13092,12 @@ 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 __b1_from_printf_number_buffer with __b1_from___b13 +Replacing label __b13_from___b14 with __b13 +Replacing label __b21_from___b13 with __b1 +Replacing label __b1_from___b3 with __b1 +Replacing label __breturn_from_toupper with __breturn_from___b2 +Replacing label __breturn_from___b1 with __breturn_from___b2 Replacing label __b1 with __b2 Replacing label __b1_from___b9 with __b2 Replacing label __b1_from___b7 with __b2 @@ -12966,12 +13105,6 @@ Replacing label __b1_from___b4 with __b2 Replacing label __b1_from___b8 with __b2 Replacing label __b4_from___b3 with __b4 Replacing label __b8_from___b6 with __b8 -Replacing label __b1_from_printf_number_buffer with __b1_from___b13 -Replacing label __b13_from___b14 with __b13 -Replacing label __b21_from___b13 with __b1 -Replacing label __b1_from___b3 with __b1 -Replacing label __breturn_from_toupper with __breturn_from___b2 -Replacing label __breturn_from___b1 with __breturn_from___b2 Replacing label __breturn_from___b2 with __breturn_from___b5 Replacing label diff2___breturn_from_diff2___b1 with __b5 Replacing label diff1___breturn_from_diff1___b1 with diff2 @@ -12990,10 +13123,13 @@ Removing instruction queens_from___b5: Removing instruction __b6_from___b5: Removing instruction __b8_from___b7: Removing instruction printf_str_from___b8: -Removing instruction __b9_from___b8: -Removing instruction printf_string_from___b9: -Removing instruction __b1_from_printf_string: -Removing instruction printf_str_from___b1: +Removing instruction printf_ulong_from___b9: +Removing instruction __b10_from___b9: +Removing instruction printf_str_from___b10: +Removing instruction __b11_from___b10: +Removing instruction printf_string_from___b11: +Removing instruction __b12_from___b11: +Removing instruction printf_str_from___b12: Removing instruction __b1_from_printf_str: Removing instruction __b1_from___b4: Removing instruction __b1_from___b5: @@ -13006,6 +13142,21 @@ Removing instruction __b2_from___b1: Removing instruction memset_from___b2: Removing instruction __b2_from___b1: Removing instruction __b2_from___b3: +Removing instruction __b1_from_printf_string: +Removing instruction printf_str_from___b1: +Removing instruction __b13_from___b14: +Removing instruction __b13_from___b7: +Removing instruction __b1_from_printf_number_buffer: +Removing instruction __b21_from___b13: +Removing instruction __b21: +Removing instruction __b1_from___b21: +Removing instruction printf_str_from___b5: +Removing instruction __b1_from_strupr: +Removing instruction __b1_from___b3: +Removing instruction __breturn_from_toupper: +Removing instruction __breturn_from___b1: +Removing instruction __b4_from___b7: +Removing instruction ultoa_append_from___b5: Removing instruction __b1_from___b4: Removing instruction __b1_from___b7: Removing instruction __b1_from___b8: @@ -13020,21 +13171,8 @@ Removing instruction __b10_from___b6: Removing instruction printf_str_from___b10: Removing instruction __b8_from___b6: Removing instruction printf_str_from___b8: -Removing instruction __b13_from___b14: -Removing instruction __b13_from___b7: -Removing instruction __b1_from_printf_number_buffer: -Removing instruction __b21_from___b13: -Removing instruction __b21: -Removing instruction __b1_from___b21: -Removing instruction printf_str_from___b5: -Removing instruction __b1_from_strupr: -Removing instruction __b1_from___b3: -Removing instruction __breturn_from_toupper: -Removing instruction __breturn_from___b1: Removing instruction __b4_from___b7: Removing instruction uctoa_append_from___b5: -Removing instruction __b4_from___b7: -Removing instruction ultoa_append_from___b5: Removing instruction __breturn_from___b2: Removing instruction diff1___breturn_from_diff1___b1: Removing instruction diff1___breturn_from_diff1___b3: @@ -13057,8 +13195,9 @@ Removing instruction __b6: Removing instruction __b7: Removing instruction __b8: Removing instruction __b9: -Removing instruction __breturn: -Removing instruction __b1: +Removing instruction __b10: +Removing instruction __b11: +Removing instruction __b12: Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b5: @@ -13071,34 +13210,10 @@ Removing instruction __b1_from_memcpy: Removing instruction __breturn: Removing instruction __b1_from___b2: Removing instruction __b1: -Removing instruction __breturn: -Removing instruction __breturn: -Removing instruction __b1_from_queens: -Removing instruction __b5: -Removing instruction legal_from___b5: -Removing instruction __b9: -Removing instruction __b6: -Removing instruction __b7: -Removing instruction print_from___b4: -Removing instruction __b8: -Removing instruction printf_str_from_print: -Removing instruction __b11: -Removing instruction __b12: -Removing instruction __b1_from___b12: -Removing instruction __b3_from___b1: -Removing instruction __breturn: -Removing instruction __b14: -Removing instruction printf_uchar_from___b14: -Removing instruction __b5_from___b14: -Removing instruction __b7: -Removing instruction __b3_from___b7: -Removing instruction __b10: -Removing instruction __b5_from___b9: -Removing instruction printf_uchar_from___b2: -Removing instruction __b13: -Removing instruction __b1_from___b13: Removing instruction __b1: -Removing instruction uctoa_from___b1: +Removing instruction __breturn: +Removing instruction __b1: +Removing instruction ultoa_from___b1: Removing instruction __b2: Removing instruction printf_number_buffer_from___b2: Removing instruction __breturn: @@ -13130,22 +13245,6 @@ Removing instruction __b2: Removing instruction __b1_from_strlen: Removing instruction __breturn: Removing instruction __b1_from___b2: -Removing instruction __b1_from_uctoa: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b7: -Removing instruction __b1_from___b4: -Removing instruction __b6: -Removing instruction __b4_from___b6: -Removing instruction __b1_from_uctoa_append: -Removing instruction __b3: -Removing instruction __breturn: -Removing instruction __b1_from___b2: -Removing instruction __b1: -Removing instruction ultoa_from___b1: -Removing instruction __b2: -Removing instruction printf_number_buffer_from___b2: -Removing instruction __breturn: Removing instruction __b1_from_ultoa: Removing instruction __b3: Removing instruction __breturn: @@ -13157,6 +13256,48 @@ Removing instruction __b1_from_ultoa_append: Removing instruction __b3: Removing instruction __breturn: Removing instruction __b1_from___b2: +Removing instruction __breturn: +Removing instruction __breturn: +Removing instruction __b1_from_queens: +Removing instruction __b5: +Removing instruction legal_from___b5: +Removing instruction __b9: +Removing instruction __b6: +Removing instruction __b7: +Removing instruction print_from___b4: +Removing instruction __b8: +Removing instruction printf_str_from_print: +Removing instruction __b11: +Removing instruction __b12: +Removing instruction __b1_from___b12: +Removing instruction __b3_from___b1: +Removing instruction __breturn: +Removing instruction __b14: +Removing instruction printf_uchar_from___b14: +Removing instruction __b5_from___b14: +Removing instruction __b7: +Removing instruction __b3_from___b7: +Removing instruction __b10: +Removing instruction __b5_from___b9: +Removing instruction printf_uchar_from___b2: +Removing instruction __b13: +Removing instruction __b1_from___b13: +Removing instruction __b1: +Removing instruction uctoa_from___b1: +Removing instruction __b2: +Removing instruction printf_number_buffer_from___b2: +Removing instruction __breturn: +Removing instruction __b1_from_uctoa: +Removing instruction __b3: +Removing instruction __breturn: +Removing instruction __b7: +Removing instruction __b1_from___b4: +Removing instruction __b6: +Removing instruction __b4_from___b6: +Removing instruction __b1_from_uctoa_append: +Removing instruction __b3: +Removing instruction __breturn: +Removing instruction __b1_from___b2: Removing instruction __b1_from_legal: Removing instruction __breturn_from___b1: Removing instruction __b4: @@ -13197,16 +13338,16 @@ Relabelling long label __breturn_from___b5 to __b4 Succesful ASM optimization Pass5RelabelLongLabels Adding RTS to root block Succesful ASM optimization Pass5AddMainRts -Removing instruction jmp __b2 Removing instruction jmp __b1 Removing instruction jmp __breturn +Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination +Removing instruction lda #0 +Removing instruction lda #0 +Removing instruction lda #0 +Removing instruction lda #0 +Removing instruction lda #0 Removing instruction ldy.z row -Removing instruction lda #0 -Removing instruction lda #0 -Removing instruction lda #0 -Removing instruction lda #0 -Removing instruction lda #0 Removing instruction lda.z digit_value+1 Succesful ASM optimization Pass5UnnecesaryLoadElimination Removing instruction __b2: @@ -13259,8 +13400,8 @@ FINAL SYMBOL TABLE (struct TIME_OF_DAY) TOD_ZERO loadstore mem[4] = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } (const byte*) board[(number) $14] = { fill( $14, 0) } (dword) count -(dword) count#14 count zp[4]:2 572.0 -(dword) count#22 count zp[4]:2 413.89655172413796 +(dword) count#10 count zp[4]:2 276.51724137931035 +(dword) count#25 count zp[4]:2 413.89655172413796 (byte()) legal((byte) legal::row , (byte) legal::column) (byte~) legal::$0 reg byte x 2000002.0 (label) legal::@1 @@ -13270,7 +13411,7 @@ FINAL SYMBOL TABLE (label) legal::@5 (label) legal::@return (byte) legal::column -(byte) legal::column#0 column zp[1]:27 235353.23529411765 +(byte) legal::column#0 column zp[1]:31 235353.23529411765 (label) legal::diff1 (label) legal::diff1_@1 (label) legal::diff1_@3 @@ -13279,9 +13420,9 @@ FINAL SYMBOL TABLE (byte) legal::diff1_a#0 reg byte a 2000002.0 (byte) legal::diff1_b (byte) legal::diff1_return -(byte) legal::diff1_return#0 diff1_return zp[1]:11 2000002.0 -(byte) legal::diff1_return#1 diff1_return zp[1]:11 2000002.0 -(byte) legal::diff1_return#2 diff1_return zp[1]:11 600000.6000000001 +(byte) legal::diff1_return#0 diff1_return zp[1]:32 2000002.0 +(byte) legal::diff1_return#1 diff1_return zp[1]:32 2000002.0 +(byte) legal::diff1_return#2 diff1_return zp[1]:32 600000.6000000001 (label) legal::diff2 (label) legal::diff2_@1 (label) legal::diff2_@3 @@ -13299,9 +13440,12 @@ FINAL SYMBOL TABLE (byte) legal::return#0 reg byte a 2002.0 (byte) legal::return#4 reg byte a 333.6666666666667 (byte) legal::row -(byte) legal::row#0 row zp[1]:12 222278.05555555556 +(byte) legal::row#0 row zp[1]:24 222278.05555555556 (void()) main() (label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 (label) main::@2 (label) main::@3 (label) main::@4 @@ -13314,16 +13458,11 @@ FINAL SYMBOL TABLE (const byte*) main::str[(byte) $29] = (byte*) " - n queens problem using backtracking -" (const byte*) main::str1[(byte) $13] = (byte*) " number of queens:" -(const byte*) main::str2[(byte) 8] = (byte*) " -time: " -(byte) main::tod_HOURS -(byte) main::tod_HOURS#0 reg byte a 5.5 -(byte) main::tod_MIN -(byte) main::tod_MIN#0 tod_MIN zp[1]:23 5.5 -(byte) main::tod_SEC -(byte) main::tod_SEC#0 reg byte x 5.5 -(byte) main::tod_TENTHS -(byte) main::tod_TENTHS#0 reg byte y 5.5 +(const byte*) main::str2[(byte) $d] = (byte*) " +solutions: " +(const byte*) main::str3[(byte) 8] = (byte*) " time: " +(const byte*) main::str4[(byte) 3] = (byte*) ". +" (void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) (label) memcpy::@1 (label) memcpy::@2 @@ -13339,8 +13478,8 @@ time: " (void*) memcpy::source (const void*) memcpy::source#0 source = (void*)(number) $400+(number) $28 (byte*) memcpy::src -(byte*) memcpy::src#1 src zp[2]:15 2.0E19 -(byte*) memcpy::src#2 src zp[2]:15 1.0E19 +(byte*) memcpy::src#1 src zp[2]:16 2.0E19 +(byte*) memcpy::src#2 src zp[2]:16 1.0E19 (byte*) memcpy::src_end (const byte*) memcpy::src_end#0 src_end = (byte*)(const void*) memcpy::source#0+(const word) memcpy::num#0 (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) @@ -13355,9 +13494,9 @@ time: " (byte*) memset::dst#2 dst zp[2]:33 1.33666666666666656E17 (byte*) memset::dst#4 dst zp[2]:33 2.000000000000002E15 (byte*) memset::end -(byte*) memset::end#0 end zp[2]:15 1.6833333333333332E16 +(byte*) memset::end#0 end zp[2]:16 1.6833333333333332E16 (word) memset::num -(word) memset::num#2 num zp[2]:15 1.000000000000001E15 +(word) memset::num#2 num zp[2]:16 1.000000000000001E15 (void*) memset::return (void*) memset::str (void*) memset::str#3 str zp[2]:33 @@ -13378,14 +13517,14 @@ time: " (label) print::@9 (label) print::@return (byte) print::i -(byte) print::i#1 i zp[1]:11 2000002.0 -(byte) print::i#2 i zp[1]:11 1000001.0 +(byte) print::i#1 i zp[1]:25 2000002.0 +(byte) print::i#2 i zp[1]:25 1000001.0 (byte) print::i1 -(byte) print::i1#1 i1 zp[1]:21 2000002.0 -(byte) print::i1#2 i1 zp[1]:21 1000000.357142857 +(byte) print::i1#1 i1 zp[1]:26 2000002.0 +(byte) print::i1#2 i1 zp[1]:26 1000000.357142857 (byte) print::j -(byte) print::j#1 j zp[1]:22 2.0000002E7 -(byte) print::j#2 j zp[1]:22 5714286.285714285 +(byte) print::j#1 j zp[1]:10 2.0000002E7 +(byte) print::j#2 j zp[1]:10 5714286.285714285 (const byte*) print::str[(byte) 3] = (byte*) " #" (const byte*) print::str1[(byte) 4] = (byte*) ": @@ -13408,9 +13547,9 @@ time: " (void()) printf_cls() (label) printf_cls::@1 (label) printf_cls::@return -(byte*) printf_cursor_ptr loadstore zp[2]:19 1.2788888888894998E12 -(byte) printf_cursor_x loadstore zp[1]:17 2.3647058823593533E11 -(byte) printf_cursor_y loadstore zp[1]:18 1.769060773481271E12 +(byte*) printf_cursor_ptr loadstore zp[2]:20 1.251086956522337E12 +(byte) printf_cursor_x loadstore zp[1]:18 2.3103448275924713E11 +(byte) printf_cursor_y loadstore zp[1]:19 1.7308108108114055E12 (byte) printf_format_number::justify_left (byte) printf_format_number::min_length (byte) printf_format_number::radix @@ -13420,8 +13559,8 @@ time: " (byte) printf_format_string::justify_left (byte) printf_format_string::min_length (void()) printf_ln() -(byte*~) printf_ln::$0 zp[2]:19 2.00000000002E11 -(byte*~) printf_ln::$1 zp[2]:19 2.00000000002E11 +(byte*~) printf_ln::$0 zp[2]:20 2.00000000002E11 +(byte*~) printf_ln::$1 zp[2]:20 2.00000000002E11 (label) printf_ln::@return (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_upper_case , (byte) printf_number_buffer::format_radix) (word~) printf_number_buffer::$19 zp[2]:33 1.00000001E8 @@ -13449,47 +13588,47 @@ time: " (label) printf_number_buffer::@return (struct printf_buffer_number) printf_number_buffer::buffer (byte*) printf_number_buffer::buffer_digits -(byte*) printf_number_buffer::buffer_digits#10 buffer_digits zp[2]:13 1.0344827689655172E7 +(byte*) printf_number_buffer::buffer_digits#10 buffer_digits zp[2]:14 1.0344827689655172E7 (byte) printf_number_buffer::buffer_sign -(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:28 200002.0 -(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:28 202.0 -(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:28 1.55050053E7 -(byte) printf_number_buffer::buffer_sign#2 buffer_sign zp[1]:28 2.0000002E7 +(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:11 200002.0 +(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:11 202.0 +(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:11 1.55050053E7 +(byte) printf_number_buffer::buffer_sign#2 buffer_sign zp[1]:11 2.0000002E7 (struct printf_format_number) printf_number_buffer::format (byte) printf_number_buffer::format_justify_left -(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:22 6451612.9677419355 +(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:31 6451612.9677419355 (byte) printf_number_buffer::format_min_length (byte) printf_number_buffer::format_min_length#3 reg byte x 1.00000001E7 (byte) printf_number_buffer::format_radix (byte) printf_number_buffer::format_sign_always (byte) printf_number_buffer::format_upper_case -(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:23 3846153.8846153845 +(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:12 3846153.8846153845 (byte) printf_number_buffer::format_zero_padding -(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:6 9375000.09375 +(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:10 9375000.09375 (signed byte) printf_number_buffer::len (signed byte) printf_number_buffer::len#0 reg byte y 1.500000015E8 (signed byte) printf_number_buffer::len#1 reg byte y 2.00000002E8 (signed byte) printf_number_buffer::len#2 reg byte y 3.00000003E8 (signed byte) printf_number_buffer::padding -(signed byte) printf_number_buffer::padding#1 padding zp[1]:24 1.00000001E8 -(signed byte) printf_number_buffer::padding#10 padding zp[1]:24 1.904761923809524E7 +(signed byte) printf_number_buffer::padding#1 padding zp[1]:32 1.00000001E8 +(signed byte) printf_number_buffer::padding#10 padding zp[1]:32 1.904761923809524E7 (void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) (label) printf_padding::@1 (label) printf_padding::@2 (label) printf_padding::@3 (label) printf_padding::@return (byte) printf_padding::i -(byte) printf_padding::i#1 i zp[1]:27 2.000000000002E12 -(byte) printf_padding::i#2 i zp[1]:27 7.5000000000075E11 +(byte) printf_padding::i#1 i zp[1]:23 2.000000000002E12 +(byte) printf_padding::i#2 i zp[1]:23 7.5000000000075E11 (byte) printf_padding::length -(byte) printf_padding::length#0 length zp[1]:25 2.00000002E8 -(byte) printf_padding::length#1 length zp[1]:25 2.00000002E8 -(byte) printf_padding::length#2 length zp[1]:25 2.00000002E8 -(byte) printf_padding::length#6 length zp[1]:25 1.6671666666733334E11 +(byte) printf_padding::length#0 length zp[1]:13 2.00000002E8 +(byte) printf_padding::length#1 length zp[1]:13 2.00000002E8 +(byte) printf_padding::length#2 length zp[1]:13 2.00000002E8 +(byte) printf_padding::length#6 length zp[1]:13 1.6671666666733334E11 (byte) printf_padding::pad -(byte) printf_padding::pad#7 pad zp[1]:26 1.6666666666683334E11 +(byte) printf_padding::pad#7 pad zp[1]:22 1.6666666666683334E11 (void()) printf_scroll() -(byte*~) printf_scroll::$4 zp[2]:19 2.00000000000002E14 +(byte*~) printf_scroll::$4 zp[2]:20 2.00000000000002E14 (label) printf_scroll::@1 (label) printf_scroll::@2 (label) printf_scroll::@3 @@ -13504,10 +13643,10 @@ time: " (byte) printf_str::ch (byte) printf_str::ch#0 reg byte a 1.0000000001E10 (byte*) printf_str::str -(byte*) printf_str::str#0 str zp[2]:13 4.2857142861428566E9 -(byte*) printf_str::str#1 str zp[2]:13 2.00000002E8 -(byte*) printf_str::str#11 str zp[2]:13 2.05000000025E10 -(byte*) printf_str::str#13 str zp[2]:13 1.100000002E9 +(byte*) printf_str::str#0 str zp[2]:14 4.2857142861428566E9 +(byte*) printf_str::str#1 str zp[2]:14 2.00000002E8 +(byte*) printf_str::str#13 str zp[2]:14 2.05000000025E10 +(byte*) printf_str::str#15 str zp[2]:14 1.100000002E9 (void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) (label) printf_string::@1 (label) printf_string::@return @@ -13555,17 +13694,15 @@ time: " (label) printf_ulong::@return (struct printf_format_number) printf_ulong::format (byte) printf_ulong::format_justify_left -(const byte) printf_ulong::format_justify_left#0 format_justify_left = (byte) 0 (byte) printf_ulong::format_min_length -(const byte) printf_ulong::format_min_length#0 format_min_length = (byte) 0 (byte) printf_ulong::format_radix (byte) printf_ulong::format_sign_always (byte) printf_ulong::format_upper_case -(const byte) printf_ulong::format_upper_case#0 format_upper_case = (byte) 0 (byte) printf_ulong::format_zero_padding -(const byte) printf_ulong::format_zero_padding#0 format_zero_padding = (byte) 0 (dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 uvalue zp[4]:2 36667.33333333333 +(dword) printf_ulong::uvalue#0 uvalue zp[4]:2 22.0 +(dword) printf_ulong::uvalue#1 uvalue zp[4]:2 20002.0 +(dword) printf_ulong::uvalue#2 uvalue zp[4]:2 55006.5 (void()) queens() (byte~) queens::$2 reg byte a 2002.0 (label) queens::@1 @@ -13579,9 +13716,9 @@ time: " (label) queens::@9 (label) queens::@return (byte) queens::row -(byte) queens::row#1 row zp[1]:12 2002.0 -(byte) queens::row#10 row zp[1]:12 1144.0 -(byte) queens::row#2 row zp[1]:12 2002.0 +(byte) queens::row#1 row zp[1]:24 2002.0 +(byte) queens::row#10 row zp[1]:24 1144.0 +(byte) queens::row#2 row zp[1]:24 2002.0 (word()) strlen((byte*) strlen::str) (label) strlen::@1 (label) strlen::@2 @@ -13592,9 +13729,9 @@ time: " (word) strlen::return (word) strlen::return#2 return zp[2]:33 2.00000002E8 (byte*) strlen::str -(byte*) strlen::str#0 str zp[2]:15 2.000000000002E12 -(byte*) strlen::str#1 str zp[2]:15 5.50000001E8 -(byte*) strlen::str#3 str zp[2]:15 1.0003333333346667E12 +(byte*) strlen::str#0 str zp[2]:16 2.000000000002E12 +(byte*) strlen::str#1 str zp[2]:16 5.50000001E8 +(byte*) strlen::str#3 str zp[2]:16 1.0003333333346667E12 (byte*()) strupr((byte*) strupr::str) (byte~) strupr::$0 reg byte a 2.000000000002E12 (label) strupr::@1 @@ -13603,10 +13740,10 @@ time: " (label) strupr::@return (byte*) strupr::return (byte*) strupr::src -(byte*) strupr::src#1 src zp[2]:15 2.000000000002E12 -(byte*) strupr::src#2 src zp[2]:15 7.144285714294285E11 +(byte*) strupr::src#1 src zp[2]:16 2.000000000002E12 +(byte*) strupr::src#2 src zp[2]:16 7.144285714294285E11 (byte*) strupr::str -(byte*) strupr::str#0 str zp[2]:15 5.50000001E8 +(byte*) strupr::str#0 str zp[2]:16 5.50000001E8 (const byte*) tod_buffer[] = (byte*) "00:00:00:00" (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) (label) tod_init::@return @@ -13616,20 +13753,20 @@ time: " (byte) tod_init::tod_MIN (byte) tod_init::tod_MIN#0 reg byte x 22.4 (byte) tod_init::tod_SEC -(byte) tod_init::tod_SEC#0 tod_SEC zp[1]:22 16.0 +(byte) tod_init::tod_SEC#0 tod_SEC zp[1]:23 16.0 (byte) tod_init::tod_TENTHS -(byte) tod_init::tod_TENTHS#0 tod_TENTHS zp[1]:21 12.444444444444443 +(byte) tod_init::tod_TENTHS#0 tod_TENTHS zp[1]:22 12.444444444444443 (struct TIME_OF_DAY()) tod_read() (label) tod_read::@return (byte) tod_read::hours (byte) tod_read::mins (struct TIME_OF_DAY) tod_read::return (byte) tod_read::return_HOURS -(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:24 12.444444444444443 -(byte) tod_read::return_HOURS#2 return_HOURS zp[1]:24 5.5 +(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:31 12.444444444444443 +(byte) tod_read::return_HOURS#2 reg byte a 5.5 (byte) tod_read::return_MIN (byte) tod_read::return_MIN#0 reg byte a 16.0 -(byte) tod_read::return_MIN#2 return_MIN zp[1]:23 5.5 +(byte) tod_read::return_MIN#2 return_MIN zp[1]:24 5.5 (byte) tod_read::return_SEC (byte) tod_read::return_SEC#0 reg byte x 22.4 (byte) tod_read::return_SEC#2 reg byte x 5.5 @@ -13690,21 +13827,21 @@ time: " (label) uctoa::@7 (label) uctoa::@return (byte*) uctoa::buffer -(byte*) uctoa::buffer#11 buffer zp[2]:13 3.3350000000500004E10 -(byte*) uctoa::buffer#14 buffer zp[2]:13 1.500000000015E11 -(byte*) uctoa::buffer#3 buffer zp[2]:13 2.00000002E8 -(byte*) uctoa::buffer#4 buffer zp[2]:13 2.00000000002E11 +(byte*) uctoa::buffer#11 buffer zp[2]:33 3.3350000000500004E10 +(byte*) uctoa::buffer#14 buffer zp[2]:33 1.500000000015E11 +(byte*) uctoa::buffer#3 buffer zp[2]:33 2.00000002E8 +(byte*) uctoa::buffer#4 buffer zp[2]:33 2.00000000002E11 (byte) uctoa::digit -(byte) uctoa::digit#1 digit zp[1]:22 2.00000000002E11 -(byte) uctoa::digit#2 digit zp[1]:22 3.076923076953846E10 +(byte) uctoa::digit#1 digit zp[1]:11 2.00000000002E11 +(byte) uctoa::digit#2 digit zp[1]:11 3.076923076953846E10 (byte) uctoa::digit_value -(byte) uctoa::digit_value#0 digit_value zp[1]:28 6.0000000000600006E10 +(byte) uctoa::digit_value#0 digit_value zp[1]:32 6.0000000000600006E10 (byte*) uctoa::digit_values (byte) uctoa::max_digits (byte) uctoa::radix (byte) uctoa::started -(byte) uctoa::started#2 started zp[1]:6 6.0000000000600006E10 -(byte) uctoa::started#4 started zp[1]:6 1.00000000001E11 +(byte) uctoa::started#2 started zp[1]:12 6.0000000000600006E10 +(byte) uctoa::started#4 started zp[1]:12 1.00000000001E11 (byte) uctoa::value (byte) uctoa::value#0 reg byte x 1.00000000001E11 (byte) uctoa::value#1 reg byte x 5.5000001E7 @@ -13716,14 +13853,14 @@ time: " (label) uctoa_append::@3 (label) uctoa_append::@return (byte*) uctoa_append::buffer -(byte*) uctoa_append::buffer#0 buffer zp[2]:13 1.3750000000025E11 +(byte*) uctoa_append::buffer#0 buffer zp[2]:33 1.3750000000025E11 (byte) uctoa_append::digit (byte) uctoa_append::digit#1 reg byte y 1.0E16 (byte) uctoa_append::digit#2 reg byte y 1.00005E16 (byte) uctoa_append::return (byte) uctoa_append::return#0 reg byte x 2.00000000002E11 (byte) uctoa_append::sub -(byte) uctoa_append::sub#0 sub zp[1]:28 3.33335E15 +(byte) uctoa_append::sub#0 sub zp[1]:32 3.33335E15 (byte) uctoa_append::value (byte) uctoa_append::value#0 reg byte x 3.666666666673334E11 (byte) uctoa_append::value#1 reg byte x 2.0E16 @@ -13740,45 +13877,44 @@ time: " (label) ultoa::@7 (label) ultoa::@return (byte*) ultoa::buffer -(byte*) ultoa::buffer#11 buffer zp[2]:33 2.871428614285714E7 -(byte*) ultoa::buffer#14 buffer zp[2]:33 1.500000015E8 -(byte*) ultoa::buffer#3 buffer zp[2]:33 2000002.0 -(byte*) ultoa::buffer#4 buffer zp[2]:33 2.00000002E8 +(byte*) ultoa::buffer#11 buffer zp[2]:14 2.871428614285714E7 +(byte*) ultoa::buffer#14 buffer zp[2]:14 1.500000015E8 +(byte*) ultoa::buffer#3 buffer zp[2]:14 2000002.0 +(byte*) ultoa::buffer#4 buffer zp[2]:14 2.00000002E8 (byte) ultoa::digit -(byte) ultoa::digit#1 digit zp[1]:28 2.00000002E8 -(byte) ultoa::digit#2 digit zp[1]:28 2.857142885714286E7 +(byte) ultoa::digit#1 digit zp[1]:31 2.00000002E8 +(byte) ultoa::digit#2 digit zp[1]:31 2.857142885714286E7 (dword) ultoa::digit_value -(dword) ultoa::digit_value#0 digit_value zp[4]:29 6.0000000599999994E7 +(dword) ultoa::digit_value#0 digit_value zp[4]:27 6.0000000599999994E7 (dword*) ultoa::digit_values (byte) ultoa::max_digits -(const byte) ultoa::max_digits#1 max_digits = (byte) $a (byte) ultoa::radix (byte) ultoa::started (byte) ultoa::started#2 reg byte x 5.00000005E7 (byte) ultoa::started#4 reg byte x 1.00000001E8 (dword) ultoa::value -(dword) ultoa::value#0 value zp[4]:7 1.00000001E8 -(dword) ultoa::value#1 value zp[4]:7 550001.0 -(dword) ultoa::value#2 value zp[4]:7 5.7285715E7 -(dword) ultoa::value#6 value zp[4]:7 1.500000015E8 +(dword) ultoa::value#0 value zp[4]:6 1.00000001E8 +(dword) ultoa::value#1 value zp[4]:6 550001.0 +(dword) ultoa::value#2 value zp[4]:6 5.7285715E7 +(dword) ultoa::value#6 value zp[4]:6 1.500000015E8 (dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) (label) ultoa_append::@1 (label) ultoa_append::@2 (label) ultoa_append::@3 (label) ultoa_append::@return (byte*) ultoa_append::buffer -(byte*) ultoa_append::buffer#0 buffer zp[2]:33 1.3750000025E8 +(byte*) ultoa_append::buffer#0 buffer zp[2]:14 1.3750000025E8 (byte) ultoa_append::digit (byte) ultoa_append::digit#1 reg byte x 1.000000000001E12 (byte) ultoa_append::digit#2 reg byte x 1.0005000000015E12 (dword) ultoa_append::return -(dword) ultoa_append::return#0 return zp[4]:7 2.00000002E8 +(dword) ultoa_append::return#0 return zp[4]:6 2.00000002E8 (dword) ultoa_append::sub -(dword) ultoa_append::sub#0 sub zp[4]:29 3.333500000005E11 +(dword) ultoa_append::sub#0 sub zp[4]:27 3.333500000005E11 (dword) ultoa_append::value -(dword) ultoa_append::value#0 value zp[4]:7 3.666666673333334E8 -(dword) ultoa_append::value#1 value zp[4]:7 2.000000000002E12 -(dword) ultoa_append::value#2 value zp[4]:7 5.0018333333416675E11 +(dword) ultoa_append::value#0 value zp[4]:6 3.666666673333334E8 +(dword) ultoa_append::value#1 value zp[4]:6 2.000000000002E12 +(dword) ultoa_append::value#2 value zp[4]:6 5.0018333333416675E11 (void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) (byte~) utoa::$10 reg byte a 20002.0 (byte~) utoa::$11 reg byte a 2002.0 @@ -13791,13 +13927,13 @@ time: " (label) utoa::@7 (label) utoa::@return (byte*) utoa::buffer -(byte*) utoa::buffer#11 buffer zp[2]:15 3000.4285714285716 -(byte*) utoa::buffer#14 buffer zp[2]:15 15001.5 -(byte*) utoa::buffer#3 buffer zp[2]:15 2002.0 -(byte*) utoa::buffer#4 buffer zp[2]:15 20002.0 +(byte*) utoa::buffer#11 buffer zp[2]:16 3000.4285714285716 +(byte*) utoa::buffer#14 buffer zp[2]:16 15001.5 +(byte*) utoa::buffer#3 buffer zp[2]:16 2002.0 +(byte*) utoa::buffer#4 buffer zp[2]:16 20002.0 (byte) utoa::digit -(byte) utoa::digit#1 digit zp[1]:12 20002.0 -(byte) utoa::digit#2 digit zp[1]:12 2857.4285714285716 +(byte) utoa::digit#1 digit zp[1]:13 20002.0 +(byte) utoa::digit#2 digit zp[1]:13 2857.4285714285716 (word) utoa::digit_value (word) utoa::digit_value#0 digit_value zp[2]:33 6000.6 (word*) utoa::digit_values @@ -13808,70 +13944,73 @@ time: " (byte) utoa::started#2 reg byte x 5000.5 (byte) utoa::started#4 reg byte x 10001.0 (word) utoa::value -(word) utoa::value#0 value zp[2]:13 10001.0 -(word) utoa::value#2 value zp[2]:13 5714.857142857143 -(word) utoa::value#6 value zp[2]:13 15001.5 +(word) utoa::value#0 value zp[2]:14 10001.0 +(word) utoa::value#2 value zp[2]:14 5714.857142857143 +(word) utoa::value#6 value zp[2]:14 15001.5 (word()) utoa_append((byte*) utoa_append::buffer , (word) utoa_append::value , (word) utoa_append::sub) (label) utoa_append::@1 (label) utoa_append::@2 (label) utoa_append::@3 (label) utoa_append::@return (byte*) utoa_append::buffer -(byte*) utoa_append::buffer#0 buffer zp[2]:15 13750.25 +(byte*) utoa_append::buffer#0 buffer zp[2]:16 13750.25 (byte) utoa_append::digit (byte) utoa_append::digit#1 reg byte x 1.0000001E7 (byte) utoa_append::digit#2 reg byte x 1.00500015E7 (word) utoa_append::return -(word) utoa_append::return#0 return zp[2]:13 20002.0 +(word) utoa_append::return#0 return zp[2]:14 20002.0 (word) utoa_append::sub (word) utoa_append::sub#0 sub zp[2]:33 3335000.5 (word) utoa_append::value -(word) utoa_append::value#0 value zp[2]:13 36667.33333333333 -(word) utoa_append::value#1 value zp[2]:13 2.0000002E7 -(word) utoa_append::value#2 value zp[2]:13 5018334.166666666 +(word) utoa_append::value#0 value zp[2]:14 36667.33333333333 +(word) utoa_append::value#1 value zp[2]:14 2.0000002E7 +(word) utoa_append::value#2 value zp[2]:14 5018334.166666666 reg byte x [ memset::c#4 ] reg byte a [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -zp[4]:2 [ count#14 count#22 printf_ulong::uvalue#0 ] -reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +zp[4]:2 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 count#10 count#25 ] reg byte x [ printf_number_buffer::format_min_length#3 ] reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -zp[1]:6 [ uctoa::started#2 uctoa::started#4 printf_number_buffer::format_zero_padding#10 ] -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[4]:7 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ] +zp[4]:6 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] +zp[1]:10 [ print::j#2 print::j#1 printf_number_buffer::format_zero_padding#10 ] +reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +zp[1]:11 [ uctoa::digit#2 uctoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] +zp[1]:12 [ uctoa::started#2 uctoa::started#4 printf_number_buffer::format_upper_case#10 ] +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 ] reg byte y [ legal::i#10 legal::i#1 ] reg byte a [ legal::return#4 ] -zp[1]:11 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 print::i#2 print::i#1 ] reg byte a [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] -zp[1]:12 [ utoa::digit#2 utoa::digit#1 queens::row#10 queens::row#1 queens::row#2 legal::row#0 ] -zp[2]:13 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] +zp[1]:13 [ utoa::digit#2 utoa::digit#1 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +zp[2]:14 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] reg byte x [ utoa::started#2 utoa::started#4 ] -zp[2]:15 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] +zp[2]:16 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ] -zp[1]:17 [ printf_cursor_x ] -zp[1]:18 [ printf_cursor_y ] -zp[2]:19 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] -zp[1]:21 [ tod_init::tod_TENTHS#0 print::i1#2 print::i1#1 ] -zp[1]:22 [ tod_init::tod_SEC#0 print::j#2 print::j#1 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_justify_left#10 ] +zp[1]:18 [ printf_cursor_x ] +zp[1]:19 [ printf_cursor_y ] +zp[2]:20 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] +zp[1]:22 [ tod_init::tod_TENTHS#0 printf_padding::pad#7 ] +zp[1]:23 [ tod_init::tod_SEC#0 printf_padding::i#2 printf_padding::i#1 ] reg byte x [ tod_init::tod_MIN#0 ] reg byte y [ tod_init::tod_HOURS#0 ] reg byte y [ tod_read::return_TENTHS#2 ] reg byte x [ tod_read::return_SEC#2 ] -zp[1]:23 [ tod_read::return_MIN#2 main::tod_MIN#0 printf_number_buffer::format_upper_case#10 ] -zp[1]:24 [ tod_read::return_HOURS#2 tod_read::return_HOURS#0 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -reg byte y [ main::tod_TENTHS#0 ] -reg byte x [ main::tod_SEC#0 ] -reg byte a [ main::tod_HOURS#0 ] -zp[1]:25 [ tod_str::tod_TENTHS#0 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -zp[1]:26 [ tod_str::tod_SEC#0 printf_padding::pad#7 ] +zp[1]:24 [ tod_read::return_MIN#2 queens::row#10 queens::row#1 queens::row#2 legal::row#0 ] +reg byte a [ tod_read::return_HOURS#2 ] +zp[1]:25 [ tod_str::tod_TENTHS#0 print::i#2 print::i#1 ] +zp[1]:26 [ tod_str::tod_SEC#0 print::i1#2 print::i1#1 ] reg byte y [ tod_str::tod_MIN#0 ] reg byte x [ tod_str::tod_HOURS#0 ] reg byte a [ printf_str::ch#0 ] +reg byte a [ toupper::return#3 ] +reg byte a [ strupr::$0 ] +reg byte a [ ultoa::$11 ] +reg byte a [ ultoa::$10 ] +zp[4]:27 [ ultoa::digit_value#0 ultoa_append::sub#0 ] reg byte a [ tod_str::$0 ] reg byte a [ tod_str::$1 ] reg byte a [ tod_str::$2 ] @@ -13891,27 +14030,22 @@ reg byte a [ tod_str::$15 ] reg byte a [ tod_read::return_MIN#0 ] reg byte x [ tod_read::return_SEC#0 ] reg byte y [ tod_read::return_TENTHS#0 ] -zp[1]:27 [ legal::column#0 printf_padding::i#2 printf_padding::i#1 ] +zp[1]:31 [ legal::column#0 tod_read::return_HOURS#0 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_justify_left#10 ] reg byte a [ legal::return#0 ] reg byte a [ queens::$2 ] -reg byte a [ toupper::return#3 ] -reg byte a [ strupr::$0 ] -zp[1]:28 [ uctoa::digit_value#0 uctoa_append::sub#0 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +zp[1]:32 [ uctoa::digit_value#0 uctoa_append::sub#0 legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] reg byte x [ uctoa_append::return#0 ] -reg byte a [ ultoa::$11 ] -reg byte a [ ultoa::$10 ] -zp[4]:29 [ ultoa::digit_value#0 ultoa_append::sub#0 ] reg byte x [ legal::$0 ] reg byte a [ legal::diff1_a#0 ] reg byte a [ utoa::$11 ] reg byte a [ utoa::$10 ] -zp[2]:33 [ utoa::digit_value#0 utoa_append::sub#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:33 [ utoa::digit_value#0 utoa_append::sub#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] mem[12] [ printf_buffer ] mem[4] [ TOD_ZERO ] FINAL ASSEMBLER -Score: 1339709 +Score: 1339745 // File Comments // N Queens Problem in C Using Backtracking @@ -13937,9 +14071,9 @@ Score: 1339709 .const OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 .const OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 .const SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c - .label printf_cursor_x = $11 - .label printf_cursor_y = $12 - .label printf_cursor_ptr = $13 + .label printf_cursor_x = $12 + .label printf_cursor_y = $13 + .label printf_cursor_ptr = $14 // The number of found solutions .label count = 2 // @begin @@ -13971,17 +14105,16 @@ __bbegin: // @end // main main: { - .label tod_MIN = $17 // printf_cls() // [8] call printf_cls - // [365] phi from main to printf_cls [phi:main->printf_cls] + // [367] phi from main to printf_cls [phi:main->printf_cls] jsr printf_cls // [9] phi from main to main::@1 [phi:main->main::@1] // main::@1 // printf(" - n queens problem using backtracking -") // [10] call printf_str - // [46] phi from main::@1 to printf_str [phi:main::@1->printf_str] - // [46] phi (byte*) printf_str::str#13 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 + // [44] phi from main::@1 to printf_str [phi:main::@1->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str [phi:main::@1->printf_str#0] -- pbuz1=pbuc1 lda #str @@ -13991,8 +14124,8 @@ main: { // main::@2 // printf("\nnumber of queens:%u",QUEENS) // [12] call printf_str - // [46] phi from main::@2 to printf_str [phi:main::@2->printf_str] - // [46] phi (byte*) printf_str::str#13 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 + // [44] phi from main::@2 to printf_str [phi:main::@2->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str1 [phi:main::@2->printf_str#0] -- pbuz1=pbuc1 lda #str1 @@ -14002,7 +14135,7 @@ main: { // main::@3 // printf("\nnumber of queens:%u",QUEENS) // [14] call printf_uint - // [331] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] + // [333] phi from main::@3 to printf_uint [phi:main::@3->printf_uint] jsr printf_uint // main::@4 // tod_init(TOD_ZERO) @@ -14022,7 +14155,7 @@ main: { // main::@5 // queens() // [21] call queens - // [128] phi from main::@5 to queens [phi:main::@5->queens] + // [230] phi from main::@5 to queens [phi:main::@5->queens] jsr queens // [22] phi from main::@5 to main::@6 [phi:main::@5->main::@6] // main::@6 @@ -14033,130 +14166,138 @@ main: { // [25] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 // [26] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 -- vbuz1=vbuaa sta.z tod_read.return_MIN - // [27] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 - // main::@7 - // tod = tod_read() - // [28] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 - // [29] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 - // [30] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 - // [31] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuaa=vbuz1 + // [27] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 -- vbuaa=vbuz1 lda.z tod_read.return_HOURS - // tod_str(tod) - // [32] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 -- vbuz1=vbuyy + // main::@7 + // tod_str(tod_read()) + // [28] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 -- vbuz1=vbuyy sty.z tod_str.tod_TENTHS - // [33] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 -- vbuz1=vbuxx + // [29] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 -- vbuz1=vbuxx stx.z tod_str.tod_SEC - // [34] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 -- vbuyy=vbuz1 - ldy.z tod_MIN - // [35] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 -- vbuxx=vbuaa + // [30] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 -- vbuyy=vbuz1 + ldy.z tod_read.return_MIN + // [31] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuxx=vbuaa tax - // [36] call tod_str + // [32] call tod_str jsr tod_str - // [37] phi from main::@7 to main::@8 [phi:main::@7->main::@8] + // [33] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 - // printf("\ntime: %s",tod_str(tod)) - // [38] call printf_str - // [46] phi from main::@8 to printf_str [phi:main::@8->printf_str] - // [46] phi (byte*) printf_str::str#13 = (const byte*) main::str2 [phi:main::@8->printf_str#0] -- pbuz1=pbuc1 + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + // [34] call printf_str + // [44] phi from main::@8 to printf_str [phi:main::@8->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str2 [phi:main::@8->printf_str#0] -- pbuz1=pbuc1 lda #str2 sta.z printf_str.str+1 jsr printf_str - // [39] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 - // printf("\ntime: %s",tod_str(tod)) + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + // [35] (dword) printf_ulong::uvalue#0 ← (dword) count#10 + // [36] call printf_ulong + // [100] phi from main::@9 to printf_ulong [phi:main::@9->printf_ulong] + // [100] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#0 [phi:main::@9->printf_ulong#0] -- register_copy + jsr printf_ulong + // [37] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + // main::@10 + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + // [38] call printf_str + // [44] phi from main::@10 to printf_str [phi:main::@10->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str3 [phi:main::@10->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + // [39] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // main::@11 + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) // [40] call printf_string - // [42] phi from main::@9 to printf_string [phi:main::@9->printf_string] + // [96] phi from main::@11 to printf_string [phi:main::@11->printf_string] jsr printf_string + // [41] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + // main::@12 + // printf("\nsolutions: %lu time: %s.\n",count,tod_str(tod_read())) + // [42] call printf_str + // [44] phi from main::@12 to printf_str [phi:main::@12->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) main::str4 [phi:main::@12->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str // main::@return // } - // [41] return + // [43] return rts str: .text " - n queens problem using backtracking -" .byte 0 str1: .text @"\nnumber of queens:" .byte 0 - str2: .text @"\ntime: " + str2: .text @"\nsolutions: " + .byte 0 + str3: .text " time: " + .byte 0 + str4: .text @".\n" .byte 0 -} - // printf_string -// Print a string value using a specific format -// Handles justification and min length -printf_string: { - // [43] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] - // printf_string::@1 - // printf_str(str) - // [44] call printf_str - // [46] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] - // [46] phi (byte*) printf_str::str#13 = (const byte*) tod_buffer [phi:printf_string::@1->printf_str#0] -- pbuz1=pbuc1 - lda #tod_buffer - sta.z printf_str.str+1 - jsr printf_str - // printf_string::@return - // } - // [45] return - rts } // printf_str // Print a zero-terminated string // Handles escape codes such as newline -// printf_str(byte* zp($d) str) +// printf_str(byte* zp($e) str) printf_str: { - .label str = $d - // [47] 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] - // [47] phi (byte*) printf_str::str#11 = (byte*) printf_str::str#13 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy + .label str = $e + // [45] 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] + // [45] phi (byte*) printf_str::str#13 = (byte*) printf_str::str#15 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy // printf_str::@1 // printf_str::@2 __b2: // ch = *str++ - // [48] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#11) -- vbuaa=_deref_pbuz1 + // [46] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#13) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [49] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#11 -- pbuz1=_inc_pbuz1 + // [47] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#13 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: // if(ch==0) - // [50] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuaa_neq_0_then_la1 + // [48] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuaa_neq_0_then_la1 cmp #0 bne __b3 // printf_str::@return // } - // [51] return + // [49] return rts // printf_str::@3 __b3: // if(ch=='\n') - // [52] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuaa_eq_vbuc1_then_la1 + // [50] 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) - // [53] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 - // [54] call printf_char - // [89] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] - // [89] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#1 [phi:printf_str::@5->printf_char#0] -- register_copy + // [51] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + // [52] call printf_char + // [87] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + // [87] 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 - // [55] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + // [53] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] // printf_str::@4 __b4: // printf_ln() - // [56] call printf_ln + // [54] call printf_ln jsr printf_ln jmp __b2 } // printf_ln // Print a newline printf_ln: { - .label __0 = $13 - .label __1 = $13 + .label __0 = $14 + .label __1 = $14 // printf_cursor_ptr - printf_cursor_x - // [57] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz1_minus_vbuz2 + // [55] (byte*~) printf_ln::$0 ← (byte*) printf_cursor_ptr - (byte) printf_cursor_x -- pbuz1=pbuz1_minus_vbuz2 sec lda.z __0 sbc.z printf_cursor_x @@ -14165,7 +14306,7 @@ printf_ln: { dec.z __0+1 !: // printf_cursor_ptr - printf_cursor_x + PRINTF_SCREEN_WIDTH - // [58] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [56] (byte*~) printf_ln::$1 ← (byte*~) printf_ln::$0 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z __1 @@ -14174,50 +14315,50 @@ printf_ln: { inc.z __1+1 !: // printf_cursor_ptr = printf_cursor_ptr - printf_cursor_x + PRINTF_SCREEN_WIDTH - // [59] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 + // [57] (byte*) printf_cursor_ptr ← (byte*~) printf_ln::$1 // printf_cursor_x = 0 - // [60] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [58] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x // printf_cursor_y++; - // [61] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [59] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y // printf_scroll() - // [62] call printf_scroll + // [60] call printf_scroll jsr printf_scroll // printf_ln::@return // } - // [63] return + // [61] return rts } // printf_scroll // Scroll the entire screen if the cursor is on the last line printf_scroll: { - .label __4 = $13 + .label __4 = $14 // if(printf_cursor_y==PRINTF_SCREEN_HEIGHT) - // [64] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 + // [62] if((byte) printf_cursor_y!=(byte) $19) goto printf_scroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z printf_cursor_y bne __breturn - // [65] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] + // [63] phi from printf_scroll to printf_scroll::@1 [phi:printf_scroll->printf_scroll::@1] // printf_scroll::@1 // memcpy(PRINTF_SCREEN_ADDRESS, PRINTF_SCREEN_ADDRESS+PRINTF_SCREEN_WIDTH, PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH) - // [66] call memcpy - // [82] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] + // [64] call memcpy + // [80] phi from printf_scroll::@1 to memcpy [phi:printf_scroll::@1->memcpy] jsr memcpy - // [67] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] + // [65] phi from printf_scroll::@1 to printf_scroll::@2 [phi:printf_scroll::@1->printf_scroll::@2] // printf_scroll::@2 // memset(PRINTF_SCREEN_ADDRESS+PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH, ' ', PRINTF_SCREEN_WIDTH) - // [68] call memset - // [73] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] - // [73] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuxx=vbuc1 + // [66] call memset + // [71] phi from printf_scroll::@2 to memset [phi:printf_scroll::@2->memset] + // [71] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_scroll::@2->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [73] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 + // [71] phi (void*) memset::str#3 = (void*)(number) $400+(number) $28*(number) $19-(number) $28 [phi:printf_scroll::@2->memset#1] -- pvoz1=pvoc1 lda #<$400+$28*$19-$28 sta.z memset.str lda #>$400+$28*$19-$28 sta.z memset.str+1 - // [73] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 + // [71] phi (word) memset::num#2 = (byte) $28 [phi:printf_scroll::@2->memset#2] -- vwuz1=vbuc1 lda #<$28 sta.z memset.num lda #>$28 @@ -14225,7 +14366,7 @@ printf_scroll: { jsr memset // printf_scroll::@3 // printf_cursor_ptr-PRINTF_SCREEN_WIDTH - // [69] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 + // [67] (byte*~) printf_scroll::$4 ← (byte*) printf_cursor_ptr - (byte) $28 -- pbuz1=pbuz1_minus_vwuc1 lda.z __4 sec sbc #<$28 @@ -14234,26 +14375,26 @@ printf_scroll: { sbc #>$28 sta.z __4+1 // printf_cursor_ptr = printf_cursor_ptr-PRINTF_SCREEN_WIDTH - // [70] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 + // [68] (byte*) printf_cursor_ptr ← (byte*~) printf_scroll::$4 // printf_cursor_y--; - // [71] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 + // [69] (byte) printf_cursor_y ← -- (byte) printf_cursor_y -- vbuz1=_dec_vbuz1 dec.z printf_cursor_y // printf_scroll::@return __breturn: // } - // [72] return + // [70] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($21) str, byte register(X) c, word zp($f) num) +// memset(void* zp($21) str, byte register(X) c, word zp($10) num) memset: { - .label end = $f + .label end = $10 .label dst = $21 - .label num = $f + .label num = $10 .label str = $21 // if(num>0) - // [74] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 + // [72] if((word) memset::num#2<=(byte) 0) goto memset::@return -- vwuz1_le_0_then_la1 lda.z num bne !+ lda.z num+1 @@ -14261,7 +14402,7 @@ memset: { !: // memset::@1 // end = (char*)str + num - // [75] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [73] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 lda.z end clc adc.z str @@ -14269,13 +14410,13 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [76] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 - // [77] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] - // [77] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy + // [74] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 + // [75] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] + // [75] phi (byte*) memset::dst#2 = (byte*) memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 __b2: // for(char* dst = str; dst!=end; dst++) - // [78] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 + // [76] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 @@ -14285,17 +14426,17 @@ memset: { // memset::@return __breturn: // } - // [79] return + // [77] return rts // memset::@3 __b3: // *dst = c - // [80] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuxx + // [78] *((byte*) memset::dst#2) ← (byte) memset::c#4 -- _deref_pbuz1=vbuxx txa ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) - // [81] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 + // [79] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 @@ -14311,14 +14452,14 @@ memcpy: { .const num = $28*$19-$28 .label src_end = source+num .label dst = $21 - .label src = $f - // [83] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] - // [83] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 + .label src = $10 + // [81] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] + // [81] phi (byte*) memcpy::dst#2 = (byte*)(const void*) memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 lda #destination sta.z dst+1 - // [83] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 + // [81] phi (byte*) memcpy::src#2 = (byte*)(const void*) memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 lda #source @@ -14326,7 +14467,7 @@ memcpy: { // memcpy::@1 __b1: // while(src!=src_end) - // [84] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 + // [82] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z src+1 cmp #>src_end bne __b2 @@ -14335,29 +14476,29 @@ memcpy: { bne __b2 // memcpy::@return // } - // [85] return + // [83] return rts // memcpy::@2 __b2: // *dst++ = *src++ - // [86] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 + // [84] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y sta (dst),y // *dst++ = *src++; - // [87] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 + // [85] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: - // [88] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 + // [86] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: - // [83] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] - // [83] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy - // [83] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy + // [81] phi from memcpy::@2 to memcpy::@1 [phi:memcpy::@2->memcpy::@1] + // [81] phi (byte*) memcpy::dst#2 = (byte*) memcpy::dst#1 [phi:memcpy::@2->memcpy::@1#0] -- register_copy + // [81] phi (byte*) memcpy::src#2 = (byte*) memcpy::src#1 [phi:memcpy::@2->memcpy::@1#1] -- register_copy jmp __b1 } // printf_char @@ -14366,763 +14507,386 @@ memcpy: { // printf_char(byte register(A) ch) printf_char: { // *(printf_cursor_ptr++) = ch - // [90] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuaa + // [88] *((byte*) printf_cursor_ptr) ← (byte) printf_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 sta (printf_cursor_ptr),y // *(printf_cursor_ptr++) = ch; - // [91] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 + // [89] (byte*) printf_cursor_ptr ← ++ (byte*) printf_cursor_ptr -- pbuz1=_inc_pbuz1 inc.z printf_cursor_ptr bne !+ inc.z printf_cursor_ptr+1 !: // if(++printf_cursor_x==PRINTF_SCREEN_WIDTH) - // [92] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 + // [90] (byte) printf_cursor_x ← ++ (byte) printf_cursor_x -- vbuz1=_inc_vbuz1 inc.z printf_cursor_x - // [93] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 + // [91] if((byte) printf_cursor_x!=(byte) $28) goto printf_char::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z printf_cursor_x bne __breturn // printf_char::@1 // printf_cursor_x = 0 - // [94] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [92] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x // ++printf_cursor_y; - // [95] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 + // [93] (byte) printf_cursor_y ← ++ (byte) printf_cursor_y -- vbuz1=_inc_vbuz1 inc.z printf_cursor_y // printf_scroll() - // [96] call printf_scroll + // [94] call printf_scroll jsr printf_scroll // printf_char::@return __breturn: // } - // [97] return + // [95] return rts } - // tod_str -// Convert time of day to a human-readable string "hh:mm:ss:10" -// tod_str(byte zp($19) tod_TENTHS, byte zp($1a) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) -tod_str: { - .label tod_TENTHS = $19 - .label tod_SEC = $1a - // tod.HOURS>>4 - // [98] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuaa=vbuxx_ror_4 - txa - lsr - lsr - lsr - lsr - // '0'+(tod.HOURS>>4) - // [99] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // tod_buffer[0] = '0'+(tod.HOURS>>4) - // [100] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuaa - sta tod_buffer - // tod.HOURS&0x0f - // [101] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 - txa - and #$f - // '0'+(tod.HOURS&0x0f) - // [102] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // tod_buffer[1] = '0'+(tod.HOURS&0x0f) - // [103] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuaa - sta tod_buffer+1 - // tod.MIN>>4 - // [104] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuaa=vbuyy_ror_4 - tya - lsr - lsr - lsr - lsr - // '0'+(tod.MIN>>4) - // [105] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // tod_buffer[3] = '0'+(tod.MIN>>4) - // [106] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuaa - sta tod_buffer+3 - // tod.MIN&0x0f - // [107] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 - tya - and #$f - // '0'+(tod.MIN&0x0f) - // [108] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // tod_buffer[4] = '0'+(tod.MIN&0x0f) - // [109] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuaa - sta tod_buffer+4 - // tod.SEC>>4 - // [110] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 - lda.z tod_SEC - lsr - lsr - lsr - lsr - // '0'+(tod.SEC>>4) - // [111] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // tod_buffer[6] = '0'+(tod.SEC>>4) - // [112] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuaa - sta tod_buffer+6 - // tod.SEC&0x0f - // [113] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 - lda #$f - and.z tod_SEC - // '0'+(tod.SEC&0x0f) - // [114] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // tod_buffer[7] = '0'+(tod.SEC&0x0f) - // [115] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuaa - sta tod_buffer+7 - // tod.TENTHS>>4 - // [116] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 - lda.z tod_TENTHS - lsr - lsr - lsr - lsr - // '0'+(tod.TENTHS>>4) - // [117] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // tod_buffer[9] = '0'+(tod.TENTHS>>4) - // [118] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuaa - sta tod_buffer+9 - // tod.TENTHS&0x0f - // [119] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 - lda #$f - and.z tod_TENTHS - // '0'+(tod.TENTHS&0x0f) - // [120] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #'0' - // tod_buffer[10] = '0'+(tod.TENTHS&0x0f) - // [121] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuaa - sta tod_buffer+$a - // tod_str::@return + // printf_string +// Print a string value using a specific format +// Handles justification and min length +printf_string: { + // [97] phi from printf_string to printf_string::@1 [phi:printf_string->printf_string::@1] + // printf_string::@1 + // printf_str(str) + // [98] call printf_str + // [44] phi from printf_string::@1 to printf_str [phi:printf_string::@1->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) tod_buffer [phi:printf_string::@1->printf_str#0] -- pbuz1=pbuc1 + lda #tod_buffer + sta.z printf_str.str+1 + jsr printf_str + // printf_string::@return // } - // [122] return + // [99] return rts } - // tod_read -// Read time of day -tod_read: { - .label return_HOURS = $18 - .label return_MIN = $17 - // hours = CIA1->TOD_HOURS - // [123] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 - // Reading sequence is important. TOD latches on reading hours until 10ths is read. - lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS - sta.z return_HOURS - // mins = CIA1->TOD_MIN - // [124] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 - lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - // secs = CIA1->TOD_SEC - // [125] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 - ldx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - // tenths = CIA1->TOD_10THS - // [126] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 - ldy CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS - // tod_read::@return - // } - // [127] return - rts -} - // queens -// Generates all valid placements of queens on a NxN board without recursion -// Works exactly like the recursive solution by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below -// and then moving on to generating all legal placements on the rows above. -// In practice this works like a depth first tree search where the level in the tree is the row on the board and each branch in the tree is the legal placement of a queen on that row. -// The solution uses the board itself as a "cursor" moving through all possibilities -// When all columns on a row is exhausted move back down to the lower level and move forward one position until we are done with the last position on the first row -queens: { - // The current row where the queen is moving - .label row = $c - // [129] phi from queens to queens::@1 [phi:queens->queens::@1] - // [129] phi (dword) count#14 = (dword) 0 [phi:queens->queens::@1#0] -- vduz1=vduc1 - lda #<0 - sta.z count - sta.z count+1 - lda #<0>>$10 - sta.z count+2 - lda #>0>>$10 - sta.z count+3 - // [129] phi (byte) queens::row#10 = (byte) 1 [phi:queens->queens::@1#1] -- vbuz1=vbuc1 - lda #1 - sta.z row - // [129] phi from queens::@4 queens::@7 queens::@8 queens::@9 to queens::@1 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1] - // [129] phi (dword) count#14 = (dword) count#22 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#0] -- register_copy - // [129] phi (byte) queens::row#10 = (byte) queens::row#10 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#1] -- register_copy - // queens::@1 - // queens::@2 - __b2: - // board[row]++; - // [130] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 - ldx.z row - inc board,x - // if(board[row]==QUEENS+1) - // [131] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 -- pbuc1_derefidx_vbuz1_eq_vbuc2_then_la1 - ldy.z row - lda board,y - cmp #8+1 - beq __b3 - // queens::@5 - // legal(row, board[row]) - // [132] (byte) legal::row#0 ← (byte) queens::row#10 - // [133] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) -- vbuz1=pbuc1_derefidx_vbuz2 - lda board,y - sta.z legal.column - // [134] call legal - // [306] phi from queens::@5 to legal [phi:queens::@5->legal] - jsr legal - // legal(row, board[row]) - // [135] (byte) legal::return#0 ← (byte) legal::return#4 - // queens::@9 - // [136] (byte~) queens::$2 ← (byte) legal::return#0 - // if(legal(row, board[row])) - // [137] if((byte) 0==(byte~) queens::$2) goto queens::@1 -- vbuc1_eq_vbuaa_then_la1 - cmp #0 - beq __b2 - // queens::@6 - // if(row==QUEENS) - // [138] if((byte) queens::row#10==(byte) 8) goto queens::@4 -- vbuz1_eq_vbuc1_then_la1 - // position is legal - move up to the next row - lda #8 - cmp.z row - beq __b4 - // queens::@7 - // row++; - // [139] (byte) queens::row#1 ← ++ (byte) queens::row#10 -- vbuz1=_inc_vbuz1 - inc.z row - jmp __b2 - // queens::@4 - __b4: - // ++count; - // [140] (dword) count#22 ← ++ (dword) count#14 -- vduz1=_inc_vduz1 - inc.z count - bne !+ - inc.z count+1 - bne !+ - inc.z count+2 - bne !+ - inc.z count+3 - !: - // print() - // [141] call print - // [146] phi from queens::@4 to print [phi:queens::@4->print] - jsr print - jmp __b2 - // queens::@3 - __b3: - // board[row] = 0 - // [142] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 -- pbuc1_derefidx_vbuz1=vbuc2 - // We moved past the end of the row - reset position and go down to the lower row - lda #0 - ldy.z row - sta board,y - // if(row==1) - // [143] if((byte) queens::row#10==(byte) 1) goto queens::@return -- vbuz1_eq_vbuc1_then_la1 - lda #1 - cmp.z row - beq __breturn - // queens::@8 - // row--; - // [144] (byte) queens::row#2 ← -- (byte) queens::row#10 -- vbuz1=_dec_vbuz1 - dec.z row - jmp __b2 - // queens::@return - __breturn: - // } - // [145] return - rts -} - // print -// Print the board with a legal placement. -print: { - .label i = $b - .label i1 = $15 - .label j = $16 - // printf("\n#%lu:\n ",count) - // [147] call printf_str - // [46] phi from print to printf_str [phi:print->printf_str] - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 - lda #str - sta.z printf_str.str+1 - jsr printf_str - // print::@11 - // printf("\n#%lu:\n ",count) - // [148] (dword) printf_ulong::uvalue#0 ← (dword) count#22 - // [149] call printf_ulong - // [271] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] - jsr printf_ulong - // [150] phi from print::@11 to print::@12 [phi:print::@11->print::@12] - // print::@12 - // printf("\n#%lu:\n ",count) - // [151] call printf_str - // [46] phi from print::@12 to printf_str [phi:print::@12->printf_str] - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 - lda #str1 - sta.z printf_str.str+1 - jsr printf_str - // [152] phi from print::@12 to print::@1 [phi:print::@12->print::@1] - // [152] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 - lda #1 - sta.z i - // print::@1 - __b1: - // for(char i=1;i<=QUEENS;++i) - // [153] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 - lda.z i - cmp #8+1 - bcc __b2 - // [154] phi from print::@1 to print::@3 [phi:print::@1->print::@3] - // [154] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 - lda #1 - sta.z i1 - // print::@3 - __b3: - // for(char i=1;i<=QUEENS;++i) - // [155] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 - lda.z i1 - cmp #8+1 - bcc __b4 - // print::@return - // } - // [156] return - rts - // [157] phi from print::@3 to print::@4 [phi:print::@3->print::@4] - // print::@4 - __b4: - // printf("\n%x",i) - // [158] call printf_str - // [46] phi from print::@4 to printf_str [phi:print::@4->printf_str] - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 - lda #str2 - sta.z printf_str.str+1 - jsr printf_str - // print::@14 - // printf("\n%x",i) - // [159] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 -- vbuxx=vbuz1 - ldx.z i1 - // [160] call printf_uchar - // [173] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] - // [173] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy - jsr printf_uchar - // [161] phi from print::@14 to print::@5 [phi:print::@14->print::@5] - // [161] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 - lda #1 - sta.z j - // print::@5 - __b5: - // for(char j=1;j<=QUEENS;++j) - // [162] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 - lda.z j - cmp #8+1 - bcc __b6 - // print::@7 - // for(char i=1;i<=QUEENS;++i) - // [163] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 - inc.z i1 - // [154] phi from print::@7 to print::@3 [phi:print::@7->print::@3] - // [154] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy - jmp __b3 - // print::@6 - __b6: - // if(board[i]==j) - // [164] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 - ldy.z i1 - lda board,y - cmp.z j - beq __b8 - // [165] phi from print::@6 to print::@10 [phi:print::@6->print::@10] - // print::@10 - // printf("-") - // [166] call printf_str - // [46] phi from print::@10 to printf_str [phi:print::@10->printf_str] - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 - lda #str4 - sta.z printf_str.str+1 - jsr printf_str - // print::@9 - __b9: - // for(char j=1;j<=QUEENS;++j) - // [167] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 - inc.z j - // [161] phi from print::@9 to print::@5 [phi:print::@9->print::@5] - // [161] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy - jmp __b5 - // [168] phi from print::@6 to print::@8 [phi:print::@6->print::@8] - // print::@8 - __b8: - // printf("Q") - // [169] call printf_str - // [46] phi from print::@8 to printf_str [phi:print::@8->printf_str] - // [46] phi (byte*) printf_str::str#13 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 - lda #str3 - sta.z printf_str.str+1 - jsr printf_str - jmp __b9 - // print::@2 - __b2: - // printf("%x",i) - // [170] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 -- vbuxx=vbuz1 - ldx.z i - // [171] call printf_uchar - // [173] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] - // [173] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy - jsr printf_uchar - // print::@13 - // for(char i=1;i<=QUEENS;++i) - // [172] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 - inc.z i - // [152] phi from print::@13 to print::@1 [phi:print::@13->print::@1] - // [152] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy - jmp __b1 - str: .text @"\n#" - .byte 0 - str1: .text @":\n " - .byte 0 - str2: .text @"\n" - .byte 0 - str3: .text "Q" - .byte 0 - str4: .text "-" - .byte 0 -} - // printf_uchar -// Print an unsigned char using a specific format -// printf_uchar(byte register(X) uvalue) -printf_uchar: { - // printf_uchar::@1 + // printf_ulong +// Print an unsigned int using a specific format +// printf_ulong(dword zp(2) uvalue) +printf_ulong: { + .label uvalue = 2 + // printf_ulong::@1 // printf_buffer.sign = format.sign_always?'+':0 - // [174] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [101] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // uctoa(uvalue, printf_buffer.digits, format.radix) - // [175] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 - // [176] call uctoa + // ultoa(uvalue, printf_buffer.digits, format.radix) + // [102] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2 -- vduz1=vduz2 + lda.z uvalue + sta.z ultoa.value + lda.z uvalue+1 + sta.z ultoa.value+1 + lda.z uvalue+2 + sta.z ultoa.value+2 + lda.z uvalue+3 + sta.z ultoa.value+3 + // [103] call ultoa // Format number into buffer - // [245] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] - jsr uctoa - // printf_uchar::@2 + // [172] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] + jsr ultoa + // printf_ulong::@2 // printf_number_buffer(printf_buffer, format) - // [177] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + // [104] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [178] call printf_number_buffer + // [105] call printf_number_buffer // Print using format - // [180] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] - // [180] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [107] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] + // [107] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_upper_case - // [180] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy - // [180] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + // [107] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy + // [107] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z printf_number_buffer.buffer_digits+1 - // [180] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #0 sta.z printf_number_buffer.format_zero_padding - // [180] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 sta.z printf_number_buffer.format_justify_left - // [180] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [107] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 tax jsr printf_number_buffer - // printf_uchar::@return + // printf_ulong::@return // } - // [179] return + // [106] return rts } // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte zp($1c) buffer_sign, byte* zp($d) buffer_digits, byte register(X) format_min_length, byte zp($16) format_justify_left, byte zp(6) format_zero_padding, byte zp($17) format_upper_case) +// printf_number_buffer(byte zp($b) buffer_sign, byte* zp($e) buffer_digits, byte register(X) format_min_length, byte zp($1f) format_justify_left, byte zp($a) format_zero_padding, byte zp($c) format_upper_case) printf_number_buffer: { .label __19 = $21 - .label buffer_sign = $1c - .label padding = $18 - .label format_zero_padding = 6 - .label format_justify_left = $16 - .label buffer_digits = $d - .label format_upper_case = $17 + .label buffer_sign = $b + .label padding = $20 + .label format_zero_padding = $a + .label format_justify_left = $1f + .label buffer_digits = $e + .label format_upper_case = $c // if(format.min_length) - // [181] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuxx_then_la1 + // [108] if((byte) 0==(byte) printf_number_buffer::format_min_length#3) goto printf_number_buffer::@1 -- vbuc1_eq_vbuxx_then_la1 cpx #0 beq __b6 // printf_number_buffer::@6 // strlen(buffer.digits) - // [182] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + // [109] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 lda.z buffer_digits sta.z strlen.str lda.z buffer_digits+1 sta.z strlen.str+1 - // [183] call strlen - // [239] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] + // [110] call strlen + // [166] phi from printf_number_buffer::@6 to strlen [phi:printf_number_buffer::@6->strlen] jsr strlen // strlen(buffer.digits) - // [184] (word) strlen::return#2 ← (word) strlen::len#2 + // [111] (word) strlen::return#2 ← (word) strlen::len#2 // printf_number_buffer::@14 - // [185] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 + // [112] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 // len = (signed char)strlen(buffer.digits) - // [186] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 + // [113] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 -- vbsyy=_sbyte_vwuz1 // There is a minimum length - work out the padding lda.z __19 tay // if(buffer.sign) - // [187] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 + // [114] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z buffer_sign beq __b13 // printf_number_buffer::@7 // len++; - // [188] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy + // [115] (signed byte) printf_number_buffer::len#1 ← ++ (signed byte) printf_number_buffer::len#0 -- vbsyy=_inc_vbsyy iny - // [189] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] - // [189] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy + // [116] phi from printf_number_buffer::@14 printf_number_buffer::@7 to printf_number_buffer::@13 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13] + // [116] phi (signed byte) printf_number_buffer::len#2 = (signed byte) printf_number_buffer::len#0 [phi:printf_number_buffer::@14/printf_number_buffer::@7->printf_number_buffer::@13#0] -- register_copy // printf_number_buffer::@13 __b13: // padding = (signed char)format.min_length - len - // [190] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy + // [117] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 -- vbsz1=vbsxx_minus_vbsyy txa sty.z $ff sec sbc.z $ff sta.z padding // if(padding<0) - // [191] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 + // [118] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@21 -- vbsz1_ge_0_then_la1 cmp #0 bpl __b1 - // [193] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] + // [120] phi from printf_number_buffer printf_number_buffer::@13 to printf_number_buffer::@1 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1] __b6: - // [193] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 + // [120] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) 0 [phi:printf_number_buffer/printf_number_buffer::@13->printf_number_buffer::@1#0] -- vbsz1=vbsc1 lda #0 sta.z padding - // [192] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] + // [119] phi from printf_number_buffer::@13 to printf_number_buffer::@21 [phi:printf_number_buffer::@13->printf_number_buffer::@21] // printf_number_buffer::@21 - // [193] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] - // [193] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy + // [120] phi from printf_number_buffer::@21 to printf_number_buffer::@1 [phi:printf_number_buffer::@21->printf_number_buffer::@1] + // [120] phi (signed byte) printf_number_buffer::padding#10 = (signed byte) printf_number_buffer::padding#1 [phi:printf_number_buffer::@21->printf_number_buffer::@1#0] -- register_copy // printf_number_buffer::@1 __b1: // if(!format.justify_left && !format.zero_padding && padding) - // [194] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + // [121] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z format_justify_left bne __b2 // printf_number_buffer::@17 - // [195] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 + // [122] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -- vbuc1_neq_vbuz1_then_la1 cmp.z format_zero_padding bne __b2 // printf_number_buffer::@16 - // [196] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 + // [123] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -- vbsc1_neq_vbsz1_then_la1 cmp.z padding bne __b8 jmp __b2 // printf_number_buffer::@8 __b8: // printf_padding(' ',(char)padding) - // [197] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [124] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [198] call printf_padding - // [217] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] - // [217] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 + // [125] call printf_padding + // [144] phi from printf_number_buffer::@8 to printf_padding [phi:printf_number_buffer::@8->printf_padding] + // [144] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@8->printf_padding#0] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [217] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy + // [144] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#0 [phi:printf_number_buffer::@8->printf_padding#1] -- register_copy jsr printf_padding // printf_number_buffer::@2 __b2: // if(buffer.sign) - // [199] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 + // [126] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z buffer_sign beq __b3 // printf_number_buffer::@9 // printf_char(buffer.sign) - // [200] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuaa=vbuz1 + // [127] (byte) printf_char::ch#2 ← (byte) printf_number_buffer::buffer_sign#10 -- vbuaa=vbuz1 lda.z buffer_sign - // [201] call printf_char - // [89] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] - // [89] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy + // [128] call printf_char + // [87] phi from printf_number_buffer::@9 to printf_char [phi:printf_number_buffer::@9->printf_char] + // [87] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#2 [phi:printf_number_buffer::@9->printf_char#0] -- register_copy jsr printf_char // printf_number_buffer::@3 __b3: // if(format.zero_padding && padding) - // [202] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 + // [129] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_zero_padding beq __b4 // printf_number_buffer::@18 - // [203] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 + // [130] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -- vbsc1_neq_vbsz1_then_la1 cmp.z padding bne __b10 jmp __b4 // printf_number_buffer::@10 __b10: // printf_padding('0',(char)padding) - // [204] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [131] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [205] call printf_padding - // [217] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] - // [217] phi (byte) printf_padding::pad#7 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 + // [132] call printf_padding + // [144] phi from printf_number_buffer::@10 to printf_padding [phi:printf_number_buffer::@10->printf_padding] + // [144] phi (byte) printf_padding::pad#7 = (byte) '0' [phi:printf_number_buffer::@10->printf_padding#0] -- vbuz1=vbuc1 lda #'0' sta.z printf_padding.pad - // [217] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy + // [144] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#1 [phi:printf_number_buffer::@10->printf_padding#1] -- register_copy jsr printf_padding // printf_number_buffer::@4 __b4: // if(format.upper_case) - // [206] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 + // [133] if((byte) 0==(byte) printf_number_buffer::format_upper_case#10) goto printf_number_buffer::@5 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_upper_case beq __b5 // printf_number_buffer::@11 // strupr(buffer.digits) - // [207] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 + // [134] (byte*) strupr::str#0 ← (byte*) printf_number_buffer::buffer_digits#10 -- pbuz1=pbuz2 lda.z buffer_digits sta.z strupr.str lda.z buffer_digits+1 sta.z strupr.str+1 - // [208] call strupr - // [224] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] + // [135] call strupr + // [151] phi from printf_number_buffer::@11 to strupr [phi:printf_number_buffer::@11->strupr] jsr strupr // printf_number_buffer::@5 __b5: // printf_str(buffer.digits) - // [209] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 - // [210] call printf_str - // [46] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] - // [46] phi (byte*) printf_str::str#13 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy + // [136] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 + // [137] call printf_str + // [44] phi from printf_number_buffer::@5 to printf_str [phi:printf_number_buffer::@5->printf_str] + // [44] phi (byte*) printf_str::str#15 = (byte*) printf_str::str#1 [phi:printf_number_buffer::@5->printf_str#0] -- register_copy jsr printf_str // printf_number_buffer::@15 // if(format.justify_left && !format.zero_padding && padding) - // [211] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 + // [138] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_justify_left beq __breturn // printf_number_buffer::@20 - // [212] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 + // [139] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return -- vbuc1_neq_vbuz1_then_la1 cmp.z format_zero_padding bne __breturn // printf_number_buffer::@19 - // [213] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 + // [140] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@12 -- vbsc1_neq_vbsz1_then_la1 cmp.z padding bne __b12 rts // printf_number_buffer::@12 __b12: // printf_padding(' ',(char)padding) - // [214] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 + // [141] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [215] call printf_padding - // [217] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] - // [217] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 + // [142] call printf_padding + // [144] phi from printf_number_buffer::@12 to printf_padding [phi:printf_number_buffer::@12->printf_padding] + // [144] phi (byte) printf_padding::pad#7 = (byte) ' ' [phi:printf_number_buffer::@12->printf_padding#0] -- vbuz1=vbuc1 lda #' ' sta.z printf_padding.pad - // [217] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy + // [144] phi (byte) printf_padding::length#6 = (byte) printf_padding::length#2 [phi:printf_number_buffer::@12->printf_padding#1] -- register_copy jsr printf_padding // printf_number_buffer::@return __breturn: // } - // [216] return + // [143] return rts } // printf_padding // Print a padding char a number of times -// printf_padding(byte zp($1a) pad, byte zp($19) length) +// printf_padding(byte zp($16) pad, byte zp($d) length) printf_padding: { - .label i = $1b - .label length = $19 - .label pad = $1a - // [218] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] - // [218] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 + .label i = $17 + .label length = $d + .label pad = $16 + // [145] phi from printf_padding to printf_padding::@1 [phi:printf_padding->printf_padding::@1] + // [145] phi (byte) printf_padding::i#2 = (byte) 0 [phi:printf_padding->printf_padding::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i // printf_padding::@1 __b1: // for(char i=0;iprintf_char] - // [89] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy + // [149] call printf_char + // [87] phi from printf_padding::@2 to printf_char [phi:printf_padding::@2->printf_char] + // [87] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#0 [phi:printf_padding::@2->printf_char#0] -- register_copy jsr printf_char // printf_padding::@3 // for(char i=0;iprintf_padding::@1] - // [218] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy + // [145] phi from printf_padding::@3 to printf_padding::@1 [phi:printf_padding::@3->printf_padding::@1] + // [145] phi (byte) printf_padding::i#2 = (byte) printf_padding::i#1 [phi:printf_padding::@3->printf_padding::@1#0] -- register_copy jmp __b1 } // strupr // Converts a string to uppercase. -// strupr(byte* zp($f) str) +// strupr(byte* zp($10) str) strupr: { - .label src = $f - .label str = $f - // [225] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] - // [225] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy + .label src = $10 + .label str = $10 + // [152] phi from strupr strupr::@3 to strupr::@1 [phi:strupr/strupr::@3->strupr::@1] + // [152] phi (byte*) strupr::src#2 = (byte*) strupr::str#0 [phi:strupr/strupr::@3->strupr::@1#0] -- register_copy // strupr::@1 __b1: // while(*src) - // [226] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [153] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (src),y cmp #0 bne __b2 // strupr::@return // } - // [227] return + // [154] return rts // strupr::@2 __b2: // toupper(*src) - // [228] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuaa=_deref_pbuz1 + // [155] (byte) toupper::ch#0 ← *((byte*) strupr::src#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (src),y - // [229] call toupper + // [156] call toupper jsr toupper - // [230] (byte) toupper::return#3 ← (byte) toupper::return#2 + // [157] (byte) toupper::return#3 ← (byte) toupper::return#2 // strupr::@3 - // [231] (byte~) strupr::$0 ← (byte) toupper::return#3 + // [158] (byte~) strupr::$0 ← (byte) toupper::return#3 // *src = toupper(*src) - // [232] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuaa + // [159] *((byte*) strupr::src#2) ← (byte~) strupr::$0 -- _deref_pbuz1=vbuaa ldy #0 sta (src),y // src++; - // [233] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 + // [160] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 @@ -15135,292 +14899,72 @@ strupr: { // toupper(byte register(A) ch) toupper: { // if(ch>='a' && ch<='z') - // [234] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 + // [161] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 cmp #'a' bcc __breturn // toupper::@2 - // [235] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 + // [162] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1 -- vbuaa_le_vbuc1_then_la1 cmp #'z' bcc __b1 beq __b1 - // [237] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] - // [237] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy + // [164] phi from toupper toupper::@1 toupper::@2 to toupper::@return [phi:toupper/toupper::@1/toupper::@2->toupper::@return] + // [164] phi (byte) toupper::return#2 = (byte) toupper::ch#0 [phi:toupper/toupper::@1/toupper::@2->toupper::@return#0] -- register_copy rts // toupper::@1 __b1: // return ch + ('A'-'a'); - // [236] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuaa=vbuaa_plus_vbuc1 + // [163] (byte) toupper::return#0 ← (byte) toupper::ch#0 + (byte) 'A'-(byte) 'a' -- vbuaa=vbuaa_plus_vbuc1 clc adc #'A'-'a' // toupper::@return __breturn: // } - // [238] return + // [165] return rts } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($f) str) +// strlen(byte* zp($10) str) strlen: { .label len = $21 - .label str = $f + .label str = $10 .label return = $21 - // [240] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - // [240] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [167] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [167] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 lda #<0 sta.z len sta.z len+1 - // [240] phi (byte*) strlen::str#3 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // [167] phi (byte*) strlen::str#3 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy // strlen::@1 __b1: // while(*str) - // [241] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [168] if((byte) 0!=*((byte*) strlen::str#3)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 bne __b2 // strlen::@return // } - // [242] return + // [169] return rts // strlen::@2 __b2: // len++; - // [243] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + // [170] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: // str++; - // [244] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 -- pbuz1=_inc_pbuz1 + // [171] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#3 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [240] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - // [240] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [240] phi (byte*) strlen::str#3 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [167] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [167] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [167] phi (byte*) strlen::str#3 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 -} - // uctoa -// Converts unsigned number value to a string representing it in RADIX format. -// If the leading digits are zero they are not included in the string. -// - 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 register(X) value, byte* zp($d) buffer) -uctoa: { - .label digit_value = $1c - .label buffer = $d - .label digit = $16 - .label started = 6 - // [246] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - // [246] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z buffer+1 - // [246] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z started - // [246] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy - // [246] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 - sta.z digit - // uctoa::@1 - __b1: - // for( char digit=0; digit= digit_value) - // [253] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 - lda #0 - cmp.z started - bne __b5 - // uctoa::@7 - // [254] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuxx_ge_vbuz1_then_la1 - cpx.z digit_value - bcs __b5 - // [255] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] - // [255] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy - // [255] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy - // [255] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy - // uctoa::@4 - __b4: - // for( char digit=0; digituctoa::@1] - // [246] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy - // [246] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy - // [246] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy - // [246] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy - jmp __b1 - // uctoa::@5 - __b5: - // uctoa_append(buffer++, value, digit_value) - // [257] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - // [258] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - // [259] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - // [260] call uctoa_append - // [264] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] - jsr uctoa_append - // uctoa_append(buffer++, value, digit_value) - // [261] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 - // uctoa::@6 - // value = uctoa_append(buffer++, value, digit_value) - // [262] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - // value = uctoa_append(buffer++, value, digit_value); - // [263] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 - inc.z buffer - bne !+ - inc.z buffer+1 - !: - // [255] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] - // [255] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy - // [255] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 - lda #1 - sta.z started - // [255] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy - jmp __b4 -} - // uctoa_append -// Used to convert a single digit of an unsigned number value to a string representation -// Counts a single digit up from '0' as long as the value is larger than sub. -// Each time the digit is increased sub is subtracted from value. -// - buffer : pointer to the char that receives the digit -// - value : The value where the digit will be derived from -// - 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($d) buffer, byte register(X) value, byte zp($1c) sub) -uctoa_append: { - .label buffer = $d - .label sub = $1c - // [265] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - // [265] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 - ldy #0 - // [265] 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) - // [266] 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] - // [267] *((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 - // } - // [268] return - rts - // uctoa_append::@2 - __b2: - // digit++; - // [269] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy - iny - // value -= sub - // [270] (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 - // [265] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - // [265] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [265] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy - jmp __b1 -} - // printf_ulong -// Print an unsigned int using a specific format -// printf_ulong(dword zp(2) uvalue) -printf_ulong: { - .const format_min_length = 0 - .const format_justify_left = 0 - .const format_zero_padding = 0 - .const format_upper_case = 0 - .label uvalue = 2 - // printf_ulong::@1 - // printf_buffer.sign = format.sign_always?'+':0 - // [272] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 - // Handle any sign - lda #0 - sta printf_buffer - // ultoa(uvalue, printf_buffer.digits, format.radix) - // [273] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#0 -- vduz1=vduz2 - lda.z uvalue - sta.z ultoa.value - lda.z uvalue+1 - sta.z ultoa.value+1 - lda.z uvalue+2 - sta.z ultoa.value+2 - lda.z uvalue+3 - sta.z ultoa.value+3 - // [274] call ultoa - // Format number into buffer - // [278] phi from printf_ulong::@1 to ultoa [phi:printf_ulong::@1->ultoa] - jsr ultoa - // printf_ulong::@2 - // printf_number_buffer(printf_buffer, format) - // [275] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 - lda printf_buffer - sta.z printf_number_buffer.buffer_sign - // [276] call printf_number_buffer - // Print using format - // [180] phi from printf_ulong::@2 to printf_number_buffer [phi:printf_ulong::@2->printf_number_buffer] - // [180] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_ulong::format_upper_case#0 [phi:printf_ulong::@2->printf_number_buffer#0] -- vbuz1=vbuc1 - lda #format_upper_case - sta.z printf_number_buffer.format_upper_case - // [180] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#0 [phi:printf_ulong::@2->printf_number_buffer#1] -- register_copy - // [180] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_ulong::@2->printf_number_buffer#2] -- pbuz1=pbuc1 - lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - sta.z printf_number_buffer.buffer_digits+1 - // [180] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_ulong::format_zero_padding#0 [phi:printf_ulong::@2->printf_number_buffer#3] -- vbuz1=vbuc1 - lda #format_zero_padding - sta.z printf_number_buffer.format_zero_padding - // [180] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_ulong::format_justify_left#0 [phi:printf_ulong::@2->printf_number_buffer#4] -- vbuz1=vbuc1 - lda #format_justify_left - sta.z printf_number_buffer.format_justify_left - // [180] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_ulong::format_min_length#0 [phi:printf_ulong::@2->printf_number_buffer#5] -- vbuxx=vbuc1 - ldx #format_min_length - jsr printf_number_buffer - // printf_ulong::@return - // } - // [277] return - rts } // ultoa // Converts unsigned number value to a string representing it in RADIX format. @@ -15428,64 +14972,63 @@ printf_ulong: { // - 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) -// ultoa(dword zp(7) value, byte* zp($21) buffer) +// ultoa(dword zp(6) value, byte* zp($e) buffer) ultoa: { - .const max_digits = $a - .label digit_value = $1d - .label buffer = $21 - .label digit = $1c - .label value = 7 - // [279] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] - // [279] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 + .label digit_value = $1b + .label buffer = $e + .label digit = $1f + .label value = 6 + // [173] phi from ultoa to ultoa::@1 [phi:ultoa->ultoa::@1] + // [173] phi (byte*) ultoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:ultoa->ultoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [279] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 + // [173] phi (byte) ultoa::started#2 = (byte) 0 [phi:ultoa->ultoa::@1#1] -- vbuxx=vbuc1 ldx #0 - // [279] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy - // [279] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 + // [173] phi (dword) ultoa::value#2 = (dword) ultoa::value#1 [phi:ultoa->ultoa::@1#2] -- register_copy + // [173] phi (byte) ultoa::digit#2 = (byte) 0 [phi:ultoa->ultoa::@1#3] -- vbuz1=vbuc1 txa sta.z digit // ultoa::@1 __b1: // for( char digit=0; digit= digit_value) - // [288] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuxx_then_la1 + // [182] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5 -- vbuc1_neq_vbuxx_then_la1 cpx #0 bne __b5 // ultoa::@7 - // [289] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 + // [183] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z digit_value+3 bcc !+ @@ -15517,46 +15060,46 @@ ultoa: { cmp.z digit_value bcs __b5 !: - // [290] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] - // [290] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy - // [290] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy - // [290] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy + // [184] phi from ultoa::@7 to ultoa::@4 [phi:ultoa::@7->ultoa::@4] + // [184] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#11 [phi:ultoa::@7->ultoa::@4#0] -- register_copy + // [184] phi (byte) ultoa::started#4 = (byte) ultoa::started#2 [phi:ultoa::@7->ultoa::@4#1] -- register_copy + // [184] phi (dword) ultoa::value#6 = (dword) ultoa::value#2 [phi:ultoa::@7->ultoa::@4#2] -- register_copy // ultoa::@4 __b4: // for( char digit=0; digitultoa::@1] - // [279] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy - // [279] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy - // [279] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy - // [279] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy + // [173] phi from ultoa::@4 to ultoa::@1 [phi:ultoa::@4->ultoa::@1] + // [173] phi (byte*) ultoa::buffer#11 = (byte*) ultoa::buffer#14 [phi:ultoa::@4->ultoa::@1#0] -- register_copy + // [173] phi (byte) ultoa::started#2 = (byte) ultoa::started#4 [phi:ultoa::@4->ultoa::@1#1] -- register_copy + // [173] phi (dword) ultoa::value#2 = (dword) ultoa::value#6 [phi:ultoa::@4->ultoa::@1#2] -- register_copy + // [173] phi (byte) ultoa::digit#2 = (byte) ultoa::digit#1 [phi:ultoa::@4->ultoa::@1#3] -- register_copy jmp __b1 // ultoa::@5 __b5: // ultoa_append(buffer++, value, digit_value) - // [292] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 - // [293] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 - // [294] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 - // [295] call ultoa_append - // [299] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] + // [186] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11 + // [187] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2 + // [188] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0 + // [189] call ultoa_append + // [193] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] jsr ultoa_append // ultoa_append(buffer++, value, digit_value) - // [296] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 + // [190] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2 // ultoa::@6 // value = ultoa_append(buffer++, value, digit_value) - // [297] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 + // [191] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0 // value = ultoa_append(buffer++, value, digit_value); - // [298] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [192] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [290] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] - // [290] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy - // [290] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 + // [184] phi from ultoa::@6 to ultoa::@4 [phi:ultoa::@6->ultoa::@4] + // [184] phi (byte*) ultoa::buffer#14 = (byte*) ultoa::buffer#4 [phi:ultoa::@6->ultoa::@4#0] -- register_copy + // [184] phi (byte) ultoa::started#4 = (byte) 1 [phi:ultoa::@6->ultoa::@4#1] -- vbuxx=vbuc1 ldx #1 - // [290] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy + // [184] phi (dword) ultoa::value#6 = (dword) ultoa::value#0 [phi:ultoa::@6->ultoa::@4#2] -- register_copy jmp __b4 } // ultoa_append @@ -15568,20 +15111,20 @@ ultoa: { // - 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. -// ultoa_append(byte* zp($21) buffer, dword zp(7) value, dword zp($1d) sub) +// ultoa_append(byte* zp($e) buffer, dword zp(6) value, dword zp($1b) sub) ultoa_append: { - .label buffer = $21 - .label value = 7 - .label sub = $1d - .label return = 7 - // [300] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] - // [300] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 + .label buffer = $e + .label value = 6 + .label sub = $1b + .label return = 6 + // [194] phi from ultoa_append to ultoa_append::@1 [phi:ultoa_append->ultoa_append::@1] + // [194] phi (byte) ultoa_append::digit#2 = (byte) 0 [phi:ultoa_append->ultoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [300] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy + // [194] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#0 [phi:ultoa_append->ultoa_append::@1#1] -- register_copy // ultoa_append::@1 __b1: // while (value >= sub) - // [301] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 + // [195] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2 -- vduz1_ge_vduz2_then_la1 lda.z value+3 cmp.z sub+3 bcc !+ @@ -15600,21 +15143,21 @@ ultoa_append: { !: // ultoa_append::@3 // *buffer = DIGITS[digit] - // [302] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [196] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y // ultoa_append::@return // } - // [303] return + // [197] return rts // ultoa_append::@2 __b2: // digit++; - // [304] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [198] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2 -- vbuxx=_inc_vbuxx inx // value -= sub - // [305] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 + // [199] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0 -- vduz1=vduz1_minus_vduz2 lda.z value sec sbc.z sub @@ -15628,105 +15171,718 @@ ultoa_append: { lda.z value+3 sbc.z sub+3 sta.z value+3 - // [300] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] - // [300] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy - // [300] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + // [194] phi from ultoa_append::@2 to ultoa_append::@1 [phi:ultoa_append::@2->ultoa_append::@1] + // [194] phi (byte) ultoa_append::digit#2 = (byte) ultoa_append::digit#1 [phi:ultoa_append::@2->ultoa_append::@1#0] -- register_copy + // [194] phi (dword) ultoa_append::value#2 = (dword) ultoa_append::value#1 [phi:ultoa_append::@2->ultoa_append::@1#1] -- register_copy + jmp __b1 +} + // tod_str +// Convert time of day to a human-readable string "hh:mm:ss:10" +// tod_str(byte zp($19) tod_TENTHS, byte zp($1a) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) +tod_str: { + .label tod_TENTHS = $19 + .label tod_SEC = $1a + // tod.HOURS>>4 + // [200] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuaa=vbuxx_ror_4 + txa + lsr + lsr + lsr + lsr + // '0'+(tod.HOURS>>4) + // [201] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // tod_buffer[0] = '0'+(tod.HOURS>>4) + // [202] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuaa + sta tod_buffer + // tod.HOURS&0x0f + // [203] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 + txa + and #$f + // '0'+(tod.HOURS&0x0f) + // [204] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // tod_buffer[1] = '0'+(tod.HOURS&0x0f) + // [205] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuaa + sta tod_buffer+1 + // tod.MIN>>4 + // [206] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuaa=vbuyy_ror_4 + tya + lsr + lsr + lsr + lsr + // '0'+(tod.MIN>>4) + // [207] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // tod_buffer[3] = '0'+(tod.MIN>>4) + // [208] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuaa + sta tod_buffer+3 + // tod.MIN&0x0f + // [209] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 + tya + and #$f + // '0'+(tod.MIN&0x0f) + // [210] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // tod_buffer[4] = '0'+(tod.MIN&0x0f) + // [211] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuaa + sta tod_buffer+4 + // tod.SEC>>4 + // [212] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 + lda.z tod_SEC + lsr + lsr + lsr + lsr + // '0'+(tod.SEC>>4) + // [213] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // tod_buffer[6] = '0'+(tod.SEC>>4) + // [214] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuaa + sta tod_buffer+6 + // tod.SEC&0x0f + // [215] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + lda #$f + and.z tod_SEC + // '0'+(tod.SEC&0x0f) + // [216] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // tod_buffer[7] = '0'+(tod.SEC&0x0f) + // [217] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuaa + sta tod_buffer+7 + // tod.TENTHS>>4 + // [218] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 + lda.z tod_TENTHS + lsr + lsr + lsr + lsr + // '0'+(tod.TENTHS>>4) + // [219] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // tod_buffer[9] = '0'+(tod.TENTHS>>4) + // [220] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuaa + sta tod_buffer+9 + // tod.TENTHS&0x0f + // [221] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + lda #$f + and.z tod_TENTHS + // '0'+(tod.TENTHS&0x0f) + // [222] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuaa=vbuc1_plus_vbuaa + clc + adc #'0' + // tod_buffer[10] = '0'+(tod.TENTHS&0x0f) + // [223] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuaa + sta tod_buffer+$a + // tod_str::@return + // } + // [224] return + rts +} + // tod_read +// Read time of day +tod_read: { + .label return_HOURS = $1f + .label return_MIN = $18 + // hours = CIA1->TOD_HOURS + // [225] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // Reading sequence is important. TOD latches on reading hours until 10ths is read. + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS + sta.z return_HOURS + // mins = CIA1->TOD_MIN + // [226] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 + lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN + // secs = CIA1->TOD_SEC + // [227] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 + ldx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC + // tenths = CIA1->TOD_10THS + // [228] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 + ldy CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS + // tod_read::@return + // } + // [229] return + rts +} + // queens +// Generates all valid placements of queens on a NxN board without recursion +// Works exactly like the recursive solution by generating all legal placements af a queen for a specific row taking into consideration the queens already placed on the rows below +// and then moving on to generating all legal placements on the rows above. +// In practice this works like a depth first tree search where the level in the tree is the row on the board and each branch in the tree is the legal placement of a queen on that row. +// The solution uses the board itself as a "cursor" moving through all possibilities +// When all columns on a row is exhausted move back down to the lower level and move forward one position until we are done with the last position on the first row +queens: { + // The current row where the queen is moving + .label row = $18 + // [231] phi from queens to queens::@1 [phi:queens->queens::@1] + // [231] phi (dword) count#10 = (dword) 0 [phi:queens->queens::@1#0] -- vduz1=vduc1 + lda #<0 + sta.z count + sta.z count+1 + lda #<0>>$10 + sta.z count+2 + lda #>0>>$10 + sta.z count+3 + // [231] phi (byte) queens::row#10 = (byte) 1 [phi:queens->queens::@1#1] -- vbuz1=vbuc1 + lda #1 + sta.z row + // [231] phi from queens::@4 queens::@7 queens::@8 queens::@9 to queens::@1 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1] + // [231] phi (dword) count#10 = (dword) count#25 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#0] -- register_copy + // [231] phi (byte) queens::row#10 = (byte) queens::row#10 [phi:queens::@4/queens::@7/queens::@8/queens::@9->queens::@1#1] -- register_copy + // queens::@1 + // queens::@2 + __b2: + // board[row]++; + // [232] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10) -- pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1 + ldx.z row + inc board,x + // if(board[row]==QUEENS+1) + // [233] if(*((const byte*) board + (byte) queens::row#10)==(byte)(number) 8+(number) 1) goto queens::@3 -- pbuc1_derefidx_vbuz1_eq_vbuc2_then_la1 + ldy.z row + lda board,y + cmp #8+1 + beq __b3 + // queens::@5 + // legal(row, board[row]) + // [234] (byte) legal::row#0 ← (byte) queens::row#10 + // [235] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10) -- vbuz1=pbuc1_derefidx_vbuz2 + lda board,y + sta.z legal.column + // [236] call legal + // [308] phi from queens::@5 to legal [phi:queens::@5->legal] + jsr legal + // legal(row, board[row]) + // [237] (byte) legal::return#0 ← (byte) legal::return#4 + // queens::@9 + // [238] (byte~) queens::$2 ← (byte) legal::return#0 + // if(legal(row, board[row])) + // [239] if((byte) 0==(byte~) queens::$2) goto queens::@1 -- vbuc1_eq_vbuaa_then_la1 + cmp #0 + beq __b2 + // queens::@6 + // if(row==QUEENS) + // [240] if((byte) queens::row#10==(byte) 8) goto queens::@4 -- vbuz1_eq_vbuc1_then_la1 + // position is legal - move up to the next row + lda #8 + cmp.z row + beq __b4 + // queens::@7 + // row++; + // [241] (byte) queens::row#1 ← ++ (byte) queens::row#10 -- vbuz1=_inc_vbuz1 + inc.z row + jmp __b2 + // queens::@4 + __b4: + // ++count; + // [242] (dword) count#25 ← ++ (dword) count#10 -- vduz1=_inc_vduz1 + inc.z count + bne !+ + inc.z count+1 + bne !+ + inc.z count+2 + bne !+ + inc.z count+3 + !: + // print() + // [243] call print + // [248] phi from queens::@4 to print [phi:queens::@4->print] + jsr print + jmp __b2 + // queens::@3 + __b3: + // board[row] = 0 + // [244] *((const byte*) board + (byte) queens::row#10) ← (byte) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + // We moved past the end of the row - reset position and go down to the lower row + lda #0 + ldy.z row + sta board,y + // if(row==1) + // [245] if((byte) queens::row#10==(byte) 1) goto queens::@return -- vbuz1_eq_vbuc1_then_la1 + lda #1 + cmp.z row + beq __breturn + // queens::@8 + // row--; + // [246] (byte) queens::row#2 ← -- (byte) queens::row#10 -- vbuz1=_dec_vbuz1 + dec.z row + jmp __b2 + // queens::@return + __breturn: + // } + // [247] return + rts +} + // print +// Print the board with a legal placement. +print: { + .label i = $19 + .label i1 = $1a + .label j = $a + // printf("\n#%lu:\n ",count) + // [249] call printf_str + // [44] phi from print to printf_str [phi:print->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str [phi:print->printf_str#0] -- pbuz1=pbuc1 + lda #str + sta.z printf_str.str+1 + jsr printf_str + // print::@11 + // printf("\n#%lu:\n ",count) + // [250] (dword) printf_ulong::uvalue#1 ← (dword) count#25 + // [251] call printf_ulong + // [100] phi from print::@11 to printf_ulong [phi:print::@11->printf_ulong] + // [100] phi (dword) printf_ulong::uvalue#2 = (dword) printf_ulong::uvalue#1 [phi:print::@11->printf_ulong#0] -- register_copy + jsr printf_ulong + // [252] phi from print::@11 to print::@12 [phi:print::@11->print::@12] + // print::@12 + // printf("\n#%lu:\n ",count) + // [253] call printf_str + // [44] phi from print::@12 to printf_str [phi:print::@12->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str1 [phi:print::@12->printf_str#0] -- pbuz1=pbuc1 + lda #str1 + sta.z printf_str.str+1 + jsr printf_str + // [254] phi from print::@12 to print::@1 [phi:print::@12->print::@1] + // [254] phi (byte) print::i#2 = (byte) 1 [phi:print::@12->print::@1#0] -- vbuz1=vbuc1 + lda #1 + sta.z i + // print::@1 + __b1: + // for(char i=1;i<=QUEENS;++i) + // [255] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2 -- vbuz1_lt_vbuc1_then_la1 + lda.z i + cmp #8+1 + bcc __b2 + // [256] phi from print::@1 to print::@3 [phi:print::@1->print::@3] + // [256] phi (byte) print::i1#2 = (byte) 1 [phi:print::@1->print::@3#0] -- vbuz1=vbuc1 + lda #1 + sta.z i1 + // print::@3 + __b3: + // for(char i=1;i<=QUEENS;++i) + // [257] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4 -- vbuz1_lt_vbuc1_then_la1 + lda.z i1 + cmp #8+1 + bcc __b4 + // print::@return + // } + // [258] return + rts + // [259] phi from print::@3 to print::@4 [phi:print::@3->print::@4] + // print::@4 + __b4: + // printf("\n%x",i) + // [260] call printf_str + // [44] phi from print::@4 to printf_str [phi:print::@4->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str2 [phi:print::@4->printf_str#0] -- pbuz1=pbuc1 + lda #str2 + sta.z printf_str.str+1 + jsr printf_str + // print::@14 + // printf("\n%x",i) + // [261] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2 -- vbuxx=vbuz1 + ldx.z i1 + // [262] call printf_uchar + // [275] phi from print::@14 to printf_uchar [phi:print::@14->printf_uchar] + // [275] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#1 [phi:print::@14->printf_uchar#0] -- register_copy + jsr printf_uchar + // [263] phi from print::@14 to print::@5 [phi:print::@14->print::@5] + // [263] phi (byte) print::j#2 = (byte) 1 [phi:print::@14->print::@5#0] -- vbuz1=vbuc1 + lda #1 + sta.z j + // print::@5 + __b5: + // for(char j=1;j<=QUEENS;++j) + // [264] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6 -- vbuz1_lt_vbuc1_then_la1 + lda.z j + cmp #8+1 + bcc __b6 + // print::@7 + // for(char i=1;i<=QUEENS;++i) + // [265] (byte) print::i1#1 ← ++ (byte) print::i1#2 -- vbuz1=_inc_vbuz1 + inc.z i1 + // [256] phi from print::@7 to print::@3 [phi:print::@7->print::@3] + // [256] phi (byte) print::i1#2 = (byte) print::i1#1 [phi:print::@7->print::@3#0] -- register_copy + jmp __b3 + // print::@6 + __b6: + // if(board[i]==j) + // [266] if(*((const byte*) board + (byte) print::i1#2)==(byte) print::j#2) goto print::@8 -- pbuc1_derefidx_vbuz1_eq_vbuz2_then_la1 + ldy.z i1 + lda board,y + cmp.z j + beq __b8 + // [267] phi from print::@6 to print::@10 [phi:print::@6->print::@10] + // print::@10 + // printf("-") + // [268] call printf_str + // [44] phi from print::@10 to printf_str [phi:print::@10->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str4 [phi:print::@10->printf_str#0] -- pbuz1=pbuc1 + lda #str4 + sta.z printf_str.str+1 + jsr printf_str + // print::@9 + __b9: + // for(char j=1;j<=QUEENS;++j) + // [269] (byte) print::j#1 ← ++ (byte) print::j#2 -- vbuz1=_inc_vbuz1 + inc.z j + // [263] phi from print::@9 to print::@5 [phi:print::@9->print::@5] + // [263] phi (byte) print::j#2 = (byte) print::j#1 [phi:print::@9->print::@5#0] -- register_copy + jmp __b5 + // [270] phi from print::@6 to print::@8 [phi:print::@6->print::@8] + // print::@8 + __b8: + // printf("Q") + // [271] call printf_str + // [44] phi from print::@8 to printf_str [phi:print::@8->printf_str] + // [44] phi (byte*) printf_str::str#15 = (const byte*) print::str3 [phi:print::@8->printf_str#0] -- pbuz1=pbuc1 + lda #str3 + sta.z printf_str.str+1 + jsr printf_str + jmp __b9 + // print::@2 + __b2: + // printf("%x",i) + // [272] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2 -- vbuxx=vbuz1 + ldx.z i + // [273] call printf_uchar + // [275] phi from print::@2 to printf_uchar [phi:print::@2->printf_uchar] + // [275] phi (byte) printf_uchar::uvalue#2 = (byte) printf_uchar::uvalue#0 [phi:print::@2->printf_uchar#0] -- register_copy + jsr printf_uchar + // print::@13 + // for(char i=1;i<=QUEENS;++i) + // [274] (byte) print::i#1 ← ++ (byte) print::i#2 -- vbuz1=_inc_vbuz1 + inc.z i + // [254] phi from print::@13 to print::@1 [phi:print::@13->print::@1] + // [254] phi (byte) print::i#2 = (byte) print::i#1 [phi:print::@13->print::@1#0] -- register_copy + jmp __b1 + str: .text @"\n#" + .byte 0 + str1: .text @":\n " + .byte 0 + str2: .text @"\n" + .byte 0 + str3: .text "Q" + .byte 0 + str4: .text "-" + .byte 0 +} + // printf_uchar +// Print an unsigned char using a specific format +// printf_uchar(byte register(X) uvalue) +printf_uchar: { + // printf_uchar::@1 + // printf_buffer.sign = format.sign_always?'+':0 + // [276] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // Handle any sign + lda #0 + sta printf_buffer + // uctoa(uvalue, printf_buffer.digits, format.radix) + // [277] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2 + // [278] call uctoa + // Format number into buffer + // [282] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] + jsr uctoa + // printf_uchar::@2 + // printf_number_buffer(printf_buffer, format) + // [279] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + lda printf_buffer + sta.z printf_number_buffer.buffer_sign + // [280] call printf_number_buffer + // Print using format + // [107] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] + // [107] phi (byte) printf_number_buffer::format_upper_case#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_upper_case + // [107] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#2 [phi:printf_uchar::@2->printf_number_buffer#1] -- register_copy + // [107] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uchar::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z printf_number_buffer.buffer_digits+1 + // [107] phi (byte) printf_number_buffer::format_zero_padding#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + lda #0 + sta.z printf_number_buffer.format_zero_padding + // [107] phi (byte) printf_number_buffer::format_justify_left#10 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + sta.z printf_number_buffer.format_justify_left + // [107] phi (byte) printf_number_buffer::format_min_length#3 = (byte) 0 [phi:printf_uchar::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + tax + jsr printf_number_buffer + // printf_uchar::@return + // } + // [281] return + rts +} + // uctoa +// Converts unsigned number value to a string representing it in RADIX format. +// If the leading digits are zero they are not included in the string. +// - 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 register(X) value, byte* zp($21) buffer) +uctoa: { + .label digit_value = $20 + .label buffer = $21 + .label digit = $b + .label started = $c + // [283] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] + // [283] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + sta.z buffer+1 + // [283] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 + lda #0 + sta.z started + // [283] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa->uctoa::@1#2] -- register_copy + // [283] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa->uctoa::@1#3] -- vbuz1=vbuc1 + sta.z digit + // uctoa::@1 + __b1: + // for( char digit=0; digit= digit_value) + // [290] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5 -- vbuc1_neq_vbuz1_then_la1 + lda #0 + cmp.z started + bne __b5 + // uctoa::@7 + // [291] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@5 -- vbuxx_ge_vbuz1_then_la1 + cpx.z digit_value + bcs __b5 + // [292] phi from uctoa::@7 to uctoa::@4 [phi:uctoa::@7->uctoa::@4] + // [292] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@7->uctoa::@4#0] -- register_copy + // [292] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@7->uctoa::@4#1] -- register_copy + // [292] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@7->uctoa::@4#2] -- register_copy + // uctoa::@4 + __b4: + // for( char digit=0; digituctoa::@1] + // [283] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@4->uctoa::@1#0] -- register_copy + // [283] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@4->uctoa::@1#1] -- register_copy + // [283] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@4->uctoa::@1#2] -- register_copy + // [283] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@4->uctoa::@1#3] -- register_copy + jmp __b1 + // uctoa::@5 + __b5: + // uctoa_append(buffer++, value, digit_value) + // [294] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + // [295] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + // [296] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + // [297] call uctoa_append + // [301] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] + jsr uctoa_append + // uctoa_append(buffer++, value, digit_value) + // [298] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + // uctoa::@6 + // value = uctoa_append(buffer++, value, digit_value) + // [299] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + // value = uctoa_append(buffer++, value, digit_value); + // [300] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + inc.z buffer + bne !+ + inc.z buffer+1 + !: + // [292] phi from uctoa::@6 to uctoa::@4 [phi:uctoa::@6->uctoa::@4] + // [292] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@6->uctoa::@4#0] -- register_copy + // [292] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@6->uctoa::@4#1] -- vbuz1=vbuc1 + lda #1 + sta.z started + // [292] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@6->uctoa::@4#2] -- register_copy + jmp __b4 +} + // uctoa_append +// Used to convert a single digit of an unsigned number value to a string representation +// Counts a single digit up from '0' as long as the value is larger than sub. +// Each time the digit is increased sub is subtracted from value. +// - buffer : pointer to the char that receives the digit +// - value : The value where the digit will be derived from +// - 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($21) buffer, byte register(X) value, byte zp($20) sub) +uctoa_append: { + .label buffer = $21 + .label sub = $20 + // [302] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] + // [302] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 + ldy #0 + // [302] 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) + // [303] 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] + // [304] *((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 + // } + // [305] return + rts + // uctoa_append::@2 + __b2: + // digit++; + // [306] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy + iny + // value -= sub + // [307] (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 + // [302] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] + // [302] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy + // [302] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy jmp __b1 } // legal // Checks is a placement of the queen on the board is legal. // Checks the passed (row, column) against all queens placed on the board on lower rows. // If no conflict for desired position returns 1 otherwise returns 0 -// legal(byte zp($c) row, byte zp($1b) column) +// legal(byte zp($18) row, byte zp($1f) column) legal: { - .label row = $c - .label column = $1b - .label diff1_return = $b - // [307] phi from legal to legal::@1 [phi:legal->legal::@1] - // [307] phi (byte) legal::i#10 = (byte) 1 [phi:legal->legal::@1#0] -- vbuyy=vbuc1 + .label row = $18 + .label column = $1f + .label diff1_return = $20 + // [309] phi from legal to legal::@1 [phi:legal->legal::@1] + // [309] phi (byte) legal::i#10 = (byte) 1 [phi:legal->legal::@1#0] -- vbuyy=vbuc1 ldy #1 // legal::@1 __b1: // row-1 - // [308] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuxx=vbuz1_minus_1 + // [310] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1 -- vbuxx=vbuz1_minus_1 ldx.z row dex // for(char i=1;i<=row-1;++i) - // [309] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 -- vbuyy_le_vbuxx_then_la1 + // [311] if((byte) legal::i#10<=(byte~) legal::$0) goto legal::@2 -- vbuyy_le_vbuxx_then_la1 sty.z $ff cpx.z $ff bcs __b2 - // [310] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] - // [310] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuaa=vbuc1 + // [312] phi from legal::@1 to legal::@return [phi:legal::@1->legal::@return] + // [312] phi (byte) legal::return#4 = (byte) 1 [phi:legal::@1->legal::@return#0] -- vbuaa=vbuc1 lda #1 rts - // [310] phi from legal::@2 legal::@5 to legal::@return [phi:legal::@2/legal::@5->legal::@return] + // [312] phi from legal::@2 legal::@5 to legal::@return [phi:legal::@2/legal::@5->legal::@return] __b4: - // [310] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@5->legal::@return#0] -- vbuaa=vbuc1 + // [312] phi (byte) legal::return#4 = (byte) 0 [phi:legal::@2/legal::@5->legal::@return#0] -- vbuaa=vbuc1 lda #0 // legal::@return // } - // [311] return + // [313] return rts // legal::@2 __b2: // if(board[i]==column) - // [312] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuyy_eq_vbuz1_then_la1 + // [314] if(*((const byte*) board + (byte) legal::i#10)==(byte) legal::column#0) goto legal::@return -- pbuc1_derefidx_vbuyy_eq_vbuz1_then_la1 lda board,y cmp.z column beq __b4 // legal::@4 // diff(board[i],column) - // [313] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) -- vbuaa=pbuc1_derefidx_vbuyy + // [315] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10) -- vbuaa=pbuc1_derefidx_vbuyy lda board,y // legal::diff1 // if(alegal::diff1_@return] - // [316] phi (byte) legal::diff1_return#2 = (byte) legal::diff1_return#0 [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return#0] -- register_copy + // [318] phi from legal::diff1_@1 legal::diff1_@3 to legal::diff1_@return [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return] + // [318] phi (byte) legal::diff1_return#2 = (byte) legal::diff1_return#0 [phi:legal::diff1_@1/legal::diff1_@3->legal::diff1_@return#0] -- register_copy // legal::diff1_@return // legal::diff2 diff2: // if(alegal::diff2_@return] - // [319] phi (byte) legal::diff2_return#2 = (byte) legal::diff2_return#0 [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return#0] -- register_copy + // [321] phi from legal::diff2_@1 legal::diff2_@3 to legal::diff2_@return [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return] + // [321] phi (byte) legal::diff2_return#2 = (byte) legal::diff2_return#0 [phi:legal::diff2_@1/legal::diff2_@3->legal::diff2_@return#0] -- register_copy // legal::diff2_@return // legal::@5 __b5: // if(diff(board[i],column)==diff(i,row)) - // [320] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 -- vbuz1_neq_vbuaa_then_la1 + // [322] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3 -- vbuz1_neq_vbuaa_then_la1 cmp.z diff1_return bne __b3 jmp __b4 // legal::@3 __b3: // for(char i=1;i<=row-1;++i) - // [321] (byte) legal::i#1 ← ++ (byte) legal::i#10 -- vbuyy=_inc_vbuyy + // [323] (byte) legal::i#1 ← ++ (byte) legal::i#10 -- vbuyy=_inc_vbuyy iny - // [307] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] - // [307] phi (byte) legal::i#10 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy + // [309] phi from legal::@3 to legal::@1 [phi:legal::@3->legal::@1] + // [309] phi (byte) legal::i#10 = (byte) legal::i#1 [phi:legal::@3->legal::@1#0] -- register_copy jmp __b1 // legal::diff2_@1 diff2___b1: // return b-a; - // [322] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 -- vbuaa=vbuz1_minus_vbuyy + // [324] (byte) legal::diff2_return#0 ← (byte) legal::row#0 - (byte) legal::i#10 -- vbuaa=vbuz1_minus_vbuyy tya eor #$ff sec @@ -15734,7 +15890,7 @@ legal: { jmp __b5 // legal::diff1_@1 diff1___b1: - // [323] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 -- vbuz1=vbuz2_minus_vbuaa + // [325] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0 -- vbuz1=vbuz2_minus_vbuaa eor #$ff sec adc.z column @@ -15744,41 +15900,41 @@ legal: { // tod_init // Initialize time-of-day clock // This uses the MOS6526 CIA#1 -// tod_init(byte zp($15) tod_TENTHS, byte zp($16) tod_SEC, byte register(X) tod_MIN, byte register(Y) tod_HOURS) +// tod_init(byte zp($16) tod_TENTHS, byte zp($17) tod_SEC, byte register(X) tod_MIN, byte register(Y) tod_HOURS) tod_init: { - .label tod_TENTHS = $15 - .label tod_SEC = $16 + .label tod_TENTHS = $16 + .label tod_SEC = $17 // CIA1->TIMER_A_CONTROL |= 0x80 - // [324] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 + // [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 // Set 50hz (this assumes PAL!) (bit7=1) lda #$80 ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // CIA1->TIMER_B_CONTROL &= 0x7f - // [325] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 + // [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 // Writing TOD clock (bit7=0) lda #$7f and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // CIA1->TOD_HOURS = tod.HOURS - // [326] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy + // [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy // Reset TOD clock // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. sty CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS // CIA1->TOD_MIN = tod.MIN - // [327] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx + // [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx stx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN // CIA1->TOD_SEC = tod.SEC - // [328] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + // [330] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 lda.z tod_SEC sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC // CIA1->TOD_10THS = tod.TENTHS - // [329] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + // [331] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 lda.z tod_TENTHS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS // tod_init::@return // } - // [330] return + // [332] return rts } // printf_uint @@ -15791,44 +15947,44 @@ printf_uint: { .const format_upper_case = 0 // printf_uint::@1 // printf_buffer.sign = format.sign_always?'+':0 - // [332] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [334] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer // utoa(uvalue, printf_buffer.digits, format.radix) - // [333] call utoa + // [335] call utoa // Format number into buffer - // [337] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [339] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] jsr utoa // printf_uint::@2 // printf_number_buffer(printf_buffer, format) - // [334] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + // [336] (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 - // [335] call printf_number_buffer + // [337] call printf_number_buffer // Print using format - // [180] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] - // [180] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 + // [107] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] + // [107] phi (byte) printf_number_buffer::format_upper_case#10 = (const byte) printf_uint::format_upper_case#0 [phi:printf_uint::@2->printf_number_buffer#0] -- vbuz1=vbuc1 lda #format_upper_case sta.z printf_number_buffer.format_upper_case - // [180] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy - // [180] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 + // [107] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_uint::@2->printf_number_buffer#1] -- register_copy + // [107] phi (byte*) printf_number_buffer::buffer_digits#10 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:printf_uint::@2->printf_number_buffer#2] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z printf_number_buffer.buffer_digits+1 - // [180] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_zero_padding#10 = (const byte) printf_uint::format_zero_padding#0 [phi:printf_uint::@2->printf_number_buffer#3] -- vbuz1=vbuc1 lda #format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [180] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 + // [107] phi (byte) printf_number_buffer::format_justify_left#10 = (const byte) printf_uint::format_justify_left#0 [phi:printf_uint::@2->printf_number_buffer#4] -- vbuz1=vbuc1 lda #format_justify_left sta.z printf_number_buffer.format_justify_left - // [180] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 + // [107] phi (byte) printf_number_buffer::format_min_length#3 = (const byte) printf_uint::format_min_length#0 [phi:printf_uint::@2->printf_number_buffer#5] -- vbuxx=vbuc1 ldx #format_min_length jsr printf_number_buffer // printf_uint::@return // } - // [336] return + // [338] return rts } // utoa @@ -15837,78 +15993,78 @@ printf_uint: { // - 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($d) value, byte* zp($f) buffer) +// utoa(word zp($e) value, byte* zp($10) buffer) utoa: { .const max_digits = 5 .label digit_value = $21 - .label buffer = $f - .label digit = $c - .label value = $d - // [338] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] - // [338] 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 + .label buffer = $10 + .label digit = $d + .label value = $e + // [340] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + // [340] 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 - // [338] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuxx=vbuc1 + // [340] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuxx=vbuc1 ldx #0 - // [338] phi (word) utoa::value#2 = (const word) printf_uint::uvalue#0 [phi:utoa->utoa::@1#2] -- vwuz1=vwuc1 + // [340] 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 - // [338] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 + // [340] 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) - // [347] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuxx_then_la1 + // [349] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuxx_then_la1 cpx #0 bne __b5 // utoa::@7 - // [348] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 + // [350] 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 @@ -15916,46 +16072,46 @@ utoa: { beq __b5 !: bcc __b5 - // [349] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] - // [349] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy - // [349] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy - // [349] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy + // [351] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] + // [351] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy + // [351] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy + // [351] 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] - // [338] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy - // [338] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy - // [338] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy - // [338] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy + // [340] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [340] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy + // [340] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy + // [340] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy + // [340] 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) - // [351] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - // [352] (word) utoa_append::value#0 ← (word) utoa::value#2 - // [353] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - // [354] call utoa_append - // [358] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] + // [353] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + // [354] (word) utoa_append::value#0 ← (word) utoa::value#2 + // [355] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + // [356] call utoa_append + // [360] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] jsr utoa_append // utoa_append(buffer++, value, digit_value) - // [355] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + // [357] (word) utoa_append::return#0 ← (word) utoa_append::value#2 // utoa::@6 // value = utoa_append(buffer++, value, digit_value) - // [356] (word) utoa::value#0 ← (word) utoa_append::return#0 + // [358] (word) utoa::value#0 ← (word) utoa_append::return#0 // value = utoa_append(buffer++, value, digit_value); - // [357] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [359] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [349] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] - // [349] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy - // [349] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuxx=vbuc1 + // [351] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] + // [351] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy + // [351] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuxx=vbuc1 ldx #1 - // [349] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy + // [351] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy jmp __b4 } // utoa_append @@ -15967,20 +16123,20 @@ 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($f) buffer, word zp($d) value, word zp($21) sub) +// utoa_append(byte* zp($10) buffer, word zp($e) value, word zp($21) sub) utoa_append: { - .label buffer = $f - .label value = $d + .label buffer = $10 + .label value = $e .label sub = $21 - .label return = $d - // [359] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] - // [359] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 + .label return = $e + // [361] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + // [361] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [359] phi (word) utoa_append::value#2 = (word) utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [361] 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) - // [360] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [362] 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 !+ @@ -15991,21 +16147,21 @@ utoa_append: { bcc __b2 // utoa_append::@3 // *buffer = DIGITS[digit] - // [361] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [363] *((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 // } - // [362] return + // [364] return rts // utoa_append::@2 __b2: // digit++; - // [363] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [365] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuxx=_inc_vbuxx inx // value -= sub - // [364] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [366] (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 @@ -16013,25 +16169,25 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [359] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] - // [359] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [359] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [361] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [361] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [361] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // printf_cls // Clear the screen. Also resets current line/char cursor. printf_cls: { // memset(PRINTF_SCREEN_ADDRESS, ' ', PRINTF_SCREEN_BYTES) - // [366] call memset - // [73] phi from printf_cls to memset [phi:printf_cls->memset] - // [73] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuxx=vbuc1 + // [368] call memset + // [71] phi from printf_cls to memset [phi:printf_cls->memset] + // [71] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [73] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 + // [71] phi (void*) memset::str#3 = (void*) 1024 [phi:printf_cls->memset#1] -- pvoz1=pvoc1 lda #<$400 sta.z memset.str lda #>$400 sta.z memset.str+1 - // [73] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 + // [71] phi (word) memset::num#2 = (word)(number) $28*(number) $19 [phi:printf_cls->memset#2] -- vwuz1=vwuc1 lda #<$28*$19 sta.z memset.num lda #>$28*$19 @@ -16039,21 +16195,21 @@ printf_cls: { jsr memset // printf_cls::@1 // printf_cursor_ptr = PRINTF_SCREEN_ADDRESS - // [367] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 + // [369] (byte*) printf_cursor_ptr ← (byte*) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z printf_cursor_ptr lda #>$400 sta.z printf_cursor_ptr+1 // printf_cursor_x = 0 - // [368] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 + // [370] (byte) printf_cursor_x ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z printf_cursor_x // printf_cursor_y = 0 - // [369] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 + // [371] (byte) printf_cursor_y ← (byte) 0 -- vbuz1=vbuc1 sta.z printf_cursor_y // printf_cls::@return // } - // [370] return + // [372] return rts } // File Data diff --git a/src/test/ref/examples/eightqueens/eightqueens.sym b/src/test/ref/examples/eightqueens/eightqueens.sym index 115df5c61..6af05321e 100644 --- a/src/test/ref/examples/eightqueens/eightqueens.sym +++ b/src/test/ref/examples/eightqueens/eightqueens.sym @@ -43,8 +43,8 @@ (struct TIME_OF_DAY) TOD_ZERO loadstore mem[4] = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } (const byte*) board[(number) $14] = { fill( $14, 0) } (dword) count -(dword) count#14 count zp[4]:2 572.0 -(dword) count#22 count zp[4]:2 413.89655172413796 +(dword) count#10 count zp[4]:2 276.51724137931035 +(dword) count#25 count zp[4]:2 413.89655172413796 (byte()) legal((byte) legal::row , (byte) legal::column) (byte~) legal::$0 reg byte x 2000002.0 (label) legal::@1 @@ -54,7 +54,7 @@ (label) legal::@5 (label) legal::@return (byte) legal::column -(byte) legal::column#0 column zp[1]:27 235353.23529411765 +(byte) legal::column#0 column zp[1]:31 235353.23529411765 (label) legal::diff1 (label) legal::diff1_@1 (label) legal::diff1_@3 @@ -63,9 +63,9 @@ (byte) legal::diff1_a#0 reg byte a 2000002.0 (byte) legal::diff1_b (byte) legal::diff1_return -(byte) legal::diff1_return#0 diff1_return zp[1]:11 2000002.0 -(byte) legal::diff1_return#1 diff1_return zp[1]:11 2000002.0 -(byte) legal::diff1_return#2 diff1_return zp[1]:11 600000.6000000001 +(byte) legal::diff1_return#0 diff1_return zp[1]:32 2000002.0 +(byte) legal::diff1_return#1 diff1_return zp[1]:32 2000002.0 +(byte) legal::diff1_return#2 diff1_return zp[1]:32 600000.6000000001 (label) legal::diff2 (label) legal::diff2_@1 (label) legal::diff2_@3 @@ -83,9 +83,12 @@ (byte) legal::return#0 reg byte a 2002.0 (byte) legal::return#4 reg byte a 333.6666666666667 (byte) legal::row -(byte) legal::row#0 row zp[1]:12 222278.05555555556 +(byte) legal::row#0 row zp[1]:24 222278.05555555556 (void()) main() (label) main::@1 +(label) main::@10 +(label) main::@11 +(label) main::@12 (label) main::@2 (label) main::@3 (label) main::@4 @@ -98,16 +101,11 @@ (const byte*) main::str[(byte) $29] = (byte*) " - n queens problem using backtracking -" (const byte*) main::str1[(byte) $13] = (byte*) " number of queens:" -(const byte*) main::str2[(byte) 8] = (byte*) " -time: " -(byte) main::tod_HOURS -(byte) main::tod_HOURS#0 reg byte a 5.5 -(byte) main::tod_MIN -(byte) main::tod_MIN#0 tod_MIN zp[1]:23 5.5 -(byte) main::tod_SEC -(byte) main::tod_SEC#0 reg byte x 5.5 -(byte) main::tod_TENTHS -(byte) main::tod_TENTHS#0 reg byte y 5.5 +(const byte*) main::str2[(byte) $d] = (byte*) " +solutions: " +(const byte*) main::str3[(byte) 8] = (byte*) " time: " +(const byte*) main::str4[(byte) 3] = (byte*) ". +" (void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num) (label) memcpy::@1 (label) memcpy::@2 @@ -123,8 +121,8 @@ time: " (void*) memcpy::source (const void*) memcpy::source#0 source = (void*)(number) $400+(number) $28 (byte*) memcpy::src -(byte*) memcpy::src#1 src zp[2]:15 2.0E19 -(byte*) memcpy::src#2 src zp[2]:15 1.0E19 +(byte*) memcpy::src#1 src zp[2]:16 2.0E19 +(byte*) memcpy::src#2 src zp[2]:16 1.0E19 (byte*) memcpy::src_end (const byte*) memcpy::src_end#0 src_end = (byte*)(const void*) memcpy::source#0+(const word) memcpy::num#0 (void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num) @@ -139,9 +137,9 @@ time: " (byte*) memset::dst#2 dst zp[2]:33 1.33666666666666656E17 (byte*) memset::dst#4 dst zp[2]:33 2.000000000000002E15 (byte*) memset::end -(byte*) memset::end#0 end zp[2]:15 1.6833333333333332E16 +(byte*) memset::end#0 end zp[2]:16 1.6833333333333332E16 (word) memset::num -(word) memset::num#2 num zp[2]:15 1.000000000000001E15 +(word) memset::num#2 num zp[2]:16 1.000000000000001E15 (void*) memset::return (void*) memset::str (void*) memset::str#3 str zp[2]:33 @@ -162,14 +160,14 @@ time: " (label) print::@9 (label) print::@return (byte) print::i -(byte) print::i#1 i zp[1]:11 2000002.0 -(byte) print::i#2 i zp[1]:11 1000001.0 +(byte) print::i#1 i zp[1]:25 2000002.0 +(byte) print::i#2 i zp[1]:25 1000001.0 (byte) print::i1 -(byte) print::i1#1 i1 zp[1]:21 2000002.0 -(byte) print::i1#2 i1 zp[1]:21 1000000.357142857 +(byte) print::i1#1 i1 zp[1]:26 2000002.0 +(byte) print::i1#2 i1 zp[1]:26 1000000.357142857 (byte) print::j -(byte) print::j#1 j zp[1]:22 2.0000002E7 -(byte) print::j#2 j zp[1]:22 5714286.285714285 +(byte) print::j#1 j zp[1]:10 2.0000002E7 +(byte) print::j#2 j zp[1]:10 5714286.285714285 (const byte*) print::str[(byte) 3] = (byte*) " #" (const byte*) print::str1[(byte) 4] = (byte*) ": @@ -192,9 +190,9 @@ time: " (void()) printf_cls() (label) printf_cls::@1 (label) printf_cls::@return -(byte*) printf_cursor_ptr loadstore zp[2]:19 1.2788888888894998E12 -(byte) printf_cursor_x loadstore zp[1]:17 2.3647058823593533E11 -(byte) printf_cursor_y loadstore zp[1]:18 1.769060773481271E12 +(byte*) printf_cursor_ptr loadstore zp[2]:20 1.251086956522337E12 +(byte) printf_cursor_x loadstore zp[1]:18 2.3103448275924713E11 +(byte) printf_cursor_y loadstore zp[1]:19 1.7308108108114055E12 (byte) printf_format_number::justify_left (byte) printf_format_number::min_length (byte) printf_format_number::radix @@ -204,8 +202,8 @@ time: " (byte) printf_format_string::justify_left (byte) printf_format_string::min_length (void()) printf_ln() -(byte*~) printf_ln::$0 zp[2]:19 2.00000000002E11 -(byte*~) printf_ln::$1 zp[2]:19 2.00000000002E11 +(byte*~) printf_ln::$0 zp[2]:20 2.00000000002E11 +(byte*~) printf_ln::$1 zp[2]:20 2.00000000002E11 (label) printf_ln::@return (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_upper_case , (byte) printf_number_buffer::format_radix) (word~) printf_number_buffer::$19 zp[2]:33 1.00000001E8 @@ -233,47 +231,47 @@ time: " (label) printf_number_buffer::@return (struct printf_buffer_number) printf_number_buffer::buffer (byte*) printf_number_buffer::buffer_digits -(byte*) printf_number_buffer::buffer_digits#10 buffer_digits zp[2]:13 1.0344827689655172E7 +(byte*) printf_number_buffer::buffer_digits#10 buffer_digits zp[2]:14 1.0344827689655172E7 (byte) printf_number_buffer::buffer_sign -(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:28 200002.0 -(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:28 202.0 -(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:28 1.55050053E7 -(byte) printf_number_buffer::buffer_sign#2 buffer_sign zp[1]:28 2.0000002E7 +(byte) printf_number_buffer::buffer_sign#0 buffer_sign zp[1]:11 200002.0 +(byte) printf_number_buffer::buffer_sign#1 buffer_sign zp[1]:11 202.0 +(byte) printf_number_buffer::buffer_sign#10 buffer_sign zp[1]:11 1.55050053E7 +(byte) printf_number_buffer::buffer_sign#2 buffer_sign zp[1]:11 2.0000002E7 (struct printf_format_number) printf_number_buffer::format (byte) printf_number_buffer::format_justify_left -(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:22 6451612.9677419355 +(byte) printf_number_buffer::format_justify_left#10 format_justify_left zp[1]:31 6451612.9677419355 (byte) printf_number_buffer::format_min_length (byte) printf_number_buffer::format_min_length#3 reg byte x 1.00000001E7 (byte) printf_number_buffer::format_radix (byte) printf_number_buffer::format_sign_always (byte) printf_number_buffer::format_upper_case -(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:23 3846153.8846153845 +(byte) printf_number_buffer::format_upper_case#10 format_upper_case zp[1]:12 3846153.8846153845 (byte) printf_number_buffer::format_zero_padding -(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:6 9375000.09375 +(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:10 9375000.09375 (signed byte) printf_number_buffer::len (signed byte) printf_number_buffer::len#0 reg byte y 1.500000015E8 (signed byte) printf_number_buffer::len#1 reg byte y 2.00000002E8 (signed byte) printf_number_buffer::len#2 reg byte y 3.00000003E8 (signed byte) printf_number_buffer::padding -(signed byte) printf_number_buffer::padding#1 padding zp[1]:24 1.00000001E8 -(signed byte) printf_number_buffer::padding#10 padding zp[1]:24 1.904761923809524E7 +(signed byte) printf_number_buffer::padding#1 padding zp[1]:32 1.00000001E8 +(signed byte) printf_number_buffer::padding#10 padding zp[1]:32 1.904761923809524E7 (void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) (label) printf_padding::@1 (label) printf_padding::@2 (label) printf_padding::@3 (label) printf_padding::@return (byte) printf_padding::i -(byte) printf_padding::i#1 i zp[1]:27 2.000000000002E12 -(byte) printf_padding::i#2 i zp[1]:27 7.5000000000075E11 +(byte) printf_padding::i#1 i zp[1]:23 2.000000000002E12 +(byte) printf_padding::i#2 i zp[1]:23 7.5000000000075E11 (byte) printf_padding::length -(byte) printf_padding::length#0 length zp[1]:25 2.00000002E8 -(byte) printf_padding::length#1 length zp[1]:25 2.00000002E8 -(byte) printf_padding::length#2 length zp[1]:25 2.00000002E8 -(byte) printf_padding::length#6 length zp[1]:25 1.6671666666733334E11 +(byte) printf_padding::length#0 length zp[1]:13 2.00000002E8 +(byte) printf_padding::length#1 length zp[1]:13 2.00000002E8 +(byte) printf_padding::length#2 length zp[1]:13 2.00000002E8 +(byte) printf_padding::length#6 length zp[1]:13 1.6671666666733334E11 (byte) printf_padding::pad -(byte) printf_padding::pad#7 pad zp[1]:26 1.6666666666683334E11 +(byte) printf_padding::pad#7 pad zp[1]:22 1.6666666666683334E11 (void()) printf_scroll() -(byte*~) printf_scroll::$4 zp[2]:19 2.00000000000002E14 +(byte*~) printf_scroll::$4 zp[2]:20 2.00000000000002E14 (label) printf_scroll::@1 (label) printf_scroll::@2 (label) printf_scroll::@3 @@ -288,10 +286,10 @@ time: " (byte) printf_str::ch (byte) printf_str::ch#0 reg byte a 1.0000000001E10 (byte*) printf_str::str -(byte*) printf_str::str#0 str zp[2]:13 4.2857142861428566E9 -(byte*) printf_str::str#1 str zp[2]:13 2.00000002E8 -(byte*) printf_str::str#11 str zp[2]:13 2.05000000025E10 -(byte*) printf_str::str#13 str zp[2]:13 1.100000002E9 +(byte*) printf_str::str#0 str zp[2]:14 4.2857142861428566E9 +(byte*) printf_str::str#1 str zp[2]:14 2.00000002E8 +(byte*) printf_str::str#13 str zp[2]:14 2.05000000025E10 +(byte*) printf_str::str#15 str zp[2]:14 1.100000002E9 (void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) (label) printf_string::@1 (label) printf_string::@return @@ -339,17 +337,15 @@ time: " (label) printf_ulong::@return (struct printf_format_number) printf_ulong::format (byte) printf_ulong::format_justify_left -(const byte) printf_ulong::format_justify_left#0 format_justify_left = (byte) 0 (byte) printf_ulong::format_min_length -(const byte) printf_ulong::format_min_length#0 format_min_length = (byte) 0 (byte) printf_ulong::format_radix (byte) printf_ulong::format_sign_always (byte) printf_ulong::format_upper_case -(const byte) printf_ulong::format_upper_case#0 format_upper_case = (byte) 0 (byte) printf_ulong::format_zero_padding -(const byte) printf_ulong::format_zero_padding#0 format_zero_padding = (byte) 0 (dword) printf_ulong::uvalue -(dword) printf_ulong::uvalue#0 uvalue zp[4]:2 36667.33333333333 +(dword) printf_ulong::uvalue#0 uvalue zp[4]:2 22.0 +(dword) printf_ulong::uvalue#1 uvalue zp[4]:2 20002.0 +(dword) printf_ulong::uvalue#2 uvalue zp[4]:2 55006.5 (void()) queens() (byte~) queens::$2 reg byte a 2002.0 (label) queens::@1 @@ -363,9 +359,9 @@ time: " (label) queens::@9 (label) queens::@return (byte) queens::row -(byte) queens::row#1 row zp[1]:12 2002.0 -(byte) queens::row#10 row zp[1]:12 1144.0 -(byte) queens::row#2 row zp[1]:12 2002.0 +(byte) queens::row#1 row zp[1]:24 2002.0 +(byte) queens::row#10 row zp[1]:24 1144.0 +(byte) queens::row#2 row zp[1]:24 2002.0 (word()) strlen((byte*) strlen::str) (label) strlen::@1 (label) strlen::@2 @@ -376,9 +372,9 @@ time: " (word) strlen::return (word) strlen::return#2 return zp[2]:33 2.00000002E8 (byte*) strlen::str -(byte*) strlen::str#0 str zp[2]:15 2.000000000002E12 -(byte*) strlen::str#1 str zp[2]:15 5.50000001E8 -(byte*) strlen::str#3 str zp[2]:15 1.0003333333346667E12 +(byte*) strlen::str#0 str zp[2]:16 2.000000000002E12 +(byte*) strlen::str#1 str zp[2]:16 5.50000001E8 +(byte*) strlen::str#3 str zp[2]:16 1.0003333333346667E12 (byte*()) strupr((byte*) strupr::str) (byte~) strupr::$0 reg byte a 2.000000000002E12 (label) strupr::@1 @@ -387,10 +383,10 @@ time: " (label) strupr::@return (byte*) strupr::return (byte*) strupr::src -(byte*) strupr::src#1 src zp[2]:15 2.000000000002E12 -(byte*) strupr::src#2 src zp[2]:15 7.144285714294285E11 +(byte*) strupr::src#1 src zp[2]:16 2.000000000002E12 +(byte*) strupr::src#2 src zp[2]:16 7.144285714294285E11 (byte*) strupr::str -(byte*) strupr::str#0 str zp[2]:15 5.50000001E8 +(byte*) strupr::str#0 str zp[2]:16 5.50000001E8 (const byte*) tod_buffer[] = (byte*) "00:00:00:00" (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) (label) tod_init::@return @@ -400,20 +396,20 @@ time: " (byte) tod_init::tod_MIN (byte) tod_init::tod_MIN#0 reg byte x 22.4 (byte) tod_init::tod_SEC -(byte) tod_init::tod_SEC#0 tod_SEC zp[1]:22 16.0 +(byte) tod_init::tod_SEC#0 tod_SEC zp[1]:23 16.0 (byte) tod_init::tod_TENTHS -(byte) tod_init::tod_TENTHS#0 tod_TENTHS zp[1]:21 12.444444444444443 +(byte) tod_init::tod_TENTHS#0 tod_TENTHS zp[1]:22 12.444444444444443 (struct TIME_OF_DAY()) tod_read() (label) tod_read::@return (byte) tod_read::hours (byte) tod_read::mins (struct TIME_OF_DAY) tod_read::return (byte) tod_read::return_HOURS -(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:24 12.444444444444443 -(byte) tod_read::return_HOURS#2 return_HOURS zp[1]:24 5.5 +(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:31 12.444444444444443 +(byte) tod_read::return_HOURS#2 reg byte a 5.5 (byte) tod_read::return_MIN (byte) tod_read::return_MIN#0 reg byte a 16.0 -(byte) tod_read::return_MIN#2 return_MIN zp[1]:23 5.5 +(byte) tod_read::return_MIN#2 return_MIN zp[1]:24 5.5 (byte) tod_read::return_SEC (byte) tod_read::return_SEC#0 reg byte x 22.4 (byte) tod_read::return_SEC#2 reg byte x 5.5 @@ -474,21 +470,21 @@ time: " (label) uctoa::@7 (label) uctoa::@return (byte*) uctoa::buffer -(byte*) uctoa::buffer#11 buffer zp[2]:13 3.3350000000500004E10 -(byte*) uctoa::buffer#14 buffer zp[2]:13 1.500000000015E11 -(byte*) uctoa::buffer#3 buffer zp[2]:13 2.00000002E8 -(byte*) uctoa::buffer#4 buffer zp[2]:13 2.00000000002E11 +(byte*) uctoa::buffer#11 buffer zp[2]:33 3.3350000000500004E10 +(byte*) uctoa::buffer#14 buffer zp[2]:33 1.500000000015E11 +(byte*) uctoa::buffer#3 buffer zp[2]:33 2.00000002E8 +(byte*) uctoa::buffer#4 buffer zp[2]:33 2.00000000002E11 (byte) uctoa::digit -(byte) uctoa::digit#1 digit zp[1]:22 2.00000000002E11 -(byte) uctoa::digit#2 digit zp[1]:22 3.076923076953846E10 +(byte) uctoa::digit#1 digit zp[1]:11 2.00000000002E11 +(byte) uctoa::digit#2 digit zp[1]:11 3.076923076953846E10 (byte) uctoa::digit_value -(byte) uctoa::digit_value#0 digit_value zp[1]:28 6.0000000000600006E10 +(byte) uctoa::digit_value#0 digit_value zp[1]:32 6.0000000000600006E10 (byte*) uctoa::digit_values (byte) uctoa::max_digits (byte) uctoa::radix (byte) uctoa::started -(byte) uctoa::started#2 started zp[1]:6 6.0000000000600006E10 -(byte) uctoa::started#4 started zp[1]:6 1.00000000001E11 +(byte) uctoa::started#2 started zp[1]:12 6.0000000000600006E10 +(byte) uctoa::started#4 started zp[1]:12 1.00000000001E11 (byte) uctoa::value (byte) uctoa::value#0 reg byte x 1.00000000001E11 (byte) uctoa::value#1 reg byte x 5.5000001E7 @@ -500,14 +496,14 @@ time: " (label) uctoa_append::@3 (label) uctoa_append::@return (byte*) uctoa_append::buffer -(byte*) uctoa_append::buffer#0 buffer zp[2]:13 1.3750000000025E11 +(byte*) uctoa_append::buffer#0 buffer zp[2]:33 1.3750000000025E11 (byte) uctoa_append::digit (byte) uctoa_append::digit#1 reg byte y 1.0E16 (byte) uctoa_append::digit#2 reg byte y 1.00005E16 (byte) uctoa_append::return (byte) uctoa_append::return#0 reg byte x 2.00000000002E11 (byte) uctoa_append::sub -(byte) uctoa_append::sub#0 sub zp[1]:28 3.33335E15 +(byte) uctoa_append::sub#0 sub zp[1]:32 3.33335E15 (byte) uctoa_append::value (byte) uctoa_append::value#0 reg byte x 3.666666666673334E11 (byte) uctoa_append::value#1 reg byte x 2.0E16 @@ -524,45 +520,44 @@ time: " (label) ultoa::@7 (label) ultoa::@return (byte*) ultoa::buffer -(byte*) ultoa::buffer#11 buffer zp[2]:33 2.871428614285714E7 -(byte*) ultoa::buffer#14 buffer zp[2]:33 1.500000015E8 -(byte*) ultoa::buffer#3 buffer zp[2]:33 2000002.0 -(byte*) ultoa::buffer#4 buffer zp[2]:33 2.00000002E8 +(byte*) ultoa::buffer#11 buffer zp[2]:14 2.871428614285714E7 +(byte*) ultoa::buffer#14 buffer zp[2]:14 1.500000015E8 +(byte*) ultoa::buffer#3 buffer zp[2]:14 2000002.0 +(byte*) ultoa::buffer#4 buffer zp[2]:14 2.00000002E8 (byte) ultoa::digit -(byte) ultoa::digit#1 digit zp[1]:28 2.00000002E8 -(byte) ultoa::digit#2 digit zp[1]:28 2.857142885714286E7 +(byte) ultoa::digit#1 digit zp[1]:31 2.00000002E8 +(byte) ultoa::digit#2 digit zp[1]:31 2.857142885714286E7 (dword) ultoa::digit_value -(dword) ultoa::digit_value#0 digit_value zp[4]:29 6.0000000599999994E7 +(dword) ultoa::digit_value#0 digit_value zp[4]:27 6.0000000599999994E7 (dword*) ultoa::digit_values (byte) ultoa::max_digits -(const byte) ultoa::max_digits#1 max_digits = (byte) $a (byte) ultoa::radix (byte) ultoa::started (byte) ultoa::started#2 reg byte x 5.00000005E7 (byte) ultoa::started#4 reg byte x 1.00000001E8 (dword) ultoa::value -(dword) ultoa::value#0 value zp[4]:7 1.00000001E8 -(dword) ultoa::value#1 value zp[4]:7 550001.0 -(dword) ultoa::value#2 value zp[4]:7 5.7285715E7 -(dword) ultoa::value#6 value zp[4]:7 1.500000015E8 +(dword) ultoa::value#0 value zp[4]:6 1.00000001E8 +(dword) ultoa::value#1 value zp[4]:6 550001.0 +(dword) ultoa::value#2 value zp[4]:6 5.7285715E7 +(dword) ultoa::value#6 value zp[4]:6 1.500000015E8 (dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub) (label) ultoa_append::@1 (label) ultoa_append::@2 (label) ultoa_append::@3 (label) ultoa_append::@return (byte*) ultoa_append::buffer -(byte*) ultoa_append::buffer#0 buffer zp[2]:33 1.3750000025E8 +(byte*) ultoa_append::buffer#0 buffer zp[2]:14 1.3750000025E8 (byte) ultoa_append::digit (byte) ultoa_append::digit#1 reg byte x 1.000000000001E12 (byte) ultoa_append::digit#2 reg byte x 1.0005000000015E12 (dword) ultoa_append::return -(dword) ultoa_append::return#0 return zp[4]:7 2.00000002E8 +(dword) ultoa_append::return#0 return zp[4]:6 2.00000002E8 (dword) ultoa_append::sub -(dword) ultoa_append::sub#0 sub zp[4]:29 3.333500000005E11 +(dword) ultoa_append::sub#0 sub zp[4]:27 3.333500000005E11 (dword) ultoa_append::value -(dword) ultoa_append::value#0 value zp[4]:7 3.666666673333334E8 -(dword) ultoa_append::value#1 value zp[4]:7 2.000000000002E12 -(dword) ultoa_append::value#2 value zp[4]:7 5.0018333333416675E11 +(dword) ultoa_append::value#0 value zp[4]:6 3.666666673333334E8 +(dword) ultoa_append::value#1 value zp[4]:6 2.000000000002E12 +(dword) ultoa_append::value#2 value zp[4]:6 5.0018333333416675E11 (void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) (byte~) utoa::$10 reg byte a 20002.0 (byte~) utoa::$11 reg byte a 2002.0 @@ -575,13 +570,13 @@ time: " (label) utoa::@7 (label) utoa::@return (byte*) utoa::buffer -(byte*) utoa::buffer#11 buffer zp[2]:15 3000.4285714285716 -(byte*) utoa::buffer#14 buffer zp[2]:15 15001.5 -(byte*) utoa::buffer#3 buffer zp[2]:15 2002.0 -(byte*) utoa::buffer#4 buffer zp[2]:15 20002.0 +(byte*) utoa::buffer#11 buffer zp[2]:16 3000.4285714285716 +(byte*) utoa::buffer#14 buffer zp[2]:16 15001.5 +(byte*) utoa::buffer#3 buffer zp[2]:16 2002.0 +(byte*) utoa::buffer#4 buffer zp[2]:16 20002.0 (byte) utoa::digit -(byte) utoa::digit#1 digit zp[1]:12 20002.0 -(byte) utoa::digit#2 digit zp[1]:12 2857.4285714285716 +(byte) utoa::digit#1 digit zp[1]:13 20002.0 +(byte) utoa::digit#2 digit zp[1]:13 2857.4285714285716 (word) utoa::digit_value (word) utoa::digit_value#0 digit_value zp[2]:33 6000.6 (word*) utoa::digit_values @@ -592,70 +587,73 @@ time: " (byte) utoa::started#2 reg byte x 5000.5 (byte) utoa::started#4 reg byte x 10001.0 (word) utoa::value -(word) utoa::value#0 value zp[2]:13 10001.0 -(word) utoa::value#2 value zp[2]:13 5714.857142857143 -(word) utoa::value#6 value zp[2]:13 15001.5 +(word) utoa::value#0 value zp[2]:14 10001.0 +(word) utoa::value#2 value zp[2]:14 5714.857142857143 +(word) utoa::value#6 value zp[2]:14 15001.5 (word()) utoa_append((byte*) utoa_append::buffer , (word) utoa_append::value , (word) utoa_append::sub) (label) utoa_append::@1 (label) utoa_append::@2 (label) utoa_append::@3 (label) utoa_append::@return (byte*) utoa_append::buffer -(byte*) utoa_append::buffer#0 buffer zp[2]:15 13750.25 +(byte*) utoa_append::buffer#0 buffer zp[2]:16 13750.25 (byte) utoa_append::digit (byte) utoa_append::digit#1 reg byte x 1.0000001E7 (byte) utoa_append::digit#2 reg byte x 1.00500015E7 (word) utoa_append::return -(word) utoa_append::return#0 return zp[2]:13 20002.0 +(word) utoa_append::return#0 return zp[2]:14 20002.0 (word) utoa_append::sub (word) utoa_append::sub#0 sub zp[2]:33 3335000.5 (word) utoa_append::value -(word) utoa_append::value#0 value zp[2]:13 36667.33333333333 -(word) utoa_append::value#1 value zp[2]:13 2.0000002E7 -(word) utoa_append::value#2 value zp[2]:13 5018334.166666666 +(word) utoa_append::value#0 value zp[2]:14 36667.33333333333 +(word) utoa_append::value#1 value zp[2]:14 2.0000002E7 +(word) utoa_append::value#2 value zp[2]:14 5018334.166666666 reg byte x [ memset::c#4 ] reg byte a [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -zp[4]:2 [ count#14 count#22 printf_ulong::uvalue#0 ] -reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +zp[4]:2 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 count#10 count#25 ] reg byte x [ printf_number_buffer::format_min_length#3 ] reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ] -reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] -zp[1]:6 [ uctoa::started#2 uctoa::started#4 printf_number_buffer::format_zero_padding#10 ] -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[4]:7 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ] +zp[4]:6 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ultoa_append::value#2 ultoa_append::value#0 ultoa_append::value#1 ultoa_append::return#0 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] reg byte x [ ultoa_append::digit#2 ultoa_append::digit#1 ] +zp[1]:10 [ print::j#2 print::j#1 printf_number_buffer::format_zero_padding#10 ] +reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ] +zp[1]:11 [ uctoa::digit#2 uctoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] +zp[1]:12 [ uctoa::started#2 uctoa::started#4 printf_number_buffer::format_upper_case#10 ] +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 ] reg byte y [ legal::i#10 legal::i#1 ] reg byte a [ legal::return#4 ] -zp[1]:11 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 print::i#2 print::i#1 ] reg byte a [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] -zp[1]:12 [ utoa::digit#2 utoa::digit#1 queens::row#10 queens::row#1 queens::row#2 legal::row#0 ] -zp[2]:13 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 printf_str::str#11 printf_str::str#13 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] +zp[1]:13 [ utoa::digit#2 utoa::digit#1 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +zp[2]:14 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 printf_str::str#13 printf_str::str#15 printf_str::str#1 printf_str::str#0 printf_number_buffer::buffer_digits#10 ] reg byte x [ utoa::started#2 utoa::started#4 ] -zp[2]:15 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] +zp[2]:16 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::str#3 strlen::str#1 strlen::str#0 strupr::src#2 strupr::str#0 strupr::src#1 memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ] -zp[1]:17 [ printf_cursor_x ] -zp[1]:18 [ printf_cursor_y ] -zp[2]:19 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] -zp[1]:21 [ tod_init::tod_TENTHS#0 print::i1#2 print::i1#1 ] -zp[1]:22 [ tod_init::tod_SEC#0 print::j#2 print::j#1 uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_justify_left#10 ] +zp[1]:18 [ printf_cursor_x ] +zp[1]:19 [ printf_cursor_y ] +zp[2]:20 [ printf_cursor_ptr printf_scroll::$4 printf_ln::$0 printf_ln::$1 ] +zp[1]:22 [ tod_init::tod_TENTHS#0 printf_padding::pad#7 ] +zp[1]:23 [ tod_init::tod_SEC#0 printf_padding::i#2 printf_padding::i#1 ] reg byte x [ tod_init::tod_MIN#0 ] reg byte y [ tod_init::tod_HOURS#0 ] reg byte y [ tod_read::return_TENTHS#2 ] reg byte x [ tod_read::return_SEC#2 ] -zp[1]:23 [ tod_read::return_MIN#2 main::tod_MIN#0 printf_number_buffer::format_upper_case#10 ] -zp[1]:24 [ tod_read::return_HOURS#2 tod_read::return_HOURS#0 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -reg byte y [ main::tod_TENTHS#0 ] -reg byte x [ main::tod_SEC#0 ] -reg byte a [ main::tod_HOURS#0 ] -zp[1]:25 [ tod_str::tod_TENTHS#0 printf_padding::length#6 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -zp[1]:26 [ tod_str::tod_SEC#0 printf_padding::pad#7 ] +zp[1]:24 [ tod_read::return_MIN#2 queens::row#10 queens::row#1 queens::row#2 legal::row#0 ] +reg byte a [ tod_read::return_HOURS#2 ] +zp[1]:25 [ tod_str::tod_TENTHS#0 print::i#2 print::i#1 ] +zp[1]:26 [ tod_str::tod_SEC#0 print::i1#2 print::i1#1 ] reg byte y [ tod_str::tod_MIN#0 ] reg byte x [ tod_str::tod_HOURS#0 ] reg byte a [ printf_str::ch#0 ] +reg byte a [ toupper::return#3 ] +reg byte a [ strupr::$0 ] +reg byte a [ ultoa::$11 ] +reg byte a [ ultoa::$10 ] +zp[4]:27 [ ultoa::digit_value#0 ultoa_append::sub#0 ] reg byte a [ tod_str::$0 ] reg byte a [ tod_str::$1 ] reg byte a [ tod_str::$2 ] @@ -675,20 +673,15 @@ reg byte a [ tod_str::$15 ] reg byte a [ tod_read::return_MIN#0 ] reg byte x [ tod_read::return_SEC#0 ] reg byte y [ tod_read::return_TENTHS#0 ] -zp[1]:27 [ legal::column#0 printf_padding::i#2 printf_padding::i#1 ] +zp[1]:31 [ legal::column#0 tod_read::return_HOURS#0 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::format_justify_left#10 ] reg byte a [ legal::return#0 ] reg byte a [ queens::$2 ] -reg byte a [ toupper::return#3 ] -reg byte a [ strupr::$0 ] -zp[1]:28 [ uctoa::digit_value#0 uctoa_append::sub#0 ultoa::digit#2 ultoa::digit#1 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +zp[1]:32 [ uctoa::digit_value#0 uctoa_append::sub#0 legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] reg byte x [ uctoa_append::return#0 ] -reg byte a [ ultoa::$11 ] -reg byte a [ ultoa::$10 ] -zp[4]:29 [ ultoa::digit_value#0 ultoa_append::sub#0 ] reg byte x [ legal::$0 ] reg byte a [ legal::diff1_a#0 ] reg byte a [ utoa::$11 ] reg byte a [ utoa::$10 ] -zp[2]:33 [ utoa::digit_value#0 utoa_append::sub#0 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] +zp[2]:33 [ utoa::digit_value#0 utoa_append::sub#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$19 memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] mem[12] [ printf_buffer ] mem[4] [ TOD_ZERO ] diff --git a/src/test/ref/tod-1.asm b/src/test/ref/tod-1.asm index f7906a48f..c64e861d2 100644 --- a/src/test/ref/tod-1.asm +++ b/src/test/ref/tod-1.asm @@ -30,8 +30,6 @@ // The current cursor address .label conio_cursor_color = 7 main: { - .label tod_MIN = 9 - .label tod_HOURS = $a // tod_init(TOD_ZERO) lda TOD_ZERO sta.z tod_init.tod_TENTHS @@ -41,20 +39,20 @@ main: { ldy TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS jsr tod_init __b1: - // tod_read() - jsr tod_read - sta.z tod_read.return_MIN - // tod = tod_read() // gotoxy(0,0) lda #0 jsr gotoxy - // tod_str(tod) + // tod_read() + jsr tod_read + sta.z tod_read.return_MIN + lda.z tod_read.return_HOURS + // tod_str(tod_read()) sty.z tod_str.tod_TENTHS stx.z tod_str.tod_SEC - ldy.z tod_MIN - ldx.z tod_HOURS + ldy.z tod_read.return_MIN + tax jsr tod_str - // cputs(tod_str(tod)) + // cputs(tod_str(tod_read())) jsr cputs jmp __b1 } @@ -140,7 +138,7 @@ cputc: { gotoxy: { .label __8 = 7 .label offset = 7 - .label __9 = $d + .label __9 = $b .label __10 = 7 // if(y>=CONIO_HEIGHT) cmp #CONIO_HEIGHT @@ -195,10 +193,10 @@ gotoxy: { rts } // Convert time of day to a human-readable string "hh:mm:ss:10" -// tod_str(byte zp($b) tod_TENTHS, byte zp($c) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) +// tod_str(byte zp($a) tod_TENTHS, byte zp($d) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) tod_str: { - .label tod_TENTHS = $b - .label tod_SEC = $c + .label tod_TENTHS = $a + .label tod_SEC = $d // tod.HOURS>>4 txa lsr @@ -280,7 +278,7 @@ tod_str: { } // Read time of day tod_read: { - .label return_HOURS = $a + .label return_HOURS = $d .label return_MIN = 9 // hours = CIA1->TOD_HOURS // Reading sequence is important. TOD latches on reading hours until 10ths is read. diff --git a/src/test/ref/tod-1.cfg b/src/test/ref/tod-1.cfg index ce2658f41..2ee776c11 100644 --- a/src/test/ref/tod-1.cfg +++ b/src/test/ref/tod-1.cfg @@ -18,161 +18,158 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@4 [9] phi() - [10] call tod_read - [11] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 - [12] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 - [13] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 - [14] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 + [10] call gotoxy to:main::@2 main::@2: scope:[main] from main::@1 - [15] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 - [16] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 - [17] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 - [18] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 - [19] call gotoxy + [11] phi() + [12] call tod_read + [13] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 + [14] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 + [15] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 + [16] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 to:main::@3 main::@3: scope:[main] from main::@2 - [20] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 - [21] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 - [22] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 - [23] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 - [24] call tod_str + [17] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 + [18] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 + [19] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 + [20] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 + [21] call tod_str to:main::@4 main::@4: scope:[main] from main::@3 - [25] phi() - [26] call cputs + [22] phi() + [23] call cputs to:main::@1 (void()) cputs((to_nomodify byte*) cputs::s) cputs: scope:[cputs] from main::@4 - [27] phi() + [24] phi() to:cputs::@1 cputs::@1: scope:[cputs] from cputs cputs::@2 - [28] (byte*) conio_cursor_color#19 ← phi( cputs/(byte*) conio_cursor_color#1 cputs::@2/(byte*) conio_cursor_color#17 ) - [28] (byte*) conio_cursor_text#19 ← phi( cputs/(byte*) conio_cursor_text#1 cputs::@2/(byte*) conio_cursor_text#17 ) - [28] (byte) conio_cursor_y#20 ← phi( cputs/(byte) conio_cursor_y#1 cputs::@2/(byte) conio_cursor_y#18 ) - [28] (byte) conio_cursor_x#20 ← phi( cputs/(byte) 0 cputs::@2/(byte) conio_cursor_x#18 ) - [28] (to_nomodify byte*) cputs::s#2 ← phi( cputs/(const byte*) tod_buffer cputs::@2/(to_nomodify byte*) cputs::s#0 ) - [29] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) - [30] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 - [31] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 + [25] (byte*) conio_cursor_color#19 ← phi( cputs/(byte*) conio_cursor_color#1 cputs::@2/(byte*) conio_cursor_color#17 ) + [25] (byte*) conio_cursor_text#19 ← phi( cputs/(byte*) conio_cursor_text#1 cputs::@2/(byte*) conio_cursor_text#17 ) + [25] (byte) conio_cursor_y#20 ← phi( cputs/(byte) conio_cursor_y#1 cputs::@2/(byte) conio_cursor_y#18 ) + [25] (byte) conio_cursor_x#20 ← phi( cputs/(byte) 0 cputs::@2/(byte) conio_cursor_x#18 ) + [25] (to_nomodify byte*) cputs::s#2 ← phi( cputs/(const byte*) tod_buffer cputs::@2/(to_nomodify byte*) cputs::s#0 ) + [26] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) + [27] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 + [28] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 to:cputs::@return cputs::@return: scope:[cputs] from cputs::@1 - [32] return + [29] return to:@return cputs::@2: scope:[cputs] from cputs::@1 - [33] (byte) cputc::c#0 ← (byte) cputs::c#1 - [34] call cputc + [30] (byte) cputc::c#0 ← (byte) cputs::c#1 + [31] call cputc to:cputs::@1 (void()) cputc((byte) cputc::c) cputc: scope:[cputc] from cputs::@2 - [35] if((byte) cputc::c#0==(byte) ' + [32] if((byte) cputc::c#0==(byte) ' ') goto cputc::@1 to:cputc::@2 cputc::@2: scope:[cputc] from cputc - [36] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 - [37] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 - [38] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT - [39] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 - [40] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 - [41] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return + [33] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 + [34] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 + [35] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT + [36] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 + [37] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 + [38] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - [42] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 - [43] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return + [39] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 + [40] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@3 - [44] phi() - [45] call gotoxy + [41] phi() + [42] call gotoxy to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 cputc::@4 - [46] (byte*) conio_cursor_color#17 ← phi( cputc::@2/(byte*) conio_cursor_color#26 cputc::@3/(byte*) conio_cursor_color#26 cputc::@1/(byte*) conio_cursor_color#1 cputc::@4/(byte*) conio_cursor_color#1 ) - [46] (byte*) conio_cursor_text#17 ← phi( cputc::@2/(byte*) conio_cursor_text#26 cputc::@3/(byte*) conio_cursor_text#26 cputc::@1/(byte*) conio_cursor_text#1 cputc::@4/(byte*) conio_cursor_text#1 ) - [46] (byte) conio_cursor_y#18 ← phi( cputc::@2/(byte) conio_cursor_y#20 cputc::@3/(byte) conio_cursor_y#27 cputc::@1/(byte) conio_cursor_y#1 cputc::@4/(byte) conio_cursor_y#1 ) - [46] (byte) conio_cursor_x#18 ← phi( cputc::@2/(byte) conio_cursor_x#4 cputc::@3/(byte) 0 cputc::@1/(byte) 0 cputc::@4/(byte) 0 ) - [47] return + [43] (byte*) conio_cursor_color#17 ← phi( cputc::@2/(byte*) conio_cursor_color#26 cputc::@3/(byte*) conio_cursor_color#26 cputc::@1/(byte*) conio_cursor_color#1 cputc::@4/(byte*) conio_cursor_color#1 ) + [43] (byte*) conio_cursor_text#17 ← phi( cputc::@2/(byte*) conio_cursor_text#26 cputc::@3/(byte*) conio_cursor_text#26 cputc::@1/(byte*) conio_cursor_text#1 cputc::@4/(byte*) conio_cursor_text#1 ) + [43] (byte) conio_cursor_y#18 ← phi( cputc::@2/(byte) conio_cursor_y#20 cputc::@3/(byte) conio_cursor_y#27 cputc::@1/(byte) conio_cursor_y#1 cputc::@4/(byte) conio_cursor_y#1 ) + [43] (byte) conio_cursor_x#18 ← phi( cputc::@2/(byte) conio_cursor_x#4 cputc::@3/(byte) 0 cputc::@1/(byte) 0 cputc::@4/(byte) 0 ) + [44] return to:@return cputc::@1: scope:[cputc] from cputc - [48] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 - [49] call gotoxy + [45] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 + [46] call gotoxy to:cputc::@return (void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -gotoxy: scope:[gotoxy] from cputc::@1 cputc::@4 main::@2 - [50] (byte) gotoxy::y#4 ← phi( cputc::@1/(byte) gotoxy::y#1 cputc::@4/(byte) 0 main::@2/(byte) 0 ) +gotoxy: scope:[gotoxy] from cputc::@1 cputc::@4 main::@1 + [47] (byte) gotoxy::y#4 ← phi( cputc::@1/(byte) gotoxy::y#1 cputc::@4/(byte) 0 main::@1/(byte) 0 ) to:gotoxy::@1 gotoxy::@1: scope:[gotoxy] from gotoxy - [51] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 + [48] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 to:gotoxy::@2 gotoxy::@3: scope:[gotoxy] from gotoxy::@1 - [52] phi() + [49] phi() to:gotoxy::@2 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@3 - [53] (byte) gotoxy::y#5 ← phi( gotoxy::@3/(byte) gotoxy::y#4 gotoxy::@1/(byte) 0 ) - [54] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 - [55] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 - [56] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 - [57] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 - [58] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 - [59] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 - [60] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 + [50] (byte) gotoxy::y#5 ← phi( gotoxy::@3/(byte) gotoxy::y#4 gotoxy::@1/(byte) 0 ) + [51] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 + [52] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 + [53] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 + [54] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 + [55] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 + [56] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 + [57] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 to:gotoxy::@return gotoxy::@return: scope:[gotoxy] from gotoxy::@2 - [61] return + [58] return to:@return (byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) tod_str: scope:[tod_str] from main::@3 - [62] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 - [63] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 - [64] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 - [65] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f - [66] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 - [67] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 - [68] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 - [69] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 - [70] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 - [71] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f - [72] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 - [73] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 - [74] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 - [75] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 - [76] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 - [77] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f - [78] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 - [79] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 - [80] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 - [81] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 - [82] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 - [83] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f - [84] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 - [85] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 + [59] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 + [60] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 + [61] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 + [62] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f + [63] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 + [64] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 + [65] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 + [66] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 + [67] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 + [68] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f + [69] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 + [70] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 + [71] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 + [72] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 + [73] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 + [74] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f + [75] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 + [76] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 + [77] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 + [78] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 + [79] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 + [80] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f + [81] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 + [82] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 to:tod_str::@return tod_str::@return: scope:[tod_str] from tod_str - [86] return + [83] return to:@return (struct TIME_OF_DAY()) tod_read() -tod_read: scope:[tod_read] from main::@1 - [87] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) - [88] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) - [89] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) - [90] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) +tod_read: scope:[tod_read] from main::@2 + [84] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) + [85] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) + [86] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) + [87] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) to:tod_read::@return tod_read::@return: scope:[tod_read] from tod_read - [91] return + [88] return to:@return (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) tod_init: scope:[tod_init] from main - [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 - [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f - [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 - [95] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 - [96] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 - [97] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 + [89] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 + [90] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f + [91] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 + [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 + [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 + [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 to:tod_init::@return tod_init::@return: scope:[tod_init] from tod_init - [98] return + [95] return to:@return diff --git a/src/test/ref/tod-1.log b/src/test/ref/tod-1.log index 90dbe434e..eae4ea3af 100644 --- a/src/test/ref/tod-1.log +++ b/src/test/ref/tod-1.log @@ -18,16 +18,11 @@ Created struct value member variable (byte) tod_str::tod_SEC Created struct value member variable (byte) tod_str::tod_MIN Created struct value member variable (byte) tod_str::tod_HOURS Converted struct value to member variables (struct TIME_OF_DAY) tod_str::tod -Created struct value member variable (byte) main::tod_TENTHS -Created struct value member variable (byte) main::tod_SEC -Created struct value member variable (byte) main::tod_MIN -Created struct value member variable (byte) main::tod_HOURS -Converted struct value to member variables (struct TIME_OF_DAY) main::tod -Created struct value member variable (byte~) main::$1_TENTHS -Created struct value member variable (byte~) main::$1_SEC -Created struct value member variable (byte~) main::$1_MIN -Created struct value member variable (byte~) main::$1_HOURS -Converted struct value to member variables (struct TIME_OF_DAY~) main::$1 +Created struct value member variable (byte~) main::$2_TENTHS +Created struct value member variable (byte~) main::$2_SEC +Created struct value member variable (byte~) main::$2_MIN +Created struct value member variable (byte~) main::$2_HOURS +Converted struct value to member variables (struct TIME_OF_DAY~) main::$2 Converted procedure struct value parameter to member unwinding (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) Converted procedure struct value parameter to member unwinding (byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) Unwinding value copy (struct TIME_OF_DAY) tod_read::tod ← (struct TIME_OF_DAY){ (byte) tod_read::tenths, (byte) tod_read::secs, (byte) tod_read::mins, (byte) tod_read::hours } @@ -47,13 +42,8 @@ Adding value simple copy (byte) tod_read::return_MIN ← (byte) tod_read::return Adding value simple copy (byte) tod_read::return_HOURS ← (byte) tod_read::return_HOURS Converted procedure struct return value to member unwinding return { (byte) tod_read::return_TENTHS, (byte) tod_read::return_SEC, (byte) tod_read::return_MIN, (byte) tod_read::return_HOURS } Converted call struct value parameter to member unwinding (void~) main::$0 ← call tod_init *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_TENTHS) *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_SEC) *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_MIN) *((byte*)&(struct TIME_OF_DAY) TOD_ZERO+(const byte) OFFSET_STRUCT_TIME_OF_DAY_HOURS) -Converted procedure call LValue to member unwinding { (byte~) main::$1_TENTHS, (byte~) main::$1_SEC, (byte~) main::$1_MIN, (byte~) main::$1_HOURS } ← call tod_read -Unwinding value copy (struct TIME_OF_DAY) main::tod ← (struct TIME_OF_DAY~) main::$1 -Adding value simple copy (byte) main::tod_TENTHS ← (byte~) main::$1_TENTHS -Adding value simple copy (byte) main::tod_SEC ← (byte~) main::$1_SEC -Adding value simple copy (byte) main::tod_MIN ← (byte~) main::$1_MIN -Adding value simple copy (byte) main::tod_HOURS ← (byte~) main::$1_HOURS -Converted call struct value parameter to member unwinding (byte*~) main::$3 ← call tod_str (byte) main::tod_TENTHS (byte) main::tod_SEC (byte) main::tod_MIN (byte) main::tod_HOURS +Converted procedure call LValue to member unwinding { (byte~) main::$2_TENTHS, (byte~) main::$2_SEC, (byte~) main::$2_MIN, (byte~) main::$2_HOURS } ← call tod_read +Converted call struct value parameter to member unwinding (byte*~) main::$3 ← call tod_str (byte~) main::$2_TENTHS (byte~) main::$2_SEC (byte~) main::$2_MIN (byte~) main::$2_HOURS Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA2).PORT_A_DDR with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA2).PORT_A with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA2+(const byte) OFFSET_STRUCT_MOS6526_CIA_PORT_A) Replacing struct member reference *((const nomodify struct MOS6526_CIA*) CIA1).TIMER_A_CONTROL with member unwinding reference *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) @@ -81,8 +71,8 @@ Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.SEC with mem Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.TENTHS with member unwinding reference (byte) tod_str::tod_TENTHS Replacing struct member reference (struct TIME_OF_DAY) tod_str::tod.TENTHS with member unwinding reference (byte) tod_str::tod_TENTHS Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx -Eliminating unused variable with no statement (struct TIME_OF_DAY~) main::$1 -Unwinding list assignment { (byte~) main::$1_TENTHS, (byte~) main::$1_SEC, (byte~) main::$1_MIN, (byte~) main::$1_HOURS } ← { (byte) tod_read::return_TENTHS, (byte) tod_read::return_SEC, (byte) tod_read::return_MIN, (byte) tod_read::return_HOURS } +Eliminating unused variable with no statement (struct TIME_OF_DAY~) main::$2 +Unwinding list assignment { (byte~) main::$2_TENTHS, (byte~) main::$2_SEC, (byte~) main::$2_MIN, (byte~) main::$2_HOURS } ← { (byte) tod_read::return_TENTHS, (byte) tod_read::return_SEC, (byte) tod_read::return_MIN, (byte) tod_read::return_HOURS } Unwinding list assignment { (byte) tod_read::return_TENTHS#2, (byte) tod_read::return_SEC#2, (byte) tod_read::return_MIN#2, (byte) tod_read::return_HOURS#2 } ← { (byte) tod_read::return_TENTHS#1, (byte) tod_read::return_SEC#1, (byte) tod_read::return_MIN#1, (byte) tod_read::return_HOURS#1 } CONTROL FLOW GRAPH SSA @@ -95,9 +85,9 @@ CONTROL FLOW GRAPH SSA to:@1 (void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -gotoxy: scope:[gotoxy] from cputc::@1 cputc::@4 main::@4 - (byte) gotoxy::y#6 ← phi( cputc::@1/(byte) gotoxy::y#1 cputc::@4/(byte) gotoxy::y#2 main::@4/(byte) gotoxy::y#3 ) - (byte) gotoxy::x#4 ← phi( cputc::@1/(byte) gotoxy::x#1 cputc::@4/(byte) gotoxy::x#2 main::@4/(byte) gotoxy::x#3 ) +gotoxy: scope:[gotoxy] from cputc::@1 cputc::@4 main::@2 + (byte) gotoxy::y#6 ← phi( cputc::@1/(byte) gotoxy::y#1 cputc::@4/(byte) gotoxy::y#2 main::@2/(byte) gotoxy::y#3 ) + (byte) gotoxy::x#4 ← phi( cputc::@1/(byte) gotoxy::x#1 cputc::@4/(byte) gotoxy::x#2 main::@2/(byte) gotoxy::x#3 ) (bool~) gotoxy::$0 ← (byte) gotoxy::x#4 >= (const nomodify byte) CONIO_WIDTH (bool~) gotoxy::$1 ← ! (bool~) gotoxy::$0 if((bool~) gotoxy::$1) goto gotoxy::@1 @@ -307,7 +297,7 @@ tod_init::@return: scope:[tod_init] from tod_init to:@return (struct TIME_OF_DAY()) tod_read() -tod_read: scope:[tod_read] from main::@2 +tod_read: scope:[tod_read] from main::@4 (byte) tod_read::hours#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) (byte) tod_read::mins#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) (byte) tod_read::secs#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) @@ -404,65 +394,57 @@ main::@1: scope:[main] from main::@3 main::@7 to:main::@return main::@2: scope:[main] from main::@1 (byte) conio_textcolor#10 ← phi( main::@1/(byte) conio_textcolor#11 ) - (byte*) conio_cursor_color#36 ← phi( main::@1/(byte*) conio_cursor_color#32 ) - (byte*) conio_cursor_text#36 ← phi( main::@1/(byte*) conio_cursor_text#32 ) - (byte) conio_cursor_y#36 ← phi( main::@1/(byte) conio_cursor_y#32 ) - (byte) conio_cursor_x#36 ← phi( main::@1/(byte) conio_cursor_x#32 ) + (byte*) conio_cursor_color#30 ← phi( main::@1/(byte*) conio_cursor_color#32 ) + (byte*) conio_cursor_text#30 ← phi( main::@1/(byte*) conio_cursor_text#32 ) + (byte) conio_cursor_y#30 ← phi( main::@1/(byte) conio_cursor_y#32 ) + (byte) conio_cursor_x#30 ← phi( main::@1/(byte) conio_cursor_x#32 ) + (byte) gotoxy::x#3 ← (number) 0 + (byte) gotoxy::y#3 ← (number) 0 + call gotoxy + to:main::@4 +main::@4: scope:[main] from main::@2 + (byte) conio_textcolor#9 ← phi( main::@2/(byte) conio_textcolor#10 ) + (byte*) conio_cursor_color#20 ← phi( main::@2/(byte*) conio_cursor_color#2 ) + (byte*) conio_cursor_text#20 ← phi( main::@2/(byte*) conio_cursor_text#2 ) + (byte) conio_cursor_y#21 ← phi( main::@2/(byte) conio_cursor_y#2 ) + (byte) conio_cursor_x#21 ← phi( main::@2/(byte) conio_cursor_x#2 ) + (byte) conio_cursor_x#10 ← (byte) conio_cursor_x#21 + (byte) conio_cursor_y#9 ← (byte) conio_cursor_y#21 + (byte*) conio_cursor_text#9 ← (byte*) conio_cursor_text#20 + (byte*) conio_cursor_color#9 ← (byte*) conio_cursor_color#20 call tod_read (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#1 (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#1 (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#1 (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#1 - to:main::@4 -main::@4: scope:[main] from main::@2 - (byte) conio_textcolor#9 ← phi( main::@2/(byte) conio_textcolor#10 ) - (byte*) conio_cursor_color#30 ← phi( main::@2/(byte*) conio_cursor_color#36 ) - (byte*) conio_cursor_text#30 ← phi( main::@2/(byte*) conio_cursor_text#36 ) - (byte) conio_cursor_y#30 ← phi( main::@2/(byte) conio_cursor_y#36 ) - (byte) conio_cursor_x#30 ← phi( main::@2/(byte) conio_cursor_x#36 ) - (byte) tod_read::return_HOURS#4 ← phi( main::@2/(byte) tod_read::return_HOURS#2 ) - (byte) tod_read::return_MIN#4 ← phi( main::@2/(byte) tod_read::return_MIN#2 ) - (byte) tod_read::return_SEC#4 ← phi( main::@2/(byte) tod_read::return_SEC#2 ) - (byte) tod_read::return_TENTHS#4 ← phi( main::@2/(byte) tod_read::return_TENTHS#2 ) - (byte~) main::$1_TENTHS ← (byte) tod_read::return_TENTHS#4 - (byte~) main::$1_SEC ← (byte) tod_read::return_SEC#4 - (byte~) main::$1_MIN ← (byte) tod_read::return_MIN#4 - (byte~) main::$1_HOURS ← (byte) tod_read::return_HOURS#4 - (byte) main::tod_TENTHS#0 ← (byte~) main::$1_TENTHS - (byte) main::tod_SEC#0 ← (byte~) main::$1_SEC - (byte) main::tod_MIN#0 ← (byte~) main::$1_MIN - (byte) main::tod_HOURS#0 ← (byte~) main::$1_HOURS - (byte) gotoxy::x#3 ← (number) 0 - (byte) gotoxy::y#3 ← (number) 0 - call gotoxy to:main::@5 main::@5: scope:[main] from main::@4 (byte) conio_textcolor#8 ← phi( main::@4/(byte) conio_textcolor#9 ) - (byte) main::tod_HOURS#1 ← phi( main::@4/(byte) main::tod_HOURS#0 ) - (byte) main::tod_MIN#1 ← phi( main::@4/(byte) main::tod_MIN#0 ) - (byte) main::tod_SEC#1 ← phi( main::@4/(byte) main::tod_SEC#0 ) - (byte) main::tod_TENTHS#1 ← phi( main::@4/(byte) main::tod_TENTHS#0 ) - (byte*) conio_cursor_color#20 ← phi( main::@4/(byte*) conio_cursor_color#2 ) - (byte*) conio_cursor_text#20 ← phi( main::@4/(byte*) conio_cursor_text#2 ) - (byte) conio_cursor_y#21 ← phi( main::@4/(byte) conio_cursor_y#2 ) - (byte) conio_cursor_x#21 ← phi( main::@4/(byte) conio_cursor_x#2 ) - (byte) conio_cursor_x#10 ← (byte) conio_cursor_x#21 - (byte) conio_cursor_y#9 ← (byte) conio_cursor_y#21 - (byte*) conio_cursor_text#9 ← (byte*) conio_cursor_text#20 - (byte*) conio_cursor_color#9 ← (byte*) conio_cursor_color#20 - (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#1 - (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#1 - (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#1 - (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#1 + (byte*) conio_cursor_color#36 ← phi( main::@4/(byte*) conio_cursor_color#9 ) + (byte*) conio_cursor_text#36 ← phi( main::@4/(byte*) conio_cursor_text#9 ) + (byte) conio_cursor_y#36 ← phi( main::@4/(byte) conio_cursor_y#9 ) + (byte) conio_cursor_x#36 ← phi( main::@4/(byte) conio_cursor_x#10 ) + (byte) tod_read::return_HOURS#4 ← phi( main::@4/(byte) tod_read::return_HOURS#2 ) + (byte) tod_read::return_MIN#4 ← phi( main::@4/(byte) tod_read::return_MIN#2 ) + (byte) tod_read::return_SEC#4 ← phi( main::@4/(byte) tod_read::return_SEC#2 ) + (byte) tod_read::return_TENTHS#4 ← phi( main::@4/(byte) tod_read::return_TENTHS#2 ) + (byte~) main::$2_TENTHS ← (byte) tod_read::return_TENTHS#4 + (byte~) main::$2_SEC ← (byte) tod_read::return_SEC#4 + (byte~) main::$2_MIN ← (byte) tod_read::return_MIN#4 + (byte~) main::$2_HOURS ← (byte) tod_read::return_HOURS#4 + (byte) tod_str::tod_TENTHS#0 ← (byte~) main::$2_TENTHS + (byte) tod_str::tod_SEC#0 ← (byte~) main::$2_SEC + (byte) tod_str::tod_MIN#0 ← (byte~) main::$2_MIN + (byte) tod_str::tod_HOURS#0 ← (byte~) main::$2_HOURS call tod_str (byte*) tod_str::return#2 ← (byte*) tod_str::return#1 to:main::@6 main::@6: scope:[main] from main::@5 (byte) conio_textcolor#7 ← phi( main::@5/(byte) conio_textcolor#8 ) - (byte*) conio_cursor_color#31 ← phi( main::@5/(byte*) conio_cursor_color#9 ) - (byte*) conio_cursor_text#31 ← phi( main::@5/(byte*) conio_cursor_text#9 ) - (byte) conio_cursor_y#31 ← phi( main::@5/(byte) conio_cursor_y#9 ) - (byte) conio_cursor_x#31 ← phi( main::@5/(byte) conio_cursor_x#10 ) + (byte*) conio_cursor_color#31 ← phi( main::@5/(byte*) conio_cursor_color#36 ) + (byte*) conio_cursor_text#31 ← phi( main::@5/(byte*) conio_cursor_text#36 ) + (byte) conio_cursor_y#31 ← phi( main::@5/(byte) conio_cursor_y#36 ) + (byte) conio_cursor_x#31 ← phi( main::@5/(byte) conio_cursor_x#36 ) (byte*) tod_str::return#4 ← phi( main::@5/(byte*) tod_str::return#2 ) (byte*~) main::$3 ← (byte*) tod_str::return#4 (to_nomodify byte*) cputs::s#1 ← (byte*~) main::$3 @@ -794,10 +776,10 @@ SYMBOL TABLE SSA (byte) gotoxy::y#6 (byte) gotoxy::y#7 (void()) main() -(byte~) main::$1_HOURS -(byte~) main::$1_MIN -(byte~) main::$1_SEC -(byte~) main::$1_TENTHS +(byte~) main::$2_HOURS +(byte~) main::$2_MIN +(byte~) main::$2_SEC +(byte~) main::$2_TENTHS (byte*~) main::$3 (bool~) main::$5 (label) main::@1 @@ -808,18 +790,6 @@ SYMBOL TABLE SSA (label) main::@6 (label) main::@7 (label) main::@return -(byte) main::tod_HOURS -(byte) main::tod_HOURS#0 -(byte) main::tod_HOURS#1 -(byte) main::tod_MIN -(byte) main::tod_MIN#0 -(byte) main::tod_MIN#1 -(byte) main::tod_SEC -(byte) main::tod_SEC#0 -(byte) main::tod_SEC#1 -(byte) main::tod_TENTHS -(byte) main::tod_TENTHS#0 -(byte) main::tod_TENTHS#1 (const byte*) tod_buffer[] = (byte*) "00:00:00:00" (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) (label) tod_init::@return @@ -1092,23 +1062,23 @@ Alias conio_cursor_y#35 = conio_cursor_y#37 Alias conio_cursor_text#35 = conio_cursor_text#37 Alias conio_cursor_color#35 = conio_cursor_color#37 Alias conio_textcolor#12 = conio_textcolor#14 -Alias conio_cursor_x#12 = conio_cursor_x#36 conio_cursor_x#32 conio_cursor_x#30 conio_cursor_x#23 -Alias conio_cursor_y#11 = conio_cursor_y#36 conio_cursor_y#32 conio_cursor_y#30 conio_cursor_y#23 -Alias conio_cursor_text#11 = conio_cursor_text#36 conio_cursor_text#32 conio_cursor_text#30 conio_cursor_text#22 -Alias conio_cursor_color#11 = conio_cursor_color#36 conio_cursor_color#32 conio_cursor_color#30 conio_cursor_color#22 +Alias conio_cursor_x#12 = conio_cursor_x#30 conio_cursor_x#32 conio_cursor_x#23 +Alias conio_cursor_y#11 = conio_cursor_y#30 conio_cursor_y#32 conio_cursor_y#23 +Alias conio_cursor_text#11 = conio_cursor_text#30 conio_cursor_text#32 conio_cursor_text#22 +Alias conio_cursor_color#11 = conio_cursor_color#30 conio_cursor_color#32 conio_cursor_color#22 Alias conio_textcolor#10 = conio_textcolor#11 conio_textcolor#9 conio_textcolor#8 conio_textcolor#7 conio_textcolor#13 +Alias conio_cursor_x#10 = conio_cursor_x#21 conio_cursor_x#36 conio_cursor_x#31 +Alias conio_cursor_y#21 = conio_cursor_y#9 conio_cursor_y#36 conio_cursor_y#31 +Alias conio_cursor_text#20 = conio_cursor_text#9 conio_cursor_text#36 conio_cursor_text#31 +Alias conio_cursor_color#20 = conio_cursor_color#9 conio_cursor_color#36 conio_cursor_color#31 Alias tod_read::return_TENTHS#2 = tod_read::return_TENTHS#4 Alias tod_read::return_SEC#2 = tod_read::return_SEC#4 Alias tod_read::return_MIN#2 = tod_read::return_MIN#4 Alias tod_read::return_HOURS#2 = tod_read::return_HOURS#4 -Alias main::tod_TENTHS#0 = main::$1_TENTHS main::tod_TENTHS#1 -Alias main::tod_SEC#0 = main::$1_SEC main::tod_SEC#1 -Alias main::tod_MIN#0 = main::$1_MIN main::tod_MIN#1 -Alias main::tod_HOURS#0 = main::$1_HOURS main::tod_HOURS#1 -Alias conio_cursor_x#10 = conio_cursor_x#21 conio_cursor_x#31 -Alias conio_cursor_y#21 = conio_cursor_y#9 conio_cursor_y#31 -Alias conio_cursor_text#20 = conio_cursor_text#9 conio_cursor_text#31 -Alias conio_cursor_color#20 = conio_cursor_color#9 conio_cursor_color#31 +Alias tod_str::tod_TENTHS#0 = main::$2_TENTHS +Alias tod_str::tod_SEC#0 = main::$2_SEC +Alias tod_str::tod_MIN#0 = main::$2_MIN +Alias tod_str::tod_HOURS#0 = main::$2_HOURS Alias tod_str::return#2 = tod_str::return#4 Alias cputs::s#1 = main::$3 Alias conio_cursor_x#11 = conio_cursor_x#22 @@ -1291,41 +1261,42 @@ Adding NOP phi() at start of @end Adding NOP phi() at start of main::@3 Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 +Adding NOP phi() at start of main::@4 Adding NOP phi() at start of main::@6 Adding NOP phi() at start of main::@7 Adding NOP phi() at start of cputc::@4 Adding NOP phi() at start of gotoxy::@4 CALL GRAPH Calls in [] to main:2 -Calls in [main] to tod_init:9 tod_read:13 gotoxy:22 tod_str:27 cputs:29 -Calls in [cputs] to cputc:40 -Calls in [cputc] to gotoxy:56 gotoxy:71 +Calls in [main] to tod_init:9 gotoxy:13 tod_read:15 tod_str:24 cputs:26 +Calls in [cputs] to cputc:37 +Calls in [cputc] to gotoxy:53 gotoxy:68 Created 11 initial phi equivalence classes -Coalesced [31] conio_cursor_y#42 ← conio_cursor_y#1 -Coalesced [32] conio_cursor_text#42 ← conio_cursor_text#1 -Coalesced [33] conio_cursor_color#42 ← conio_cursor_color#1 -Coalesced [41] cputs::s#6 ← cputs::s#0 -Coalesced [42] conio_cursor_x#39 ← conio_cursor_x#18 -Coalesced [43] conio_cursor_y#43 ← conio_cursor_y#18 -Coalesced [44] conio_cursor_text#43 ← conio_cursor_text#17 -Coalesced [45] conio_cursor_color#43 ← conio_cursor_color#17 -Coalesced (already) [57] conio_cursor_y#41 ← conio_cursor_y#1 -Coalesced (already) [58] conio_cursor_text#41 ← conio_cursor_text#1 -Coalesced (already) [59] conio_cursor_color#41 ← conio_cursor_color#1 -Coalesced [62] conio_cursor_y#39 ← conio_cursor_y#27 -Coalesced [63] conio_cursor_text#39 ← conio_cursor_text#26 -Coalesced [64] conio_cursor_color#39 ← conio_cursor_color#26 -Coalesced [65] conio_cursor_x#38 ← conio_cursor_x#4 -Coalesced (already) [66] conio_cursor_y#38 ← conio_cursor_y#20 -Coalesced (already) [67] conio_cursor_text#38 ← conio_cursor_text#26 -Coalesced (already) [68] conio_cursor_color#38 ← conio_cursor_color#26 -Coalesced [70] gotoxy::y#8 ← gotoxy::y#1 -Coalesced (already) [72] conio_cursor_y#40 ← conio_cursor_y#1 -Coalesced (already) [73] conio_cursor_text#40 ← conio_cursor_text#1 -Coalesced (already) [74] conio_cursor_color#40 ← conio_cursor_color#1 -Not coalescing [79] conio_cursor_y#1 ← gotoxy::y#5 -Coalesced [87] gotoxy::y#9 ← gotoxy::y#4 +Coalesced [28] conio_cursor_y#42 ← conio_cursor_y#1 +Coalesced [29] conio_cursor_text#42 ← conio_cursor_text#1 +Coalesced [30] conio_cursor_color#42 ← conio_cursor_color#1 +Coalesced [38] cputs::s#6 ← cputs::s#0 +Coalesced [39] conio_cursor_x#39 ← conio_cursor_x#18 +Coalesced [40] conio_cursor_y#43 ← conio_cursor_y#18 +Coalesced [41] conio_cursor_text#43 ← conio_cursor_text#17 +Coalesced [42] conio_cursor_color#43 ← conio_cursor_color#17 +Coalesced (already) [54] conio_cursor_y#41 ← conio_cursor_y#1 +Coalesced (already) [55] conio_cursor_text#41 ← conio_cursor_text#1 +Coalesced (already) [56] conio_cursor_color#41 ← conio_cursor_color#1 +Coalesced [59] conio_cursor_y#39 ← conio_cursor_y#27 +Coalesced [60] conio_cursor_text#39 ← conio_cursor_text#26 +Coalesced [61] conio_cursor_color#39 ← conio_cursor_color#26 +Coalesced [62] conio_cursor_x#38 ← conio_cursor_x#4 +Coalesced (already) [63] conio_cursor_y#38 ← conio_cursor_y#20 +Coalesced (already) [64] conio_cursor_text#38 ← conio_cursor_text#26 +Coalesced (already) [65] conio_cursor_color#38 ← conio_cursor_color#26 +Coalesced [67] gotoxy::y#8 ← gotoxy::y#1 +Coalesced (already) [69] conio_cursor_y#40 ← conio_cursor_y#1 +Coalesced (already) [70] conio_cursor_text#40 ← conio_cursor_text#1 +Coalesced (already) [71] conio_cursor_color#40 ← conio_cursor_color#1 +Not coalescing [76] conio_cursor_y#1 ← gotoxy::y#5 +Coalesced [84] gotoxy::y#9 ← gotoxy::y#4 Coalesced down to 6 phi equivalence classes Culled Empty Block (label) @2 Culled Empty Block (label) main::@3 @@ -1346,6 +1317,7 @@ Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end Adding NOP phi() at start of main::@1 +Adding NOP phi() at start of main::@2 Adding NOP phi() at start of main::@4 Adding NOP phi() at start of cputs Adding NOP phi() at start of cputc::@4 @@ -1372,163 +1344,160 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@4 [9] phi() - [10] call tod_read - [11] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 - [12] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 - [13] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 - [14] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 + [10] call gotoxy to:main::@2 main::@2: scope:[main] from main::@1 - [15] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 - [16] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 - [17] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 - [18] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 - [19] call gotoxy + [11] phi() + [12] call tod_read + [13] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 + [14] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 + [15] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 + [16] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 to:main::@3 main::@3: scope:[main] from main::@2 - [20] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 - [21] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 - [22] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 - [23] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 - [24] call tod_str + [17] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 + [18] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 + [19] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 + [20] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 + [21] call tod_str to:main::@4 main::@4: scope:[main] from main::@3 - [25] phi() - [26] call cputs + [22] phi() + [23] call cputs to:main::@1 (void()) cputs((to_nomodify byte*) cputs::s) cputs: scope:[cputs] from main::@4 - [27] phi() + [24] phi() to:cputs::@1 cputs::@1: scope:[cputs] from cputs cputs::@2 - [28] (byte*) conio_cursor_color#19 ← phi( cputs/(byte*) conio_cursor_color#1 cputs::@2/(byte*) conio_cursor_color#17 ) - [28] (byte*) conio_cursor_text#19 ← phi( cputs/(byte*) conio_cursor_text#1 cputs::@2/(byte*) conio_cursor_text#17 ) - [28] (byte) conio_cursor_y#20 ← phi( cputs/(byte) conio_cursor_y#1 cputs::@2/(byte) conio_cursor_y#18 ) - [28] (byte) conio_cursor_x#20 ← phi( cputs/(byte) 0 cputs::@2/(byte) conio_cursor_x#18 ) - [28] (to_nomodify byte*) cputs::s#2 ← phi( cputs/(const byte*) tod_buffer cputs::@2/(to_nomodify byte*) cputs::s#0 ) - [29] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) - [30] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 - [31] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 + [25] (byte*) conio_cursor_color#19 ← phi( cputs/(byte*) conio_cursor_color#1 cputs::@2/(byte*) conio_cursor_color#17 ) + [25] (byte*) conio_cursor_text#19 ← phi( cputs/(byte*) conio_cursor_text#1 cputs::@2/(byte*) conio_cursor_text#17 ) + [25] (byte) conio_cursor_y#20 ← phi( cputs/(byte) conio_cursor_y#1 cputs::@2/(byte) conio_cursor_y#18 ) + [25] (byte) conio_cursor_x#20 ← phi( cputs/(byte) 0 cputs::@2/(byte) conio_cursor_x#18 ) + [25] (to_nomodify byte*) cputs::s#2 ← phi( cputs/(const byte*) tod_buffer cputs::@2/(to_nomodify byte*) cputs::s#0 ) + [26] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) + [27] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 + [28] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 to:cputs::@return cputs::@return: scope:[cputs] from cputs::@1 - [32] return + [29] return to:@return cputs::@2: scope:[cputs] from cputs::@1 - [33] (byte) cputc::c#0 ← (byte) cputs::c#1 - [34] call cputc + [30] (byte) cputc::c#0 ← (byte) cputs::c#1 + [31] call cputc to:cputs::@1 (void()) cputc((byte) cputc::c) cputc: scope:[cputc] from cputs::@2 - [35] if((byte) cputc::c#0==(byte) ' + [32] if((byte) cputc::c#0==(byte) ' ') goto cputc::@1 to:cputc::@2 cputc::@2: scope:[cputc] from cputc - [36] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 - [37] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 - [38] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT - [39] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 - [40] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 - [41] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return + [33] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 + [34] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 + [35] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT + [36] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 + [37] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 + [38] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - [42] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 - [43] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return + [39] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 + [40] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@3 - [44] phi() - [45] call gotoxy + [41] phi() + [42] call gotoxy to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 cputc::@4 - [46] (byte*) conio_cursor_color#17 ← phi( cputc::@2/(byte*) conio_cursor_color#26 cputc::@3/(byte*) conio_cursor_color#26 cputc::@1/(byte*) conio_cursor_color#1 cputc::@4/(byte*) conio_cursor_color#1 ) - [46] (byte*) conio_cursor_text#17 ← phi( cputc::@2/(byte*) conio_cursor_text#26 cputc::@3/(byte*) conio_cursor_text#26 cputc::@1/(byte*) conio_cursor_text#1 cputc::@4/(byte*) conio_cursor_text#1 ) - [46] (byte) conio_cursor_y#18 ← phi( cputc::@2/(byte) conio_cursor_y#20 cputc::@3/(byte) conio_cursor_y#27 cputc::@1/(byte) conio_cursor_y#1 cputc::@4/(byte) conio_cursor_y#1 ) - [46] (byte) conio_cursor_x#18 ← phi( cputc::@2/(byte) conio_cursor_x#4 cputc::@3/(byte) 0 cputc::@1/(byte) 0 cputc::@4/(byte) 0 ) - [47] return + [43] (byte*) conio_cursor_color#17 ← phi( cputc::@2/(byte*) conio_cursor_color#26 cputc::@3/(byte*) conio_cursor_color#26 cputc::@1/(byte*) conio_cursor_color#1 cputc::@4/(byte*) conio_cursor_color#1 ) + [43] (byte*) conio_cursor_text#17 ← phi( cputc::@2/(byte*) conio_cursor_text#26 cputc::@3/(byte*) conio_cursor_text#26 cputc::@1/(byte*) conio_cursor_text#1 cputc::@4/(byte*) conio_cursor_text#1 ) + [43] (byte) conio_cursor_y#18 ← phi( cputc::@2/(byte) conio_cursor_y#20 cputc::@3/(byte) conio_cursor_y#27 cputc::@1/(byte) conio_cursor_y#1 cputc::@4/(byte) conio_cursor_y#1 ) + [43] (byte) conio_cursor_x#18 ← phi( cputc::@2/(byte) conio_cursor_x#4 cputc::@3/(byte) 0 cputc::@1/(byte) 0 cputc::@4/(byte) 0 ) + [44] return to:@return cputc::@1: scope:[cputc] from cputc - [48] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 - [49] call gotoxy + [45] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 + [46] call gotoxy to:cputc::@return (void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) -gotoxy: scope:[gotoxy] from cputc::@1 cputc::@4 main::@2 - [50] (byte) gotoxy::y#4 ← phi( cputc::@1/(byte) gotoxy::y#1 cputc::@4/(byte) 0 main::@2/(byte) 0 ) +gotoxy: scope:[gotoxy] from cputc::@1 cputc::@4 main::@1 + [47] (byte) gotoxy::y#4 ← phi( cputc::@1/(byte) gotoxy::y#1 cputc::@4/(byte) 0 main::@1/(byte) 0 ) to:gotoxy::@1 gotoxy::@1: scope:[gotoxy] from gotoxy - [51] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 + [48] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 to:gotoxy::@2 gotoxy::@3: scope:[gotoxy] from gotoxy::@1 - [52] phi() + [49] phi() to:gotoxy::@2 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@3 - [53] (byte) gotoxy::y#5 ← phi( gotoxy::@3/(byte) gotoxy::y#4 gotoxy::@1/(byte) 0 ) - [54] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 - [55] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 - [56] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 - [57] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 - [58] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 - [59] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 - [60] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 + [50] (byte) gotoxy::y#5 ← phi( gotoxy::@3/(byte) gotoxy::y#4 gotoxy::@1/(byte) 0 ) + [51] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 + [52] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 + [53] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 + [54] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 + [55] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 + [56] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 + [57] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 to:gotoxy::@return gotoxy::@return: scope:[gotoxy] from gotoxy::@2 - [61] return + [58] return to:@return (byte*()) tod_str((byte) tod_str::tod_TENTHS , (byte) tod_str::tod_SEC , (byte) tod_str::tod_MIN , (byte) tod_str::tod_HOURS) tod_str: scope:[tod_str] from main::@3 - [62] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 - [63] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 - [64] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 - [65] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f - [66] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 - [67] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 - [68] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 - [69] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 - [70] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 - [71] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f - [72] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 - [73] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 - [74] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 - [75] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 - [76] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 - [77] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f - [78] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 - [79] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 - [80] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 - [81] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 - [82] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 - [83] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f - [84] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 - [85] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 + [59] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 + [60] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 + [61] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 + [62] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f + [63] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 + [64] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 + [65] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 + [66] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 + [67] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 + [68] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f + [69] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 + [70] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 + [71] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 + [72] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 + [73] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 + [74] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f + [75] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 + [76] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 + [77] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 + [78] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 + [79] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 + [80] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f + [81] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 + [82] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 to:tod_str::@return tod_str::@return: scope:[tod_str] from tod_str - [86] return + [83] return to:@return (struct TIME_OF_DAY()) tod_read() -tod_read: scope:[tod_read] from main::@1 - [87] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) - [88] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) - [89] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) - [90] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) +tod_read: scope:[tod_read] from main::@2 + [84] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) + [85] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) + [86] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) + [87] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) to:tod_read::@return tod_read::@return: scope:[tod_read] from tod_read - [91] return + [88] return to:@return (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) tod_init: scope:[tod_init] from main - [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 - [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f - [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 - [95] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 - [96] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 - [97] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 + [89] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 + [90] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f + [91] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 + [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 + [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 + [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 to:tod_init::@return tod_init::@return: scope:[tod_init] from tod_init - [98] return + [95] return to:@return null depth in calling loop Loop head: cputs::@1 tails: cputs::@2 blocks: cputs::@2 cputs::@1 in scope cputc @@ -1555,12 +1524,12 @@ VARIABLE REGISTER WEIGHTS (byte) TIME_OF_DAY::TENTHS (struct TIME_OF_DAY) TOD_ZERO loadstore = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } (byte*) conio_cursor_color -(byte*) conio_cursor_color#1 1000083.6666666666 +(byte*) conio_cursor_color#1 666722.4444444445 (byte*) conio_cursor_color#17 1366668.3333333335 (byte*) conio_cursor_color#19 233444.88888888888 (byte*) conio_cursor_color#26 600000.6000000001 (byte*) conio_cursor_text -(byte*) conio_cursor_text#1 923154.1538461538 +(byte*) conio_cursor_text#1 631631.7894736842 (byte*) conio_cursor_text#17 1366668.3333333335 (byte*) conio_cursor_text#19 300143.4285714285 (byte*) conio_cursor_text#26 428571.85714285716 @@ -1569,7 +1538,7 @@ VARIABLE REGISTER WEIGHTS (byte) conio_cursor_x#20 110000.20000000001 (byte) conio_cursor_x#4 1500001.5 (byte) conio_cursor_y -(byte) conio_cursor_y#1 666722.4444444445 +(byte) conio_cursor_y#1 500041.8333333333 (byte) conio_cursor_y#18 1366668.3333333335 (byte) conio_cursor_y#20 258417.08333333337 (byte) conio_cursor_y#27 1500001.5 @@ -1595,14 +1564,6 @@ VARIABLE REGISTER WEIGHTS (byte) gotoxy::y#4 7000001.0 (byte) gotoxy::y#5 1.0000001E7 (void()) main() -(byte) main::tod_HOURS -(byte) main::tod_HOURS#0 40.4 -(byte) main::tod_MIN -(byte) main::tod_MIN#0 40.4 -(byte) main::tod_SEC -(byte) main::tod_SEC#0 40.4 -(byte) main::tod_TENTHS -(byte) main::tod_TENTHS#0 40.4 (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) (struct TIME_OF_DAY) tod_init::tod (byte) tod_init::tod_HOURS @@ -1678,10 +1639,6 @@ Added variable tod_read::return_TENTHS#2 to live range equivalence class [ tod_r Added variable tod_read::return_SEC#2 to live range equivalence class [ tod_read::return_SEC#2 ] Added variable tod_read::return_MIN#2 to live range equivalence class [ tod_read::return_MIN#2 ] Added variable tod_read::return_HOURS#2 to live range equivalence class [ tod_read::return_HOURS#2 ] -Added variable main::tod_TENTHS#0 to live range equivalence class [ main::tod_TENTHS#0 ] -Added variable main::tod_SEC#0 to live range equivalence class [ main::tod_SEC#0 ] -Added variable main::tod_MIN#0 to live range equivalence class [ main::tod_MIN#0 ] -Added variable main::tod_HOURS#0 to live range equivalence class [ main::tod_HOURS#0 ] Added variable tod_str::tod_TENTHS#0 to live range equivalence class [ tod_str::tod_TENTHS#0 ] Added variable tod_str::tod_SEC#0 to live range equivalence class [ tod_str::tod_SEC#0 ] Added variable tod_str::tod_MIN#0 to live range equivalence class [ tod_str::tod_MIN#0 ] @@ -1728,10 +1685,6 @@ Complete equivalence classes [ tod_read::return_SEC#2 ] [ tod_read::return_MIN#2 ] [ tod_read::return_HOURS#2 ] -[ main::tod_TENTHS#0 ] -[ main::tod_SEC#0 ] -[ main::tod_MIN#0 ] -[ main::tod_HOURS#0 ] [ tod_str::tod_TENTHS#0 ] [ tod_str::tod_SEC#0 ] [ tod_str::tod_MIN#0 ] @@ -1777,40 +1730,36 @@ Allocated zp[1]:15 [ tod_read::return_TENTHS#2 ] Allocated zp[1]:16 [ tod_read::return_SEC#2 ] Allocated zp[1]:17 [ tod_read::return_MIN#2 ] Allocated zp[1]:18 [ tod_read::return_HOURS#2 ] -Allocated zp[1]:19 [ main::tod_TENTHS#0 ] -Allocated zp[1]:20 [ main::tod_SEC#0 ] -Allocated zp[1]:21 [ main::tod_MIN#0 ] -Allocated zp[1]:22 [ main::tod_HOURS#0 ] -Allocated zp[1]:23 [ tod_str::tod_TENTHS#0 ] -Allocated zp[1]:24 [ tod_str::tod_SEC#0 ] -Allocated zp[1]:25 [ tod_str::tod_MIN#0 ] -Allocated zp[1]:26 [ tod_str::tod_HOURS#0 ] -Allocated zp[1]:27 [ cputs::c#1 ] -Allocated zp[1]:28 [ cputc::c#0 ] -Allocated zp[2]:29 [ gotoxy::$8 ] -Allocated zp[2]:31 [ gotoxy::$9 ] -Allocated zp[2]:33 [ gotoxy::$10 ] -Allocated zp[2]:35 [ gotoxy::offset#0 ] -Allocated zp[1]:37 [ tod_str::$0 ] -Allocated zp[1]:38 [ tod_str::$1 ] -Allocated zp[1]:39 [ tod_str::$2 ] -Allocated zp[1]:40 [ tod_str::$3 ] -Allocated zp[1]:41 [ tod_str::$4 ] -Allocated zp[1]:42 [ tod_str::$5 ] -Allocated zp[1]:43 [ tod_str::$6 ] -Allocated zp[1]:44 [ tod_str::$7 ] -Allocated zp[1]:45 [ tod_str::$8 ] -Allocated zp[1]:46 [ tod_str::$9 ] -Allocated zp[1]:47 [ tod_str::$10 ] -Allocated zp[1]:48 [ tod_str::$11 ] -Allocated zp[1]:49 [ tod_str::$12 ] -Allocated zp[1]:50 [ tod_str::$13 ] -Allocated zp[1]:51 [ tod_str::$14 ] -Allocated zp[1]:52 [ tod_str::$15 ] -Allocated zp[1]:53 [ tod_read::return_HOURS#0 ] -Allocated zp[1]:54 [ tod_read::return_MIN#0 ] -Allocated zp[1]:55 [ tod_read::return_SEC#0 ] -Allocated zp[1]:56 [ tod_read::return_TENTHS#0 ] +Allocated zp[1]:19 [ tod_str::tod_TENTHS#0 ] +Allocated zp[1]:20 [ tod_str::tod_SEC#0 ] +Allocated zp[1]:21 [ tod_str::tod_MIN#0 ] +Allocated zp[1]:22 [ tod_str::tod_HOURS#0 ] +Allocated zp[1]:23 [ cputs::c#1 ] +Allocated zp[1]:24 [ cputc::c#0 ] +Allocated zp[2]:25 [ gotoxy::$8 ] +Allocated zp[2]:27 [ gotoxy::$9 ] +Allocated zp[2]:29 [ gotoxy::$10 ] +Allocated zp[2]:31 [ gotoxy::offset#0 ] +Allocated zp[1]:33 [ tod_str::$0 ] +Allocated zp[1]:34 [ tod_str::$1 ] +Allocated zp[1]:35 [ tod_str::$2 ] +Allocated zp[1]:36 [ tod_str::$3 ] +Allocated zp[1]:37 [ tod_str::$4 ] +Allocated zp[1]:38 [ tod_str::$5 ] +Allocated zp[1]:39 [ tod_str::$6 ] +Allocated zp[1]:40 [ tod_str::$7 ] +Allocated zp[1]:41 [ tod_str::$8 ] +Allocated zp[1]:42 [ tod_str::$9 ] +Allocated zp[1]:43 [ tod_str::$10 ] +Allocated zp[1]:44 [ tod_str::$11 ] +Allocated zp[1]:45 [ tod_str::$12 ] +Allocated zp[1]:46 [ tod_str::$13 ] +Allocated zp[1]:47 [ tod_str::$14 ] +Allocated zp[1]:48 [ tod_str::$15 ] +Allocated zp[1]:49 [ tod_read::return_HOURS#0 ] +Allocated zp[1]:50 [ tod_read::return_MIN#0 ] +Allocated zp[1]:51 [ tod_read::return_SEC#0 ] +Allocated zp[1]:52 [ tod_read::return_TENTHS#0 ] Allocated mem[4] [ TOD_ZERO ] INITIAL ASM @@ -1867,10 +1816,6 @@ __bend_from___b1: __bend: // main main: { - .label tod_TENTHS = $13 - .label tod_SEC = $14 - .label tod_MIN = $15 - .label tod_HOURS = $16 // [4] (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO) -- vbuz1=_deref_pbuc1 lda TOD_ZERO sta.z tod_init.tod_TENTHS @@ -1891,66 +1836,56 @@ main: { jmp __b1 // main::@1 __b1: - // [10] call tod_read - jsr tod_read - // [11] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 -- vbuz1=vbuz2 - lda.z tod_read.return_TENTHS - sta.z tod_read.return_TENTHS_1 - // [12] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 -- vbuz1=vbuz2 - lda.z tod_read.return_SEC - sta.z tod_read.return_SEC_1 - // [13] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 -- vbuz1=vbuz2 - lda.z tod_read.return_MIN - sta.z tod_read.return_MIN_1 - // [14] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 -- vbuz1=vbuz2 - lda.z tod_read.return_HOURS - sta.z tod_read.return_HOURS_1 - jmp __b2 - // main::@2 - __b2: - // [15] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 -- vbuz1=vbuz2 - lda.z tod_read.return_TENTHS_1 - sta.z tod_TENTHS - // [16] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 -- vbuz1=vbuz2 - lda.z tod_read.return_SEC_1 - sta.z tod_SEC - // [17] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 -- vbuz1=vbuz2 - lda.z tod_read.return_MIN_1 - sta.z tod_MIN - // [18] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuz1=vbuz2 - lda.z tod_read.return_HOURS_1 - sta.z tod_HOURS - // [19] call gotoxy - // [50] phi from main::@2 to gotoxy [phi:main::@2->gotoxy] - gotoxy_from___b2: - // [50] phi (byte) gotoxy::y#4 = (byte) 0 [phi:main::@2->gotoxy#0] -- vbuz1=vbuc1 + // [10] call gotoxy + // [47] phi from main::@1 to gotoxy [phi:main::@1->gotoxy] + gotoxy_from___b1: + // [47] phi (byte) gotoxy::y#4 = (byte) 0 [phi:main::@1->gotoxy#0] -- vbuz1=vbuc1 lda #0 sta.z gotoxy.y jsr gotoxy + // [11] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + __b2_from___b1: + jmp __b2 + // main::@2 + __b2: + // [12] call tod_read + jsr tod_read + // [13] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 -- vbuz1=vbuz2 + lda.z tod_read.return_TENTHS + sta.z tod_read.return_TENTHS_1 + // [14] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 -- vbuz1=vbuz2 + lda.z tod_read.return_SEC + sta.z tod_read.return_SEC_1 + // [15] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 -- vbuz1=vbuz2 + lda.z tod_read.return_MIN + sta.z tod_read.return_MIN_1 + // [16] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 -- vbuz1=vbuz2 + lda.z tod_read.return_HOURS + sta.z tod_read.return_HOURS_1 jmp __b3 // main::@3 __b3: - // [20] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 -- vbuz1=vbuz2 - lda.z tod_TENTHS + // [17] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 -- vbuz1=vbuz2 + lda.z tod_read.return_TENTHS_1 sta.z tod_str.tod_TENTHS - // [21] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 -- vbuz1=vbuz2 - lda.z tod_SEC + // [18] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 -- vbuz1=vbuz2 + lda.z tod_read.return_SEC_1 sta.z tod_str.tod_SEC - // [22] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 -- vbuz1=vbuz2 - lda.z tod_MIN + // [19] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 -- vbuz1=vbuz2 + lda.z tod_read.return_MIN_1 sta.z tod_str.tod_MIN - // [23] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 -- vbuz1=vbuz2 - lda.z tod_HOURS + // [20] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuz1=vbuz2 + lda.z tod_read.return_HOURS_1 sta.z tod_str.tod_HOURS - // [24] call tod_str + // [21] call tod_str jsr tod_str - // [25] phi from main::@3 to main::@4 [phi:main::@3->main::@4] + // [22] phi from main::@3 to main::@4 [phi:main::@3->main::@4] __b4_from___b3: jmp __b4 // main::@4 __b4: - // [26] call cputs - // [27] phi from main::@4 to cputs [phi:main::@4->cputs] + // [23] call cputs + // [24] phi from main::@4 to cputs [phi:main::@4->cputs] cputs_from___b4: jsr cputs jmp __b1_from___b4 @@ -1959,17 +1894,17 @@ main: { // Output a NUL-terminated string at the current cursor position // cputs(byte* zp(2) s) cputs: { - .label c = $1b + .label c = $17 .label s = 2 - // [28] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] + // [25] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] __b1_from_cputs: - // [28] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#1 [phi:cputs->cputs::@1#0] -- register_copy - // [28] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#1 [phi:cputs->cputs::@1#1] -- register_copy - // [28] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#1 [phi:cputs->cputs::@1#2] -- register_copy - // [28] phi (byte) conio_cursor_x#20 = (byte) 0 [phi:cputs->cputs::@1#3] -- vbuz1=vbuc1 + // [25] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#1 [phi:cputs->cputs::@1#0] -- register_copy + // [25] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#1 [phi:cputs->cputs::@1#1] -- register_copy + // [25] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#1 [phi:cputs->cputs::@1#2] -- register_copy + // [25] phi (byte) conio_cursor_x#20 = (byte) 0 [phi:cputs->cputs::@1#3] -- vbuz1=vbuc1 lda #0 sta.z conio_cursor_x - // [28] phi (to_nomodify byte*) cputs::s#2 = (const byte*) tod_buffer [phi:cputs->cputs::@1#4] -- pbuz1=pbuc1 + // [25] phi (to_nomodify byte*) cputs::s#2 = (const byte*) tod_buffer [phi:cputs->cputs::@1#4] -- pbuz1=pbuc1 lda #tod_buffer @@ -1977,130 +1912,130 @@ cputs: { jmp __b1 // cputs::@1 __b1: - // [29] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) -- vbuz1=_deref_pbuz2 + // [26] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) -- vbuz1=_deref_pbuz2 ldy #0 lda (s),y sta.z c - // [30] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 -- pbuz1=_inc_pbuz1 + // [27] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: - // [31] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -- vbuc1_neq_vbuz1_then_la1 + // [28] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z c bne __b2 jmp __breturn // cputs::@return __breturn: - // [32] return + // [29] return rts // cputs::@2 __b2: - // [33] (byte) cputc::c#0 ← (byte) cputs::c#1 -- vbuz1=vbuz2 + // [30] (byte) cputc::c#0 ← (byte) cputs::c#1 -- vbuz1=vbuz2 lda.z c sta.z cputc.c - // [34] call cputc + // [31] call cputc jsr cputc - // [28] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] + // [25] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] __b1_from___b2: - // [28] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#17 [phi:cputs::@2->cputs::@1#0] -- register_copy - // [28] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#17 [phi:cputs::@2->cputs::@1#1] -- register_copy - // [28] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#18 [phi:cputs::@2->cputs::@1#2] -- register_copy - // [28] phi (byte) conio_cursor_x#20 = (byte) conio_cursor_x#18 [phi:cputs::@2->cputs::@1#3] -- register_copy - // [28] phi (to_nomodify byte*) cputs::s#2 = (to_nomodify byte*) cputs::s#0 [phi:cputs::@2->cputs::@1#4] -- register_copy + // [25] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#17 [phi:cputs::@2->cputs::@1#0] -- register_copy + // [25] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#17 [phi:cputs::@2->cputs::@1#1] -- register_copy + // [25] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#18 [phi:cputs::@2->cputs::@1#2] -- register_copy + // [25] phi (byte) conio_cursor_x#20 = (byte) conio_cursor_x#18 [phi:cputs::@2->cputs::@1#3] -- register_copy + // [25] phi (to_nomodify byte*) cputs::s#2 = (to_nomodify byte*) cputs::s#0 [phi:cputs::@2->cputs::@1#4] -- register_copy jmp __b1 } // cputc // Output one character at the current cursor position // Moves the cursor forward -// cputc(byte zp($1c) c) +// cputc(byte zp($18) c) cputc: { - .label c = $1c - // [35] if((byte) cputc::c#0==(byte) ' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 + .label c = $18 + // [32] if((byte) cputc::c#0==(byte) ' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 lda #'\n' cmp.z c beq __b1 jmp __b2 // cputc::@2 __b2: - // [36] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 -- _deref_pbuz1=vbuz2 + // [33] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 -- _deref_pbuz1=vbuz2 lda.z c ldy #0 sta (conio_cursor_text),y - // [37] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 -- pbuz1=_inc_pbuz1 + // [34] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 -- pbuz1=_inc_pbuz1 inc.z conio_cursor_text bne !+ inc.z conio_cursor_text+1 !: - // [38] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT -- _deref_pbuz1=vbuc1 + // [35] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT -- _deref_pbuz1=vbuc1 lda #CONIO_TEXTCOLOR_DEFAULT ldy #0 sta (conio_cursor_color),y - // [39] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 -- pbuz1=_inc_pbuz1 + // [36] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 -- pbuz1=_inc_pbuz1 inc.z conio_cursor_color bne !+ inc.z conio_cursor_color+1 !: - // [40] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 -- vbuz1=_inc_vbuz1 + // [37] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 -- vbuz1=_inc_vbuz1 inc.z conio_cursor_x - // [41] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 + // [38] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 lda #CONIO_WIDTH cmp.z conio_cursor_x bne __breturn_from___b2 jmp __b3 // cputc::@3 __b3: - // [42] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 -- vbuz1=_inc_vbuz1 + // [39] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [43] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 + // [40] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 lda #CONIO_HEIGHT cmp.z conio_cursor_y bne __breturn_from___b3 - // [44] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] + // [41] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] __b4_from___b3: jmp __b4 // cputc::@4 __b4: - // [45] call gotoxy - // [50] phi from cputc::@4 to gotoxy [phi:cputc::@4->gotoxy] + // [42] call gotoxy + // [47] phi from cputc::@4 to gotoxy [phi:cputc::@4->gotoxy] gotoxy_from___b4: - // [50] phi (byte) gotoxy::y#4 = (byte) 0 [phi:cputc::@4->gotoxy#0] -- vbuz1=vbuc1 + // [47] phi (byte) gotoxy::y#4 = (byte) 0 [phi:cputc::@4->gotoxy#0] -- vbuz1=vbuc1 lda #0 sta.z gotoxy.y jsr gotoxy - // [46] phi from cputc::@1 cputc::@3 cputc::@4 to cputc::@return [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return] + // [43] phi from cputc::@1 cputc::@3 cputc::@4 to cputc::@return [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return] __breturn_from___b1: __breturn_from___b3: __breturn_from___b4: - // [46] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#0] -- register_copy - // [46] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#1] -- register_copy - // [46] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#2] -- register_copy - // [46] phi (byte) conio_cursor_x#18 = (byte) 0 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#3] -- vbuz1=vbuc1 + // [43] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#0] -- register_copy + // [43] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#1] -- register_copy + // [43] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#2] -- register_copy + // [43] phi (byte) conio_cursor_x#18 = (byte) 0 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#3] -- vbuz1=vbuc1 lda #0 sta.z conio_cursor_x jmp __breturn - // [46] phi from cputc::@2 to cputc::@return [phi:cputc::@2->cputc::@return] + // [43] phi from cputc::@2 to cputc::@return [phi:cputc::@2->cputc::@return] __breturn_from___b2: - // [46] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#26 [phi:cputc::@2->cputc::@return#0] -- register_copy - // [46] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#26 [phi:cputc::@2->cputc::@return#1] -- register_copy - // [46] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#20 [phi:cputc::@2->cputc::@return#2] -- register_copy - // [46] phi (byte) conio_cursor_x#18 = (byte) conio_cursor_x#4 [phi:cputc::@2->cputc::@return#3] -- register_copy + // [43] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#26 [phi:cputc::@2->cputc::@return#0] -- register_copy + // [43] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#26 [phi:cputc::@2->cputc::@return#1] -- register_copy + // [43] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#20 [phi:cputc::@2->cputc::@return#2] -- register_copy + // [43] phi (byte) conio_cursor_x#18 = (byte) conio_cursor_x#4 [phi:cputc::@2->cputc::@return#3] -- register_copy jmp __breturn // cputc::@return __breturn: - // [47] return + // [44] return rts // cputc::@1 __b1: - // [48] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 -- vbuz1=vbuz2_plus_1 + // [45] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 -- vbuz1=vbuz2_plus_1 ldy.z conio_cursor_y iny sty.z gotoxy.y - // [49] call gotoxy - // [50] phi from cputc::@1 to gotoxy [phi:cputc::@1->gotoxy] + // [46] call gotoxy + // [47] phi from cputc::@1 to gotoxy [phi:cputc::@1->gotoxy] gotoxy_from___b1: - // [50] phi (byte) gotoxy::y#4 = (byte) gotoxy::y#1 [phi:cputc::@1->gotoxy#0] -- register_copy + // [47] phi (byte) gotoxy::y#4 = (byte) gotoxy::y#1 [phi:cputc::@1->gotoxy#0] -- register_copy jsr gotoxy jmp __breturn_from___b1 } @@ -2108,44 +2043,44 @@ cputc: { // Set the cursor to the specified position // gotoxy(byte zp($a) y) gotoxy: { - .label __8 = $1d - .label offset = $23 + .label __8 = $19 + .label offset = $1f .label y = $a - .label __9 = $1f - .label __10 = $21 + .label __9 = $1b + .label __10 = $1d jmp __b1 // gotoxy::@1 __b1: - // [51] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 -- vbuz1_lt_vbuc1_then_la1 + // [48] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 -- vbuz1_lt_vbuc1_then_la1 lda.z y cmp #CONIO_HEIGHT bcc __b3_from___b1 - // [53] phi from gotoxy::@1 to gotoxy::@2 [phi:gotoxy::@1->gotoxy::@2] + // [50] phi from gotoxy::@1 to gotoxy::@2 [phi:gotoxy::@1->gotoxy::@2] __b2_from___b1: - // [53] phi (byte) gotoxy::y#5 = (byte) 0 [phi:gotoxy::@1->gotoxy::@2#0] -- vbuz1=vbuc1 + // [50] phi (byte) gotoxy::y#5 = (byte) 0 [phi:gotoxy::@1->gotoxy::@2#0] -- vbuz1=vbuc1 lda #0 sta.z y jmp __b2 - // [52] phi from gotoxy::@1 to gotoxy::@3 [phi:gotoxy::@1->gotoxy::@3] + // [49] phi from gotoxy::@1 to gotoxy::@3 [phi:gotoxy::@1->gotoxy::@3] __b3_from___b1: jmp __b3 // gotoxy::@3 __b3: - // [53] phi from gotoxy::@3 to gotoxy::@2 [phi:gotoxy::@3->gotoxy::@2] + // [50] phi from gotoxy::@3 to gotoxy::@2 [phi:gotoxy::@3->gotoxy::@2] __b2_from___b3: - // [53] phi (byte) gotoxy::y#5 = (byte) gotoxy::y#4 [phi:gotoxy::@3->gotoxy::@2#0] -- register_copy + // [50] phi (byte) gotoxy::y#5 = (byte) gotoxy::y#4 [phi:gotoxy::@3->gotoxy::@2#0] -- register_copy jmp __b2 // gotoxy::@2 __b2: - // [54] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 -- vbuz1=vbuz2 + // [51] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 -- vbuz1=vbuz2 lda.z y sta.z conio_cursor_y - // [55] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 -- vwuz1=_word_vbuz2 + // [52] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 -- vwuz1=_word_vbuz2 lda.z y sta.z __8 lda #0 sta.z __8+1 - // [56] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 -- vwuz1=vwuz2_rol_2 + // [53] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 -- vwuz1=vwuz2_rol_2 lda.z __8 asl sta.z __9 @@ -2154,7 +2089,7 @@ gotoxy: { sta.z __9+1 asl.z __9 rol.z __9+1 - // [57] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 -- vwuz1=vwuz2_plus_vwuz3 + // [54] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 -- vwuz1=vwuz2_plus_vwuz3 lda.z __9 clc adc.z __8 @@ -2162,7 +2097,7 @@ gotoxy: { lda.z __9+1 adc.z __8+1 sta.z __10+1 - // [58] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 -- vwuz1=vwuz2_rol_3 + // [55] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 -- vwuz1=vwuz2_rol_3 lda.z __10 asl sta.z offset @@ -2173,7 +2108,7 @@ gotoxy: { rol.z offset+1 asl.z offset rol.z offset+1 - // [59] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + // [56] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z offset clc adc #CONIO_SCREEN_TEXT sta.z conio_cursor_text+1 - // [60] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + // [57] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z offset clc adc #> (byte) 4 -- vbuz1=vbuz2_ror_4 + .label __0 = $21 + .label __1 = $22 + .label __2 = $23 + .label __3 = $24 + .label __4 = $25 + .label __5 = $26 + .label __6 = $27 + .label __7 = $28 + .label __8 = $29 + .label __9 = $2a + .label __10 = $2b + .label __11 = $2c + .label __12 = $2d + .label __13 = $2e + .label __14 = $2f + .label __15 = $30 + .label tod_TENTHS = $13 + .label tod_SEC = $14 + .label tod_MIN = $15 + .label tod_HOURS = $16 + // [59] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 lda.z tod_HOURS lsr lsr lsr lsr sta.z __0 - // [63] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuz1=vbuc1_plus_vbuz2 + // [60] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuz1=vbuc1_plus_vbuz2 lax.z __0 axs #-['0'] stx.z __1 - // [64] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuz1 + // [61] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuz1 lda.z __1 sta tod_buffer - // [65] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + // [62] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and.z tod_HOURS sta.z __2 - // [66] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuz1=vbuc1_plus_vbuz2 + // [63] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuz1=vbuc1_plus_vbuz2 lax.z __2 axs #-['0'] stx.z __3 - // [67] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuz1 + // [64] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuz1 lda.z __3 sta tod_buffer+1 - // [68] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + // [65] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 lda.z tod_MIN lsr lsr lsr lsr sta.z __4 - // [69] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuz1=vbuc1_plus_vbuz2 + // [66] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuz1=vbuc1_plus_vbuz2 lax.z __4 axs #-['0'] stx.z __5 - // [70] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuz1 + // [67] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuz1 lda.z __5 sta tod_buffer+3 - // [71] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + // [68] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and.z tod_MIN sta.z __6 - // [72] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuz1=vbuc1_plus_vbuz2 + // [69] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuz1=vbuc1_plus_vbuz2 lax.z __6 axs #-['0'] stx.z __7 - // [73] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuz1 + // [70] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuz1 lda.z __7 sta tod_buffer+4 - // [74] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + // [71] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 lda.z tod_SEC lsr lsr lsr lsr sta.z __8 - // [75] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuz1=vbuc1_plus_vbuz2 + // [72] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuz1=vbuc1_plus_vbuz2 lax.z __8 axs #-['0'] stx.z __9 - // [76] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuz1 + // [73] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuz1 lda.z __9 sta tod_buffer+6 - // [77] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + // [74] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and.z tod_SEC sta.z __10 - // [78] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuz1=vbuc1_plus_vbuz2 + // [75] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuz1=vbuc1_plus_vbuz2 lax.z __10 axs #-['0'] stx.z __11 - // [79] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuz1 + // [76] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuz1 lda.z __11 sta tod_buffer+7 - // [80] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + // [77] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuz1=vbuz2_ror_4 lda.z tod_TENTHS lsr lsr lsr lsr sta.z __12 - // [81] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuz1=vbuc1_plus_vbuz2 + // [78] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuz1=vbuc1_plus_vbuz2 lax.z __12 axs #-['0'] stx.z __13 - // [82] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuz1 + // [79] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuz1 lda.z __13 sta tod_buffer+9 - // [83] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + // [80] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and.z tod_TENTHS sta.z __14 - // [84] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuz1=vbuc1_plus_vbuz2 + // [81] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuz1=vbuc1_plus_vbuz2 lax.z __14 axs #-['0'] stx.z __15 - // [85] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuz1 + // [82] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuz1 lda.z __15 sta tod_buffer+$a jmp __breturn // tod_str::@return __breturn: - // [86] return + // [83] return rts } // tod_read // Read time of day tod_read: { - .label return_TENTHS = $38 - .label return_SEC = $37 - .label return_MIN = $36 - .label return_HOURS = $35 + .label return_TENTHS = $34 + .label return_SEC = $33 + .label return_MIN = $32 + .label return_HOURS = $31 .label return_TENTHS_1 = $f .label return_SEC_1 = $10 .label return_MIN_1 = $11 .label return_HOURS_1 = $12 - // [87] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // [84] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 // Reading sequence is important. TOD latches on reading hours until 10ths is read. lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS sta.z return_HOURS - // [88] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuz1=_deref_pbuc1 + // [85] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuz1=_deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN sta.z return_MIN - // [89] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuz1=_deref_pbuc1 + // [86] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuz1=_deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC sta.z return_SEC - // [90] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuz1=_deref_pbuc1 + // [87] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuz1=_deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS sta.z return_TENTHS jmp __breturn // tod_read::@return __breturn: - // [91] return + // [88] return rts } // tod_init @@ -2364,34 +2299,34 @@ tod_init: { .label tod_SEC = $c .label tod_MIN = $d .label tod_HOURS = $e - // [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 + // [89] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 // Set 50hz (this assumes PAL!) (bit7=1) lda #$80 ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL - // [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 + // [90] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 // Writing TOD clock (bit7=0) lda #$7f and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuz1 + // [91] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuz1 // Reset TOD clock // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. lda.z tod_HOURS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS - // [95] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuz1 + // [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuz1 lda.z tod_MIN sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - // [96] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + // [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 lda.z tod_SEC sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - // [97] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + // [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 lda.z tod_TENTHS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS jmp __breturn // tod_init::@return __breturn: - // [98] return + // [95] return rts } // File Data @@ -2402,60 +2337,56 @@ tod_init: { TOD_ZERO: .byte 0, 0, 0, 0 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [29] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) [ cputs::s#2 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 cputs::c#1 ] ( main:2::cputs:26 [ cputs::s#2 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 cputs::c#1 ] { } ) always clobbers reg byte a reg byte y +Statement [26] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) [ cputs::s#2 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 cputs::c#1 ] ( main:2::cputs:23 [ cputs::s#2 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 cputs::c#1 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:4 [ conio_cursor_x#20 conio_cursor_x#18 conio_cursor_x#4 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ conio_cursor_x#20 conio_cursor_x#18 conio_cursor_x#4 ] Removing always clobbered register reg byte a as potential for zp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] Removing always clobbered register reg byte y as potential for zp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] -Statement [36] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 [ conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 ] ( main:2::cputs:26::cputc:34 [ cputs::s#0 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte y -Statement [38] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT [ conio_cursor_x#20 conio_cursor_y#20 conio_cursor_color#19 conio_cursor_text#26 ] ( main:2::cputs:26::cputc:34 [ cputs::s#0 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_color#19 conio_cursor_text#26 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [55] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 [ conio_cursor_y#1 gotoxy::$8 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 gotoxy::$8 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:19 [ main::tod_TENTHS#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:20 [ main::tod_SEC#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:21 [ main::tod_MIN#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:22 [ main::tod_HOURS#0 ] -Statement [56] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 [ conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [57] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 [ conio_cursor_y#1 gotoxy::$10 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 gotoxy::$10 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 gotoxy::$10 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 gotoxy::$10 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [58] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 [ conio_cursor_y#1 gotoxy::offset#0 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 gotoxy::offset#0 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [59] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 [ conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [60] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [62] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:23 [ tod_str::tod_TENTHS#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:24 [ tod_str::tod_SEC#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:25 [ tod_str::tod_MIN#0 ] -Removing always clobbered register reg byte a as potential for zp[1]:26 [ tod_str::tod_HOURS#0 ] -Statement [65] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [68] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [71] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [74] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [77] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [80] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [83] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::$14 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:2::tod_init:8 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [33] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 [ conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 ] ( main:2::cputs:23::cputc:31 [ cputs::s#0 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte y +Statement [35] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT [ conio_cursor_x#20 conio_cursor_y#20 conio_cursor_color#19 conio_cursor_text#26 ] ( main:2::cputs:23::cputc:31 [ cputs::s#0 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_color#19 conio_cursor_text#26 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y +Statement [52] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 [ conio_cursor_y#1 gotoxy::$8 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 gotoxy::$8 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [53] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 [ conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [54] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 [ conio_cursor_y#1 gotoxy::$10 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 gotoxy::$10 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 gotoxy::$10 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 gotoxy::$10 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [55] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 [ conio_cursor_y#1 gotoxy::offset#0 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 gotoxy::offset#0 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [56] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 [ conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [57] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [59] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:19 [ tod_str::tod_TENTHS#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:20 [ tod_str::tod_SEC#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:21 [ tod_str::tod_MIN#0 ] +Removing always clobbered register reg byte a as potential for zp[1]:22 [ tod_str::tod_HOURS#0 ] +Statement [62] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [65] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [68] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [71] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [74] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [77] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [80] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::$14 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [89] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:2::tod_init:8 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:11 [ tod_init::tod_TENTHS#0 ] Removing always clobbered register reg byte a as potential for zp[1]:12 [ tod_init::tod_SEC#0 ] Removing always clobbered register reg byte a as potential for zp[1]:13 [ tod_init::tod_MIN#0 ] Removing always clobbered register reg byte a as potential for zp[1]:14 [ tod_init::tod_HOURS#0 ] -Statement [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:2::tod_init:8 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a -Statement [29] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) [ cputs::s#2 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 cputs::c#1 ] ( main:2::cputs:26 [ cputs::s#2 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 cputs::c#1 ] { } ) always clobbers reg byte a reg byte y -Statement [36] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 [ conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 ] ( main:2::cputs:26::cputc:34 [ cputs::s#0 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte y -Statement [38] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT [ conio_cursor_x#20 conio_cursor_y#20 conio_cursor_color#19 conio_cursor_text#26 ] ( main:2::cputs:26::cputc:34 [ cputs::s#0 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_color#19 conio_cursor_text#26 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [55] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 [ conio_cursor_y#1 gotoxy::$8 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 gotoxy::$8 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [56] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 [ conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [57] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 [ conio_cursor_y#1 gotoxy::$10 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 gotoxy::$10 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 gotoxy::$10 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 gotoxy::$10 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [58] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 [ conio_cursor_y#1 gotoxy::offset#0 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 gotoxy::offset#0 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [59] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 [ conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [60] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] ( main:2::gotoxy:19 [ main::tod_TENTHS#0 main::tod_SEC#0 main::tod_MIN#0 main::tod_HOURS#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { } main:2::cputs:26::cputc:34::gotoxy:45 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:26::cputc:34::gotoxy:49 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [62] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [65] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [68] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [71] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [74] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [77] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [80] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [83] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:2::tod_str:24 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::$14 ] { { tod_str::tod_TENTHS#0 = main::tod_TENTHS#0 } { tod_str::tod_SEC#0 = main::tod_SEC#0 } { tod_str::tod_MIN#0 = main::tod_MIN#0 } { tod_str::tod_HOURS#0 = main::tod_HOURS#0 } } ) always clobbers reg byte a -Statement [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:2::tod_init:8 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a -Statement [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:2::tod_init:8 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [90] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:2::tod_init:8 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [26] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) [ cputs::s#2 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 cputs::c#1 ] ( main:2::cputs:23 [ cputs::s#2 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 cputs::c#1 ] { } ) always clobbers reg byte a reg byte y +Statement [33] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 [ conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 ] ( main:2::cputs:23::cputc:31 [ cputs::s#0 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_text#19 conio_cursor_color#19 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte y +Statement [35] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT [ conio_cursor_x#20 conio_cursor_y#20 conio_cursor_color#19 conio_cursor_text#26 ] ( main:2::cputs:23::cputc:31 [ cputs::s#0 conio_cursor_x#20 conio_cursor_y#20 conio_cursor_color#19 conio_cursor_text#26 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y +Statement [52] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 [ conio_cursor_y#1 gotoxy::$8 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 gotoxy::$8 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [53] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 [ conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 gotoxy::$8 gotoxy::$9 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [54] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 [ conio_cursor_y#1 gotoxy::$10 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 gotoxy::$10 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 gotoxy::$10 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 gotoxy::$10 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [55] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 [ conio_cursor_y#1 gotoxy::offset#0 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 gotoxy::offset#0 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [56] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 [ conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 gotoxy::offset#0 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [57] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] ( main:2::gotoxy:10 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { } main:2::cputs:23::cputc:31::gotoxy:42 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { { cputc::c#0 = cputs::c#1 } } main:2::cputs:23::cputc:31::gotoxy:46 [ cputs::s#0 conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 ] { { cputc::c#0 = cputs::c#1 } { gotoxy::y#1 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [59] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [62] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [65] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [68] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$6 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [71] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::$8 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [74] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f [ tod_str::tod_TENTHS#0 tod_str::$10 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::$10 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [77] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 [ tod_str::tod_TENTHS#0 tod_str::$12 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::tod_TENTHS#0 tod_str::$12 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [80] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f [ tod_str::$14 ] ( main:2::tod_str:21 [ conio_cursor_y#1 conio_cursor_text#1 conio_cursor_color#1 tod_str::$14 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#2 } { tod_str::tod_SEC#0 = tod_read::return_SEC#2 } { tod_str::tod_MIN#0 = tod_read::return_MIN#2 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#2 } } ) always clobbers reg byte a +Statement [89] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:2::tod_init:8 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [90] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:2::tod_init:8 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ cputs::s#2 cputs::s#0 ] : zp[2]:2 , Potential registers zp[1]:4 [ conio_cursor_x#20 conio_cursor_x#18 conio_cursor_x#4 ] : zp[1]:4 , reg byte x , Potential registers zp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] : zp[1]:5 , reg byte x , @@ -2470,140 +2401,129 @@ Potential registers zp[1]:15 [ tod_read::return_TENTHS#2 ] : zp[1]:15 , reg byte Potential registers zp[1]:16 [ tod_read::return_SEC#2 ] : zp[1]:16 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:17 [ tod_read::return_MIN#2 ] : zp[1]:17 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:18 [ tod_read::return_HOURS#2 ] : zp[1]:18 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:19 [ main::tod_TENTHS#0 ] : zp[1]:19 , reg byte x , reg byte y , -Potential registers zp[1]:20 [ main::tod_SEC#0 ] : zp[1]:20 , reg byte x , reg byte y , -Potential registers zp[1]:21 [ main::tod_MIN#0 ] : zp[1]:21 , reg byte x , reg byte y , -Potential registers zp[1]:22 [ main::tod_HOURS#0 ] : zp[1]:22 , reg byte x , reg byte y , -Potential registers zp[1]:23 [ tod_str::tod_TENTHS#0 ] : zp[1]:23 , reg byte x , reg byte y , -Potential registers zp[1]:24 [ tod_str::tod_SEC#0 ] : zp[1]:24 , reg byte x , reg byte y , -Potential registers zp[1]:25 [ tod_str::tod_MIN#0 ] : zp[1]:25 , reg byte x , reg byte y , -Potential registers zp[1]:26 [ tod_str::tod_HOURS#0 ] : zp[1]:26 , reg byte x , reg byte y , -Potential registers zp[1]:27 [ cputs::c#1 ] : zp[1]:27 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:28 [ cputc::c#0 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:29 [ gotoxy::$8 ] : zp[2]:29 , -Potential registers zp[2]:31 [ gotoxy::$9 ] : zp[2]:31 , -Potential registers zp[2]:33 [ gotoxy::$10 ] : zp[2]:33 , -Potential registers zp[2]:35 [ gotoxy::offset#0 ] : zp[2]:35 , -Potential registers zp[1]:37 [ tod_str::$0 ] : zp[1]:37 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:38 [ tod_str::$1 ] : zp[1]:38 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:39 [ tod_str::$2 ] : zp[1]:39 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:40 [ tod_str::$3 ] : zp[1]:40 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:41 [ tod_str::$4 ] : zp[1]:41 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:42 [ tod_str::$5 ] : zp[1]:42 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:43 [ tod_str::$6 ] : zp[1]:43 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:44 [ tod_str::$7 ] : zp[1]:44 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:45 [ tod_str::$8 ] : zp[1]:45 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:46 [ tod_str::$9 ] : zp[1]:46 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:47 [ tod_str::$10 ] : zp[1]:47 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:48 [ tod_str::$11 ] : zp[1]:48 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:49 [ tod_str::$12 ] : zp[1]:49 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:50 [ tod_str::$13 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:51 [ tod_str::$14 ] : zp[1]:51 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:52 [ tod_str::$15 ] : zp[1]:52 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:53 [ tod_read::return_HOURS#0 ] : zp[1]:53 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:54 [ tod_read::return_MIN#0 ] : zp[1]:54 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:55 [ tod_read::return_SEC#0 ] : zp[1]:55 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:56 [ tod_read::return_TENTHS#0 ] : zp[1]:56 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:19 [ tod_str::tod_TENTHS#0 ] : zp[1]:19 , reg byte x , reg byte y , +Potential registers zp[1]:20 [ tod_str::tod_SEC#0 ] : zp[1]:20 , reg byte x , reg byte y , +Potential registers zp[1]:21 [ tod_str::tod_MIN#0 ] : zp[1]:21 , reg byte x , reg byte y , +Potential registers zp[1]:22 [ tod_str::tod_HOURS#0 ] : zp[1]:22 , reg byte x , reg byte y , +Potential registers zp[1]:23 [ cputs::c#1 ] : zp[1]:23 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:24 [ cputc::c#0 ] : zp[1]:24 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:25 [ gotoxy::$8 ] : zp[2]:25 , +Potential registers zp[2]:27 [ gotoxy::$9 ] : zp[2]:27 , +Potential registers zp[2]:29 [ gotoxy::$10 ] : zp[2]:29 , +Potential registers zp[2]:31 [ gotoxy::offset#0 ] : zp[2]:31 , +Potential registers zp[1]:33 [ tod_str::$0 ] : zp[1]:33 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:34 [ tod_str::$1 ] : zp[1]:34 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:35 [ tod_str::$2 ] : zp[1]:35 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:36 [ tod_str::$3 ] : zp[1]:36 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:37 [ tod_str::$4 ] : zp[1]:37 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:38 [ tod_str::$5 ] : zp[1]:38 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:39 [ tod_str::$6 ] : zp[1]:39 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:40 [ tod_str::$7 ] : zp[1]:40 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:41 [ tod_str::$8 ] : zp[1]:41 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:42 [ tod_str::$9 ] : zp[1]:42 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:43 [ tod_str::$10 ] : zp[1]:43 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:44 [ tod_str::$11 ] : zp[1]:44 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:45 [ tod_str::$12 ] : zp[1]:45 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:46 [ tod_str::$13 ] : zp[1]:46 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:47 [ tod_str::$14 ] : zp[1]:47 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:48 [ tod_str::$15 ] : zp[1]:48 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:49 [ tod_read::return_HOURS#0 ] : zp[1]:49 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:50 [ tod_read::return_MIN#0 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:51 [ tod_read::return_SEC#0 ] : zp[1]:51 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:52 [ tod_read::return_TENTHS#0 ] : zp[1]:52 , reg byte a , reg byte x , reg byte y , Potential registers mem[4] [ TOD_ZERO ] : mem[4] , REGISTER UPLIFT SCOPES -Uplift Scope [gotoxy] 20,000,002: zp[2]:31 [ gotoxy::$9 ] 20,000,002: zp[2]:33 [ gotoxy::$10 ] 19,000,004: zp[1]:10 [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 ] 15,000,001.5: zp[2]:29 [ gotoxy::$8 ] 15,000,001.5: zp[2]:35 [ gotoxy::offset#0 ] -Uplift Scope [] 3,791,809.36: zp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] 3,200,197.49: zp[2]:8 [ conio_cursor_color#19 conio_cursor_color#1 conio_cursor_color#17 conio_cursor_color#26 ] 3,018,537.77: zp[2]:6 [ conio_cursor_text#19 conio_cursor_text#1 conio_cursor_text#17 conio_cursor_text#26 ] 1,976,669.03: zp[1]:4 [ conio_cursor_x#20 conio_cursor_x#18 conio_cursor_x#4 ] 0: mem[4] [ TOD_ZERO ] -Uplift Scope [cputc] 1,050,001.5: zp[1]:28 [ cputc::c#0 ] -Uplift Scope [cputs] 200,002: zp[2]:2 [ cputs::s#2 cputs::s#0 ] 100,001: zp[1]:27 [ cputs::c#1 ] -Uplift Scope [tod_str] 2,002: zp[1]:37 [ tod_str::$0 ] 2,002: zp[1]:38 [ tod_str::$1 ] 2,002: zp[1]:39 [ tod_str::$2 ] 2,002: zp[1]:40 [ tod_str::$3 ] 2,002: zp[1]:41 [ tod_str::$4 ] 2,002: zp[1]:42 [ tod_str::$5 ] 2,002: zp[1]:43 [ tod_str::$6 ] 2,002: zp[1]:44 [ tod_str::$7 ] 2,002: zp[1]:45 [ tod_str::$8 ] 2,002: zp[1]:46 [ tod_str::$9 ] 2,002: zp[1]:47 [ tod_str::$10 ] 2,002: zp[1]:48 [ tod_str::$11 ] 2,002: zp[1]:49 [ tod_str::$12 ] 2,002: zp[1]:50 [ tod_str::$13 ] 2,002: zp[1]:51 [ tod_str::$14 ] 2,002: zp[1]:52 [ tod_str::$15 ] 525.75: zp[1]:26 [ tod_str::tod_HOURS#0 ] 191.18: zp[1]:25 [ tod_str::tod_MIN#0 ] 116.83: zp[1]:24 [ tod_str::tod_SEC#0 ] 84.12: zp[1]:23 [ tod_str::tod_TENTHS#0 ] -Uplift Scope [tod_read] 367.33: zp[1]:56 [ tod_read::return_TENTHS#0 ] 220.4: zp[1]:55 [ tod_read::return_SEC#0 ] 157.43: zp[1]:54 [ tod_read::return_MIN#0 ] 122.44: zp[1]:53 [ tod_read::return_HOURS#0 ] 50.5: zp[1]:15 [ tod_read::return_TENTHS#2 ] 50.5: zp[1]:16 [ tod_read::return_SEC#2 ] 50.5: zp[1]:17 [ tod_read::return_MIN#2 ] 50.5: zp[1]:18 [ tod_read::return_HOURS#2 ] -Uplift Scope [main] 40.4: zp[1]:19 [ main::tod_TENTHS#0 ] 40.4: zp[1]:20 [ main::tod_SEC#0 ] 40.4: zp[1]:21 [ main::tod_MIN#0 ] 40.4: zp[1]:22 [ main::tod_HOURS#0 ] +Uplift Scope [gotoxy] 20,000,002: zp[2]:27 [ gotoxy::$9 ] 20,000,002: zp[2]:29 [ gotoxy::$10 ] 19,000,004: zp[1]:10 [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 ] 15,000,001.5: zp[2]:25 [ gotoxy::$8 ] 15,000,001.5: zp[2]:31 [ gotoxy::offset#0 ] +Uplift Scope [] 3,625,128.75: zp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] 2,866,836.27: zp[2]:8 [ conio_cursor_color#19 conio_cursor_color#1 conio_cursor_color#17 conio_cursor_color#26 ] 2,727,015.41: zp[2]:6 [ conio_cursor_text#19 conio_cursor_text#1 conio_cursor_text#17 conio_cursor_text#26 ] 1,976,669.03: zp[1]:4 [ conio_cursor_x#20 conio_cursor_x#18 conio_cursor_x#4 ] 0: mem[4] [ TOD_ZERO ] +Uplift Scope [cputc] 1,050,001.5: zp[1]:24 [ cputc::c#0 ] +Uplift Scope [cputs] 200,002: zp[2]:2 [ cputs::s#2 cputs::s#0 ] 100,001: zp[1]:23 [ cputs::c#1 ] +Uplift Scope [tod_str] 2,002: zp[1]:33 [ tod_str::$0 ] 2,002: zp[1]:34 [ tod_str::$1 ] 2,002: zp[1]:35 [ tod_str::$2 ] 2,002: zp[1]:36 [ tod_str::$3 ] 2,002: zp[1]:37 [ tod_str::$4 ] 2,002: zp[1]:38 [ tod_str::$5 ] 2,002: zp[1]:39 [ tod_str::$6 ] 2,002: zp[1]:40 [ tod_str::$7 ] 2,002: zp[1]:41 [ tod_str::$8 ] 2,002: zp[1]:42 [ tod_str::$9 ] 2,002: zp[1]:43 [ tod_str::$10 ] 2,002: zp[1]:44 [ tod_str::$11 ] 2,002: zp[1]:45 [ tod_str::$12 ] 2,002: zp[1]:46 [ tod_str::$13 ] 2,002: zp[1]:47 [ tod_str::$14 ] 2,002: zp[1]:48 [ tod_str::$15 ] 525.75: zp[1]:22 [ tod_str::tod_HOURS#0 ] 191.18: zp[1]:21 [ tod_str::tod_MIN#0 ] 116.83: zp[1]:20 [ tod_str::tod_SEC#0 ] 84.12: zp[1]:19 [ tod_str::tod_TENTHS#0 ] +Uplift Scope [tod_read] 367.33: zp[1]:52 [ tod_read::return_TENTHS#0 ] 220.4: zp[1]:51 [ tod_read::return_SEC#0 ] 157.43: zp[1]:50 [ tod_read::return_MIN#0 ] 122.44: zp[1]:49 [ tod_read::return_HOURS#0 ] 50.5: zp[1]:15 [ tod_read::return_TENTHS#2 ] 50.5: zp[1]:16 [ tod_read::return_SEC#2 ] 50.5: zp[1]:17 [ tod_read::return_MIN#2 ] 50.5: zp[1]:18 [ tod_read::return_HOURS#2 ] Uplift Scope [tod_init] 37.33: zp[1]:14 [ tod_init::tod_HOURS#0 ] 22.4: zp[1]:13 [ tod_init::tod_MIN#0 ] 16: zp[1]:12 [ tod_init::tod_SEC#0 ] 12.44: zp[1]:11 [ tod_init::tod_TENTHS#0 ] Uplift Scope [TIME_OF_DAY] Uplift Scope [MOS6526_CIA] +Uplift Scope [main] -Uplifting [gotoxy] best 8272 combination zp[2]:31 [ gotoxy::$9 ] zp[2]:33 [ gotoxy::$10 ] reg byte a [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 ] zp[2]:29 [ gotoxy::$8 ] zp[2]:35 [ gotoxy::offset#0 ] -Uplifting [] best 7963 combination zp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] zp[2]:8 [ conio_cursor_color#19 conio_cursor_color#1 conio_cursor_color#17 conio_cursor_color#26 ] zp[2]:6 [ conio_cursor_text#19 conio_cursor_text#1 conio_cursor_text#17 conio_cursor_text#26 ] reg byte x [ conio_cursor_x#20 conio_cursor_x#18 conio_cursor_x#4 ] mem[4] [ TOD_ZERO ] -Uplifting [cputc] best 7657 combination reg byte a [ cputc::c#0 ] -Uplifting [cputs] best 6757 combination zp[2]:2 [ cputs::s#2 cputs::s#0 ] reg byte a [ cputs::c#1 ] -Uplifting [tod_read] best 6658 combination reg byte y [ tod_read::return_TENTHS#0 ] reg byte x [ tod_read::return_SEC#0 ] reg byte a [ tod_read::return_MIN#0 ] zp[1]:53 [ tod_read::return_HOURS#0 ] zp[1]:15 [ tod_read::return_TENTHS#2 ] zp[1]:16 [ tod_read::return_SEC#2 ] zp[1]:17 [ tod_read::return_MIN#2 ] zp[1]:18 [ tod_read::return_HOURS#2 ] +Uplifting [gotoxy] best 8059 combination zp[2]:27 [ gotoxy::$9 ] zp[2]:29 [ gotoxy::$10 ] reg byte a [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 ] zp[2]:25 [ gotoxy::$8 ] zp[2]:31 [ gotoxy::offset#0 ] +Uplifting [] best 7750 combination zp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] zp[2]:8 [ conio_cursor_color#19 conio_cursor_color#1 conio_cursor_color#17 conio_cursor_color#26 ] zp[2]:6 [ conio_cursor_text#19 conio_cursor_text#1 conio_cursor_text#17 conio_cursor_text#26 ] reg byte x [ conio_cursor_x#20 conio_cursor_x#18 conio_cursor_x#4 ] mem[4] [ TOD_ZERO ] +Uplifting [cputc] best 7444 combination reg byte a [ cputc::c#0 ] +Uplifting [cputs] best 6544 combination zp[2]:2 [ cputs::s#2 cputs::s#0 ] reg byte a [ cputs::c#1 ] +Uplifting [tod_read] best 6445 combination reg byte y [ tod_read::return_TENTHS#0 ] reg byte x [ tod_read::return_SEC#0 ] reg byte a [ tod_read::return_MIN#0 ] zp[1]:49 [ tod_read::return_HOURS#0 ] zp[1]:15 [ tod_read::return_TENTHS#2 ] zp[1]:16 [ tod_read::return_SEC#2 ] zp[1]:17 [ tod_read::return_MIN#2 ] zp[1]:18 [ tod_read::return_HOURS#2 ] Limited combination testing to 100 combinations of 65536 possible. -Uplifting [main] best 6538 combination reg byte y [ main::tod_TENTHS#0 ] reg byte x [ main::tod_SEC#0 ] zp[1]:21 [ main::tod_MIN#0 ] zp[1]:22 [ main::tod_HOURS#0 ] -Uplifting [tod_init] best 6526 combination reg byte y [ tod_init::tod_HOURS#0 ] reg byte x [ tod_init::tod_MIN#0 ] zp[1]:12 [ tod_init::tod_SEC#0 ] zp[1]:11 [ tod_init::tod_TENTHS#0 ] -Uplifting [TIME_OF_DAY] best 6526 combination -Uplifting [MOS6526_CIA] best 6526 combination +Uplifting [tod_init] best 6433 combination reg byte y [ tod_init::tod_HOURS#0 ] reg byte x [ tod_init::tod_MIN#0 ] zp[1]:12 [ tod_init::tod_SEC#0 ] zp[1]:11 [ tod_init::tod_TENTHS#0 ] +Uplifting [TIME_OF_DAY] best 6433 combination +Uplifting [MOS6526_CIA] best 6433 combination +Uplifting [main] best 6433 combination Attempting to uplift remaining variables inzp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] -Uplifting [] best 6526 combination zp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] -Attempting to uplift remaining variables inzp[1]:37 [ tod_str::$0 ] -Uplifting [tod_str] best 6522 combination reg byte a [ tod_str::$0 ] -Attempting to uplift remaining variables inzp[1]:38 [ tod_str::$1 ] -Uplifting [tod_str] best 6516 combination reg byte a [ tod_str::$1 ] -Attempting to uplift remaining variables inzp[1]:39 [ tod_str::$2 ] -Uplifting [tod_str] best 6512 combination reg byte a [ tod_str::$2 ] -Attempting to uplift remaining variables inzp[1]:40 [ tod_str::$3 ] -Uplifting [tod_str] best 6506 combination reg byte a [ tod_str::$3 ] -Attempting to uplift remaining variables inzp[1]:41 [ tod_str::$4 ] -Uplifting [tod_str] best 6502 combination reg byte a [ tod_str::$4 ] -Attempting to uplift remaining variables inzp[1]:42 [ tod_str::$5 ] -Uplifting [tod_str] best 6496 combination reg byte a [ tod_str::$5 ] -Attempting to uplift remaining variables inzp[1]:43 [ tod_str::$6 ] -Uplifting [tod_str] best 6492 combination reg byte a [ tod_str::$6 ] -Attempting to uplift remaining variables inzp[1]:44 [ tod_str::$7 ] -Uplifting [tod_str] best 6486 combination reg byte a [ tod_str::$7 ] -Attempting to uplift remaining variables inzp[1]:45 [ tod_str::$8 ] -Uplifting [tod_str] best 6482 combination reg byte a [ tod_str::$8 ] -Attempting to uplift remaining variables inzp[1]:46 [ tod_str::$9 ] -Uplifting [tod_str] best 6476 combination reg byte a [ tod_str::$9 ] -Attempting to uplift remaining variables inzp[1]:47 [ tod_str::$10 ] -Uplifting [tod_str] best 6472 combination reg byte a [ tod_str::$10 ] -Attempting to uplift remaining variables inzp[1]:48 [ tod_str::$11 ] -Uplifting [tod_str] best 6466 combination reg byte a [ tod_str::$11 ] -Attempting to uplift remaining variables inzp[1]:49 [ tod_str::$12 ] -Uplifting [tod_str] best 6462 combination reg byte a [ tod_str::$12 ] -Attempting to uplift remaining variables inzp[1]:50 [ tod_str::$13 ] -Uplifting [tod_str] best 6456 combination reg byte a [ tod_str::$13 ] -Attempting to uplift remaining variables inzp[1]:51 [ tod_str::$14 ] -Uplifting [tod_str] best 6452 combination reg byte a [ tod_str::$14 ] -Attempting to uplift remaining variables inzp[1]:52 [ tod_str::$15 ] -Uplifting [tod_str] best 6446 combination reg byte a [ tod_str::$15 ] -Attempting to uplift remaining variables inzp[1]:26 [ tod_str::tod_HOURS#0 ] -Uplifting [tod_str] best 6414 combination reg byte x [ tod_str::tod_HOURS#0 ] -Attempting to uplift remaining variables inzp[1]:25 [ tod_str::tod_MIN#0 ] -Uplifting [tod_str] best 6382 combination reg byte y [ tod_str::tod_MIN#0 ] -Attempting to uplift remaining variables inzp[1]:53 [ tod_read::return_HOURS#0 ] -Uplifting [tod_read] best 6382 combination zp[1]:53 [ tod_read::return_HOURS#0 ] -Attempting to uplift remaining variables inzp[1]:24 [ tod_str::tod_SEC#0 ] -Uplifting [tod_str] best 6382 combination zp[1]:24 [ tod_str::tod_SEC#0 ] -Attempting to uplift remaining variables inzp[1]:23 [ tod_str::tod_TENTHS#0 ] -Uplifting [tod_str] best 6382 combination zp[1]:23 [ tod_str::tod_TENTHS#0 ] +Uplifting [] best 6433 combination zp[1]:5 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] +Attempting to uplift remaining variables inzp[1]:33 [ tod_str::$0 ] +Uplifting [tod_str] best 6429 combination reg byte a [ tod_str::$0 ] +Attempting to uplift remaining variables inzp[1]:34 [ tod_str::$1 ] +Uplifting [tod_str] best 6423 combination reg byte a [ tod_str::$1 ] +Attempting to uplift remaining variables inzp[1]:35 [ tod_str::$2 ] +Uplifting [tod_str] best 6419 combination reg byte a [ tod_str::$2 ] +Attempting to uplift remaining variables inzp[1]:36 [ tod_str::$3 ] +Uplifting [tod_str] best 6413 combination reg byte a [ tod_str::$3 ] +Attempting to uplift remaining variables inzp[1]:37 [ tod_str::$4 ] +Uplifting [tod_str] best 6409 combination reg byte a [ tod_str::$4 ] +Attempting to uplift remaining variables inzp[1]:38 [ tod_str::$5 ] +Uplifting [tod_str] best 6403 combination reg byte a [ tod_str::$5 ] +Attempting to uplift remaining variables inzp[1]:39 [ tod_str::$6 ] +Uplifting [tod_str] best 6399 combination reg byte a [ tod_str::$6 ] +Attempting to uplift remaining variables inzp[1]:40 [ tod_str::$7 ] +Uplifting [tod_str] best 6393 combination reg byte a [ tod_str::$7 ] +Attempting to uplift remaining variables inzp[1]:41 [ tod_str::$8 ] +Uplifting [tod_str] best 6389 combination reg byte a [ tod_str::$8 ] +Attempting to uplift remaining variables inzp[1]:42 [ tod_str::$9 ] +Uplifting [tod_str] best 6383 combination reg byte a [ tod_str::$9 ] +Attempting to uplift remaining variables inzp[1]:43 [ tod_str::$10 ] +Uplifting [tod_str] best 6379 combination reg byte a [ tod_str::$10 ] +Attempting to uplift remaining variables inzp[1]:44 [ tod_str::$11 ] +Uplifting [tod_str] best 6373 combination reg byte a [ tod_str::$11 ] +Attempting to uplift remaining variables inzp[1]:45 [ tod_str::$12 ] +Uplifting [tod_str] best 6369 combination reg byte a [ tod_str::$12 ] +Attempting to uplift remaining variables inzp[1]:46 [ tod_str::$13 ] +Uplifting [tod_str] best 6363 combination reg byte a [ tod_str::$13 ] +Attempting to uplift remaining variables inzp[1]:47 [ tod_str::$14 ] +Uplifting [tod_str] best 6359 combination reg byte a [ tod_str::$14 ] +Attempting to uplift remaining variables inzp[1]:48 [ tod_str::$15 ] +Uplifting [tod_str] best 6353 combination reg byte a [ tod_str::$15 ] +Attempting to uplift remaining variables inzp[1]:22 [ tod_str::tod_HOURS#0 ] +Uplifting [tod_str] best 6321 combination reg byte x [ tod_str::tod_HOURS#0 ] +Attempting to uplift remaining variables inzp[1]:21 [ tod_str::tod_MIN#0 ] +Uplifting [tod_str] best 6289 combination reg byte y [ tod_str::tod_MIN#0 ] +Attempting to uplift remaining variables inzp[1]:49 [ tod_read::return_HOURS#0 ] +Uplifting [tod_read] best 6289 combination zp[1]:49 [ tod_read::return_HOURS#0 ] +Attempting to uplift remaining variables inzp[1]:20 [ tod_str::tod_SEC#0 ] +Uplifting [tod_str] best 6289 combination zp[1]:20 [ tod_str::tod_SEC#0 ] +Attempting to uplift remaining variables inzp[1]:19 [ tod_str::tod_TENTHS#0 ] +Uplifting [tod_str] best 6289 combination zp[1]:19 [ tod_str::tod_TENTHS#0 ] Attempting to uplift remaining variables inzp[1]:15 [ tod_read::return_TENTHS#2 ] -Uplifting [tod_read] best 6322 combination reg byte y [ tod_read::return_TENTHS#2 ] +Uplifting [tod_read] best 6229 combination reg byte y [ tod_read::return_TENTHS#2 ] Attempting to uplift remaining variables inzp[1]:16 [ tod_read::return_SEC#2 ] -Uplifting [tod_read] best 6262 combination reg byte x [ tod_read::return_SEC#2 ] +Uplifting [tod_read] best 6169 combination reg byte x [ tod_read::return_SEC#2 ] Attempting to uplift remaining variables inzp[1]:17 [ tod_read::return_MIN#2 ] -Uplifting [tod_read] best 6262 combination zp[1]:17 [ tod_read::return_MIN#2 ] +Uplifting [tod_read] best 6169 combination zp[1]:17 [ tod_read::return_MIN#2 ] Attempting to uplift remaining variables inzp[1]:18 [ tod_read::return_HOURS#2 ] -Uplifting [tod_read] best 6262 combination zp[1]:18 [ tod_read::return_HOURS#2 ] -Attempting to uplift remaining variables inzp[1]:21 [ main::tod_MIN#0 ] -Uplifting [main] best 6262 combination zp[1]:21 [ main::tod_MIN#0 ] -Attempting to uplift remaining variables inzp[1]:22 [ main::tod_HOURS#0 ] -Uplifting [main] best 6262 combination zp[1]:22 [ main::tod_HOURS#0 ] +Uplifting [tod_read] best 6129 combination reg byte a [ tod_read::return_HOURS#2 ] Attempting to uplift remaining variables inzp[1]:12 [ tod_init::tod_SEC#0 ] -Uplifting [tod_init] best 6262 combination zp[1]:12 [ tod_init::tod_SEC#0 ] +Uplifting [tod_init] best 6129 combination zp[1]:12 [ tod_init::tod_SEC#0 ] Attempting to uplift remaining variables inzp[1]:11 [ tod_init::tod_TENTHS#0 ] -Uplifting [tod_init] best 6262 combination zp[1]:11 [ tod_init::tod_TENTHS#0 ] -Coalescing zero page register [ zp[2]:8 [ conio_cursor_color#19 conio_cursor_color#1 conio_cursor_color#17 conio_cursor_color#26 ] ] with [ zp[2]:35 [ gotoxy::offset#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:17 [ tod_read::return_MIN#2 ] ] with [ zp[1]:21 [ main::tod_MIN#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:18 [ tod_read::return_HOURS#2 ] ] with [ zp[1]:22 [ main::tod_HOURS#0 ] ] - score: 1 -Coalescing zero page register [ zp[1]:18 [ tod_read::return_HOURS#2 main::tod_HOURS#0 ] ] with [ zp[1]:53 [ tod_read::return_HOURS#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:29 [ gotoxy::$8 ] ] with [ zp[2]:33 [ gotoxy::$10 ] ] - score: 1 -Coalescing zero page register [ zp[2]:8 [ conio_cursor_color#19 conio_cursor_color#1 conio_cursor_color#17 conio_cursor_color#26 gotoxy::offset#0 ] ] with [ zp[2]:29 [ gotoxy::$8 gotoxy::$10 ] ] - score: 1 -Coalescing zero page register [ zp[1]:17 [ tod_read::return_MIN#2 main::tod_MIN#0 ] ] with [ zp[1]:11 [ tod_init::tod_TENTHS#0 ] ] -Coalescing zero page register [ zp[1]:18 [ tod_read::return_HOURS#2 main::tod_HOURS#0 tod_read::return_HOURS#0 ] ] with [ zp[1]:12 [ tod_init::tod_SEC#0 ] ] +Uplifting [tod_init] best 6129 combination zp[1]:11 [ tod_init::tod_TENTHS#0 ] +Coalescing zero page register [ zp[2]:8 [ conio_cursor_color#19 conio_cursor_color#1 conio_cursor_color#17 conio_cursor_color#26 ] ] with [ zp[2]:31 [ gotoxy::offset#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:25 [ gotoxy::$8 ] ] with [ zp[2]:29 [ gotoxy::$10 ] ] - score: 1 +Coalescing zero page register [ zp[2]:8 [ conio_cursor_color#19 conio_cursor_color#1 conio_cursor_color#17 conio_cursor_color#26 gotoxy::offset#0 ] ] with [ zp[2]:25 [ gotoxy::$8 gotoxy::$10 ] ] - score: 1 +Coalescing zero page register [ zp[1]:17 [ tod_read::return_MIN#2 ] ] with [ zp[1]:11 [ tod_init::tod_TENTHS#0 ] ] +Coalescing zero page register [ zp[1]:19 [ tod_str::tod_TENTHS#0 ] ] with [ zp[1]:12 [ tod_init::tod_SEC#0 ] ] +Coalescing zero page register [ zp[1]:49 [ tod_read::return_HOURS#0 ] ] with [ zp[1]:20 [ tod_str::tod_SEC#0 ] ] Allocated (was zp[1]:5) zp[1]:4 [ conio_cursor_y#20 conio_cursor_y#1 conio_cursor_y#18 conio_cursor_y#27 ] Allocated (was zp[2]:6) zp[2]:5 [ conio_cursor_text#19 conio_cursor_text#1 conio_cursor_text#17 conio_cursor_text#26 ] Allocated (was zp[2]:8) zp[2]:7 [ conio_cursor_color#19 conio_cursor_color#1 conio_cursor_color#17 conio_cursor_color#26 gotoxy::offset#0 gotoxy::$8 gotoxy::$10 ] -Allocated (was zp[1]:17) zp[1]:9 [ tod_read::return_MIN#2 main::tod_MIN#0 tod_init::tod_TENTHS#0 ] -Allocated (was zp[1]:18) zp[1]:10 [ tod_read::return_HOURS#2 main::tod_HOURS#0 tod_read::return_HOURS#0 tod_init::tod_SEC#0 ] -Allocated (was zp[1]:23) zp[1]:11 [ tod_str::tod_TENTHS#0 ] -Allocated (was zp[1]:24) zp[1]:12 [ tod_str::tod_SEC#0 ] -Allocated (was zp[2]:31) zp[2]:13 [ gotoxy::$9 ] +Allocated (was zp[1]:17) zp[1]:9 [ tod_read::return_MIN#2 tod_init::tod_TENTHS#0 ] +Allocated (was zp[1]:19) zp[1]:10 [ tod_str::tod_TENTHS#0 tod_init::tod_SEC#0 ] +Allocated (was zp[2]:27) zp[2]:11 [ gotoxy::$9 ] +Allocated (was zp[1]:49) zp[1]:13 [ tod_read::return_HOURS#0 tod_str::tod_SEC#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -2656,8 +2576,6 @@ __bend_from___b1: __bend: // main main: { - .label tod_MIN = 9 - .label tod_HOURS = $a // [4] (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO) -- vbuz1=_deref_pbuc1 lda TOD_ZERO sta.z tod_init.tod_TENTHS @@ -2676,46 +2594,45 @@ main: { jmp __b1 // main::@1 __b1: - // [10] call tod_read - jsr tod_read - // [11] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 - // [12] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 - // [13] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 -- vbuz1=vbuaa - sta.z tod_read.return_MIN - // [14] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 + // [10] call gotoxy + // [47] phi from main::@1 to gotoxy [phi:main::@1->gotoxy] + gotoxy_from___b1: + // [47] phi (byte) gotoxy::y#4 = (byte) 0 [phi:main::@1->gotoxy#0] -- vbuaa=vbuc1 + lda #0 + jsr gotoxy + // [11] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + __b2_from___b1: jmp __b2 // main::@2 __b2: - // [15] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 - // [16] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 - // [17] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 - // [18] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 - // [19] call gotoxy - // [50] phi from main::@2 to gotoxy [phi:main::@2->gotoxy] - gotoxy_from___b2: - // [50] phi (byte) gotoxy::y#4 = (byte) 0 [phi:main::@2->gotoxy#0] -- vbuaa=vbuc1 - lda #0 - jsr gotoxy + // [12] call tod_read + jsr tod_read + // [13] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 + // [14] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 + // [15] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 -- vbuz1=vbuaa + sta.z tod_read.return_MIN + // [16] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 -- vbuaa=vbuz1 + lda.z tod_read.return_HOURS jmp __b3 // main::@3 __b3: - // [20] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 -- vbuz1=vbuyy + // [17] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 -- vbuz1=vbuyy sty.z tod_str.tod_TENTHS - // [21] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 -- vbuz1=vbuxx + // [18] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 -- vbuz1=vbuxx stx.z tod_str.tod_SEC - // [22] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 -- vbuyy=vbuz1 - ldy.z tod_MIN - // [23] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 -- vbuxx=vbuz1 - ldx.z tod_HOURS - // [24] call tod_str + // [19] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 -- vbuyy=vbuz1 + ldy.z tod_read.return_MIN + // [20] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuxx=vbuaa + tax + // [21] call tod_str jsr tod_str - // [25] phi from main::@3 to main::@4 [phi:main::@3->main::@4] + // [22] phi from main::@3 to main::@4 [phi:main::@3->main::@4] __b4_from___b3: jmp __b4 // main::@4 __b4: - // [26] call cputs - // [27] phi from main::@4 to cputs [phi:main::@4->cputs] + // [23] call cputs + // [24] phi from main::@4 to cputs [phi:main::@4->cputs] cputs_from___b4: jsr cputs jmp __b1_from___b4 @@ -2725,14 +2642,14 @@ main: { // cputs(byte* zp(2) s) cputs: { .label s = 2 - // [28] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] + // [25] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] __b1_from_cputs: - // [28] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#1 [phi:cputs->cputs::@1#0] -- register_copy - // [28] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#1 [phi:cputs->cputs::@1#1] -- register_copy - // [28] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#1 [phi:cputs->cputs::@1#2] -- register_copy - // [28] phi (byte) conio_cursor_x#20 = (byte) 0 [phi:cputs->cputs::@1#3] -- vbuxx=vbuc1 + // [25] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#1 [phi:cputs->cputs::@1#0] -- register_copy + // [25] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#1 [phi:cputs->cputs::@1#1] -- register_copy + // [25] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#1 [phi:cputs->cputs::@1#2] -- register_copy + // [25] phi (byte) conio_cursor_x#20 = (byte) 0 [phi:cputs->cputs::@1#3] -- vbuxx=vbuc1 ldx #0 - // [28] phi (to_nomodify byte*) cputs::s#2 = (const byte*) tod_buffer [phi:cputs->cputs::@1#4] -- pbuz1=pbuc1 + // [25] phi (to_nomodify byte*) cputs::s#2 = (const byte*) tod_buffer [phi:cputs->cputs::@1#4] -- pbuz1=pbuc1 lda #tod_buffer @@ -2740,34 +2657,34 @@ cputs: { jmp __b1 // cputs::@1 __b1: - // [29] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) -- vbuaa=_deref_pbuz1 + // [26] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (s),y - // [30] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 -- pbuz1=_inc_pbuz1 + // [27] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: - // [31] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -- vbuc1_neq_vbuaa_then_la1 + // [28] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -- vbuc1_neq_vbuaa_then_la1 cmp #0 bne __b2 jmp __breturn // cputs::@return __breturn: - // [32] return + // [29] return rts // cputs::@2 __b2: - // [33] (byte) cputc::c#0 ← (byte) cputs::c#1 - // [34] call cputc + // [30] (byte) cputc::c#0 ← (byte) cputs::c#1 + // [31] call cputc jsr cputc - // [28] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] + // [25] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] __b1_from___b2: - // [28] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#17 [phi:cputs::@2->cputs::@1#0] -- register_copy - // [28] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#17 [phi:cputs::@2->cputs::@1#1] -- register_copy - // [28] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#18 [phi:cputs::@2->cputs::@1#2] -- register_copy - // [28] phi (byte) conio_cursor_x#20 = (byte) conio_cursor_x#18 [phi:cputs::@2->cputs::@1#3] -- register_copy - // [28] phi (to_nomodify byte*) cputs::s#2 = (to_nomodify byte*) cputs::s#0 [phi:cputs::@2->cputs::@1#4] -- register_copy + // [25] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#17 [phi:cputs::@2->cputs::@1#0] -- register_copy + // [25] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#17 [phi:cputs::@2->cputs::@1#1] -- register_copy + // [25] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#18 [phi:cputs::@2->cputs::@1#2] -- register_copy + // [25] phi (byte) conio_cursor_x#20 = (byte) conio_cursor_x#18 [phi:cputs::@2->cputs::@1#3] -- register_copy + // [25] phi (to_nomodify byte*) cputs::s#2 = (to_nomodify byte*) cputs::s#0 [phi:cputs::@2->cputs::@1#4] -- register_copy jmp __b1 } // cputc @@ -2775,85 +2692,85 @@ cputs: { // Moves the cursor forward // cputc(byte register(A) c) cputc: { - // [35] if((byte) cputc::c#0==(byte) ' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 + // [32] if((byte) cputc::c#0==(byte) ' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' beq __b1 jmp __b2 // cputc::@2 __b2: - // [36] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 -- _deref_pbuz1=vbuaa + // [33] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 -- _deref_pbuz1=vbuaa ldy #0 sta (conio_cursor_text),y - // [37] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 -- pbuz1=_inc_pbuz1 + // [34] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 -- pbuz1=_inc_pbuz1 inc.z conio_cursor_text bne !+ inc.z conio_cursor_text+1 !: - // [38] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT -- _deref_pbuz1=vbuc1 + // [35] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT -- _deref_pbuz1=vbuc1 lda #CONIO_TEXTCOLOR_DEFAULT ldy #0 sta (conio_cursor_color),y - // [39] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 -- pbuz1=_inc_pbuz1 + // [36] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 -- pbuz1=_inc_pbuz1 inc.z conio_cursor_color bne !+ inc.z conio_cursor_color+1 !: - // [40] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 -- vbuxx=_inc_vbuxx + // [37] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 -- vbuxx=_inc_vbuxx inx - // [41] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return -- vbuxx_neq_vbuc1_then_la1 + // [38] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return -- vbuxx_neq_vbuc1_then_la1 cpx #CONIO_WIDTH bne __breturn_from___b2 jmp __b3 // cputc::@3 __b3: - // [42] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 -- vbuz1=_inc_vbuz1 + // [39] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [43] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 + // [40] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 lda #CONIO_HEIGHT cmp.z conio_cursor_y bne __breturn_from___b3 - // [44] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] + // [41] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] __b4_from___b3: jmp __b4 // cputc::@4 __b4: - // [45] call gotoxy - // [50] phi from cputc::@4 to gotoxy [phi:cputc::@4->gotoxy] + // [42] call gotoxy + // [47] phi from cputc::@4 to gotoxy [phi:cputc::@4->gotoxy] gotoxy_from___b4: - // [50] phi (byte) gotoxy::y#4 = (byte) 0 [phi:cputc::@4->gotoxy#0] -- vbuaa=vbuc1 + // [47] phi (byte) gotoxy::y#4 = (byte) 0 [phi:cputc::@4->gotoxy#0] -- vbuaa=vbuc1 lda #0 jsr gotoxy - // [46] phi from cputc::@1 cputc::@3 cputc::@4 to cputc::@return [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return] + // [43] phi from cputc::@1 cputc::@3 cputc::@4 to cputc::@return [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return] __breturn_from___b1: __breturn_from___b3: __breturn_from___b4: - // [46] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#0] -- register_copy - // [46] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#1] -- register_copy - // [46] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#2] -- register_copy - // [46] phi (byte) conio_cursor_x#18 = (byte) 0 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#3] -- vbuxx=vbuc1 + // [43] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#0] -- register_copy + // [43] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#1] -- register_copy + // [43] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#2] -- register_copy + // [43] phi (byte) conio_cursor_x#18 = (byte) 0 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#3] -- vbuxx=vbuc1 ldx #0 jmp __breturn - // [46] phi from cputc::@2 to cputc::@return [phi:cputc::@2->cputc::@return] + // [43] phi from cputc::@2 to cputc::@return [phi:cputc::@2->cputc::@return] __breturn_from___b2: - // [46] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#26 [phi:cputc::@2->cputc::@return#0] -- register_copy - // [46] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#26 [phi:cputc::@2->cputc::@return#1] -- register_copy - // [46] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#20 [phi:cputc::@2->cputc::@return#2] -- register_copy - // [46] phi (byte) conio_cursor_x#18 = (byte) conio_cursor_x#4 [phi:cputc::@2->cputc::@return#3] -- register_copy + // [43] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#26 [phi:cputc::@2->cputc::@return#0] -- register_copy + // [43] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#26 [phi:cputc::@2->cputc::@return#1] -- register_copy + // [43] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#20 [phi:cputc::@2->cputc::@return#2] -- register_copy + // [43] phi (byte) conio_cursor_x#18 = (byte) conio_cursor_x#4 [phi:cputc::@2->cputc::@return#3] -- register_copy jmp __breturn // cputc::@return __breturn: - // [47] return + // [44] return rts // cputc::@1 __b1: - // [48] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 -- vbuaa=vbuz1_plus_1 + // [45] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 -- vbuaa=vbuz1_plus_1 lda.z conio_cursor_y clc adc #1 - // [49] call gotoxy - // [50] phi from cputc::@1 to gotoxy [phi:cputc::@1->gotoxy] + // [46] call gotoxy + // [47] phi from cputc::@1 to gotoxy [phi:cputc::@1->gotoxy] gotoxy_from___b1: - // [50] phi (byte) gotoxy::y#4 = (byte) gotoxy::y#1 [phi:cputc::@1->gotoxy#0] -- register_copy + // [47] phi (byte) gotoxy::y#4 = (byte) gotoxy::y#1 [phi:cputc::@1->gotoxy#0] -- register_copy jsr gotoxy jmp __breturn_from___b1 } @@ -2863,37 +2780,37 @@ cputc: { gotoxy: { .label __8 = 7 .label offset = 7 - .label __9 = $d + .label __9 = $b .label __10 = 7 jmp __b1 // gotoxy::@1 __b1: - // [51] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 -- vbuaa_lt_vbuc1_then_la1 + // [48] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 -- vbuaa_lt_vbuc1_then_la1 cmp #CONIO_HEIGHT bcc __b3_from___b1 - // [53] phi from gotoxy::@1 to gotoxy::@2 [phi:gotoxy::@1->gotoxy::@2] + // [50] phi from gotoxy::@1 to gotoxy::@2 [phi:gotoxy::@1->gotoxy::@2] __b2_from___b1: - // [53] phi (byte) gotoxy::y#5 = (byte) 0 [phi:gotoxy::@1->gotoxy::@2#0] -- vbuaa=vbuc1 + // [50] phi (byte) gotoxy::y#5 = (byte) 0 [phi:gotoxy::@1->gotoxy::@2#0] -- vbuaa=vbuc1 lda #0 jmp __b2 - // [52] phi from gotoxy::@1 to gotoxy::@3 [phi:gotoxy::@1->gotoxy::@3] + // [49] phi from gotoxy::@1 to gotoxy::@3 [phi:gotoxy::@1->gotoxy::@3] __b3_from___b1: jmp __b3 // gotoxy::@3 __b3: - // [53] phi from gotoxy::@3 to gotoxy::@2 [phi:gotoxy::@3->gotoxy::@2] + // [50] phi from gotoxy::@3 to gotoxy::@2 [phi:gotoxy::@3->gotoxy::@2] __b2_from___b3: - // [53] phi (byte) gotoxy::y#5 = (byte) gotoxy::y#4 [phi:gotoxy::@3->gotoxy::@2#0] -- register_copy + // [50] phi (byte) gotoxy::y#5 = (byte) gotoxy::y#4 [phi:gotoxy::@3->gotoxy::@2#0] -- register_copy jmp __b2 // gotoxy::@2 __b2: - // [54] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 -- vbuz1=vbuaa + // [51] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 -- vbuz1=vbuaa sta.z conio_cursor_y - // [55] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 -- vwuz1=_word_vbuaa + // [52] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 -- vwuz1=_word_vbuaa sta.z __8 lda #0 sta.z __8+1 - // [56] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 -- vwuz1=vwuz2_rol_2 + // [53] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 -- vwuz1=vwuz2_rol_2 lda.z __8 asl sta.z __9 @@ -2902,7 +2819,7 @@ gotoxy: { sta.z __9+1 asl.z __9 rol.z __9+1 - // [57] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 -- vwuz1=vwuz2_plus_vwuz1 + // [54] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 -- vwuz1=vwuz2_plus_vwuz1 lda.z __10 clc adc.z __9 @@ -2910,14 +2827,14 @@ gotoxy: { lda.z __10+1 adc.z __9+1 sta.z __10+1 - // [58] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 -- vwuz1=vwuz1_rol_3 + // [55] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 -- vwuz1=vwuz1_rol_3 asl.z offset rol.z offset+1 asl.z offset rol.z offset+1 asl.z offset rol.z offset+1 - // [59] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + // [56] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z offset clc adc #CONIO_SCREEN_TEXT sta.z conio_cursor_text+1 - // [60] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz1 + // [57] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz1 clc lda.z conio_cursor_color adc #> (byte) 4 -- vbuaa=vbuxx_ror_4 + .label tod_TENTHS = $a + .label tod_SEC = $d + // [59] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr - // [63] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuaa=vbuc1_plus_vbuaa + // [60] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' - // [64] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuaa + // [61] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuaa sta tod_buffer - // [65] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 + // [62] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f - // [66] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuaa=vbuc1_plus_vbuaa + // [63] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' - // [67] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuaa + // [64] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuaa sta tod_buffer+1 - // [68] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuaa=vbuyy_ror_4 + // [65] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuaa=vbuyy_ror_4 tya lsr lsr lsr lsr - // [69] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuaa=vbuc1_plus_vbuaa + // [66] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' - // [70] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuaa + // [67] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuaa sta tod_buffer+3 - // [71] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 + // [68] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 tya and #$f - // [72] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuaa=vbuc1_plus_vbuaa + // [69] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' - // [73] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuaa + // [70] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuaa sta tod_buffer+4 - // [74] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 + // [71] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 lda.z tod_SEC lsr lsr lsr lsr - // [75] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuaa=vbuc1_plus_vbuaa + // [72] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' - // [76] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuaa + // [73] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuaa sta tod_buffer+6 - // [77] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + // [74] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and.z tod_SEC - // [78] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuaa=vbuc1_plus_vbuaa + // [75] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' - // [79] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuaa + // [76] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuaa sta tod_buffer+7 - // [80] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 + // [77] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 lda.z tod_TENTHS lsr lsr lsr lsr - // [81] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuaa=vbuc1_plus_vbuaa + // [78] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' - // [82] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuaa + // [79] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuaa sta tod_buffer+9 - // [83] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + // [80] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and.z tod_TENTHS - // [84] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuaa=vbuc1_plus_vbuaa + // [81] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' - // [85] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuaa + // [82] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuaa sta tod_buffer+$a jmp __breturn // tod_str::@return __breturn: - // [86] return + // [83] return rts } // tod_read // Read time of day tod_read: { - .label return_HOURS = $a + .label return_HOURS = $d .label return_MIN = 9 - // [87] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // [84] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 // Reading sequence is important. TOD latches on reading hours until 10ths is read. lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS sta.z return_HOURS - // [88] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 + // [85] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - // [89] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 + // [86] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 ldx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - // [90] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 + // [87] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 ldy CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS jmp __breturn // tod_read::@return __breturn: - // [91] return + // [88] return rts } // tod_init @@ -3055,32 +2972,32 @@ tod_read: { tod_init: { .label tod_TENTHS = 9 .label tod_SEC = $a - // [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 + // [89] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 // Set 50hz (this assumes PAL!) (bit7=1) lda #$80 ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL - // [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 + // [90] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 // Writing TOD clock (bit7=0) lda #$7f and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy + // [91] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy // Reset TOD clock // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. sty CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS - // [95] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx + // [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx stx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - // [96] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + // [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 lda.z tod_SEC sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - // [97] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + // [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 lda.z tod_TENTHS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS jmp __breturn // tod_init::@return __breturn: - // [98] return + // [95] return rts } // File Data @@ -3121,7 +3038,8 @@ Removing instruction __b1: Removing instruction __bend_from___b1: Removing instruction __b1_from_main: Removing instruction __b1_from___b4: -Removing instruction gotoxy_from___b2: +Removing instruction gotoxy_from___b1: +Removing instruction __b2_from___b1: Removing instruction __b4_from___b3: Removing instruction cputs_from___b4: Removing instruction __b4_from___b3: @@ -3202,12 +3120,12 @@ FINAL SYMBOL TABLE (byte) TIME_OF_DAY::TENTHS (struct TIME_OF_DAY) TOD_ZERO loadstore mem[4] = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } (byte*) conio_cursor_color -(byte*) conio_cursor_color#1 conio_cursor_color zp[2]:7 1000083.6666666666 +(byte*) conio_cursor_color#1 conio_cursor_color zp[2]:7 666722.4444444445 (byte*) conio_cursor_color#17 conio_cursor_color zp[2]:7 1366668.3333333335 (byte*) conio_cursor_color#19 conio_cursor_color zp[2]:7 233444.88888888888 (byte*) conio_cursor_color#26 conio_cursor_color zp[2]:7 600000.6000000001 (byte*) conio_cursor_text -(byte*) conio_cursor_text#1 conio_cursor_text zp[2]:5 923154.1538461538 +(byte*) conio_cursor_text#1 conio_cursor_text zp[2]:5 631631.7894736842 (byte*) conio_cursor_text#17 conio_cursor_text zp[2]:5 1366668.3333333335 (byte*) conio_cursor_text#19 conio_cursor_text zp[2]:5 300143.4285714285 (byte*) conio_cursor_text#26 conio_cursor_text zp[2]:5 428571.85714285716 @@ -3216,7 +3134,7 @@ FINAL SYMBOL TABLE (byte) conio_cursor_x#20 reg byte x 110000.20000000001 (byte) conio_cursor_x#4 reg byte x 1500001.5 (byte) conio_cursor_y -(byte) conio_cursor_y#1 conio_cursor_y zp[1]:4 666722.4444444445 +(byte) conio_cursor_y#1 conio_cursor_y zp[1]:4 500041.8333333333 (byte) conio_cursor_y#18 conio_cursor_y zp[1]:4 1366668.3333333335 (byte) conio_cursor_y#20 conio_cursor_y zp[1]:4 258417.08333333337 (byte) conio_cursor_y#27 conio_cursor_y zp[1]:4 1500001.5 @@ -3241,7 +3159,7 @@ FINAL SYMBOL TABLE (void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) (word~) gotoxy::$10 zp[2]:7 2.0000002E7 (word~) gotoxy::$8 zp[2]:7 1.50000015E7 -(word~) gotoxy::$9 zp[2]:13 2.0000002E7 +(word~) gotoxy::$9 zp[2]:11 2.0000002E7 (label) gotoxy::@1 (label) gotoxy::@2 (label) gotoxy::@3 @@ -3258,14 +3176,6 @@ FINAL SYMBOL TABLE (label) main::@2 (label) main::@3 (label) main::@4 -(byte) main::tod_HOURS -(byte) main::tod_HOURS#0 tod_HOURS zp[1]:10 40.4 -(byte) main::tod_MIN -(byte) main::tod_MIN#0 tod_MIN zp[1]:9 40.4 -(byte) main::tod_SEC -(byte) main::tod_SEC#0 reg byte x 40.4 -(byte) main::tod_TENTHS -(byte) main::tod_TENTHS#0 reg byte y 40.4 (const byte*) tod_buffer[] = (byte*) "00:00:00:00" (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) (label) tod_init::@return @@ -3284,8 +3194,8 @@ FINAL SYMBOL TABLE (byte) tod_read::mins (struct TIME_OF_DAY) tod_read::return (byte) tod_read::return_HOURS -(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:10 122.44444444444446 -(byte) tod_read::return_HOURS#2 return_HOURS zp[1]:10 50.5 +(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:13 122.44444444444446 +(byte) tod_read::return_HOURS#2 reg byte a 50.5 (byte) tod_read::return_MIN (byte) tod_read::return_MIN#0 reg byte a 157.42857142857142 (byte) tod_read::return_MIN#2 return_MIN zp[1]:9 50.5 @@ -3326,9 +3236,9 @@ FINAL SYMBOL TABLE (byte) tod_str::tod_MIN (byte) tod_str::tod_MIN#0 reg byte y 191.1818181818182 (byte) tod_str::tod_SEC -(byte) tod_str::tod_SEC#0 tod_SEC zp[1]:12 116.83333333333334 +(byte) tod_str::tod_SEC#0 tod_SEC zp[1]:13 116.83333333333334 (byte) tod_str::tod_TENTHS -(byte) tod_str::tod_TENTHS#0 tod_TENTHS zp[1]:11 84.12 +(byte) tod_str::tod_TENTHS#0 tod_TENTHS zp[1]:10 84.12 zp[2]:2 [ cputs::s#2 cputs::s#0 ] reg byte x [ conio_cursor_x#20 conio_cursor_x#18 conio_cursor_x#4 ] @@ -3340,17 +3250,14 @@ reg byte x [ tod_init::tod_MIN#0 ] reg byte y [ tod_init::tod_HOURS#0 ] reg byte y [ tod_read::return_TENTHS#2 ] reg byte x [ tod_read::return_SEC#2 ] -zp[1]:9 [ tod_read::return_MIN#2 main::tod_MIN#0 tod_init::tod_TENTHS#0 ] -zp[1]:10 [ tod_read::return_HOURS#2 main::tod_HOURS#0 tod_read::return_HOURS#0 tod_init::tod_SEC#0 ] -reg byte y [ main::tod_TENTHS#0 ] -reg byte x [ main::tod_SEC#0 ] -zp[1]:11 [ tod_str::tod_TENTHS#0 ] -zp[1]:12 [ tod_str::tod_SEC#0 ] +zp[1]:9 [ tod_read::return_MIN#2 tod_init::tod_TENTHS#0 ] +reg byte a [ tod_read::return_HOURS#2 ] +zp[1]:10 [ tod_str::tod_TENTHS#0 tod_init::tod_SEC#0 ] reg byte y [ tod_str::tod_MIN#0 ] reg byte x [ tod_str::tod_HOURS#0 ] reg byte a [ cputs::c#1 ] reg byte a [ cputc::c#0 ] -zp[2]:13 [ gotoxy::$9 ] +zp[2]:11 [ gotoxy::$9 ] reg byte a [ tod_str::$0 ] reg byte a [ tod_str::$1 ] reg byte a [ tod_str::$2 ] @@ -3367,6 +3274,7 @@ reg byte a [ tod_str::$12 ] reg byte a [ tod_str::$13 ] reg byte a [ tod_str::$14 ] reg byte a [ tod_str::$15 ] +zp[1]:13 [ tod_read::return_HOURS#0 tod_str::tod_SEC#0 ] reg byte a [ tod_read::return_MIN#0 ] reg byte x [ tod_read::return_SEC#0 ] reg byte y [ tod_read::return_TENTHS#0 ] @@ -3374,7 +3282,7 @@ mem[4] [ TOD_ZERO ] FINAL ASSEMBLER -Score: 5311 +Score: 5331 // File Comments // Time of Day / RTOS test using the 6526 CIA on C64 @@ -3418,8 +3326,6 @@ Score: 5311 // @end // main main: { - .label tod_MIN = 9 - .label tod_HOURS = $a // tod_init(TOD_ZERO) // [4] (byte) tod_init::tod_TENTHS#0 ← *((byte*)&(struct TIME_OF_DAY) TOD_ZERO) -- vbuz1=_deref_pbuc1 lda TOD_ZERO @@ -3436,43 +3342,40 @@ main: { // [9] phi from main main::@4 to main::@1 [phi:main/main::@4->main::@1] // main::@1 __b1: - // tod_read() - // [10] call tod_read - jsr tod_read - // [11] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 - // [12] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 - // [13] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 -- vbuz1=vbuaa - sta.z tod_read.return_MIN - // [14] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 - // main::@2 - // tod = tod_read() - // [15] (byte) main::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 - // [16] (byte) main::tod_SEC#0 ← (byte) tod_read::return_SEC#2 - // [17] (byte) main::tod_MIN#0 ← (byte) tod_read::return_MIN#2 - // [18] (byte) main::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 // gotoxy(0,0) - // [19] call gotoxy - // [50] phi from main::@2 to gotoxy [phi:main::@2->gotoxy] - // [50] phi (byte) gotoxy::y#4 = (byte) 0 [phi:main::@2->gotoxy#0] -- vbuaa=vbuc1 + // [10] call gotoxy + // [47] phi from main::@1 to gotoxy [phi:main::@1->gotoxy] + // [47] phi (byte) gotoxy::y#4 = (byte) 0 [phi:main::@1->gotoxy#0] -- vbuaa=vbuc1 lda #0 jsr gotoxy + // [11] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + // main::@2 + // tod_read() + // [12] call tod_read + jsr tod_read + // [13] (byte) tod_read::return_TENTHS#2 ← (byte) tod_read::return_TENTHS#0 + // [14] (byte) tod_read::return_SEC#2 ← (byte) tod_read::return_SEC#0 + // [15] (byte) tod_read::return_MIN#2 ← (byte) tod_read::return_MIN#0 -- vbuz1=vbuaa + sta.z tod_read.return_MIN + // [16] (byte) tod_read::return_HOURS#2 ← (byte) tod_read::return_HOURS#0 -- vbuaa=vbuz1 + lda.z tod_read.return_HOURS // main::@3 - // tod_str(tod) - // [20] (byte) tod_str::tod_TENTHS#0 ← (byte) main::tod_TENTHS#0 -- vbuz1=vbuyy + // tod_str(tod_read()) + // [17] (byte) tod_str::tod_TENTHS#0 ← (byte) tod_read::return_TENTHS#2 -- vbuz1=vbuyy sty.z tod_str.tod_TENTHS - // [21] (byte) tod_str::tod_SEC#0 ← (byte) main::tod_SEC#0 -- vbuz1=vbuxx + // [18] (byte) tod_str::tod_SEC#0 ← (byte) tod_read::return_SEC#2 -- vbuz1=vbuxx stx.z tod_str.tod_SEC - // [22] (byte) tod_str::tod_MIN#0 ← (byte) main::tod_MIN#0 -- vbuyy=vbuz1 - ldy.z tod_MIN - // [23] (byte) tod_str::tod_HOURS#0 ← (byte) main::tod_HOURS#0 -- vbuxx=vbuz1 - ldx.z tod_HOURS - // [24] call tod_str + // [19] (byte) tod_str::tod_MIN#0 ← (byte) tod_read::return_MIN#2 -- vbuyy=vbuz1 + ldy.z tod_read.return_MIN + // [20] (byte) tod_str::tod_HOURS#0 ← (byte) tod_read::return_HOURS#2 -- vbuxx=vbuaa + tax + // [21] call tod_str jsr tod_str - // [25] phi from main::@3 to main::@4 [phi:main::@3->main::@4] + // [22] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 - // cputs(tod_str(tod)) - // [26] call cputs - // [27] phi from main::@4 to cputs [phi:main::@4->cputs] + // cputs(tod_str(tod_read())) + // [23] call cputs + // [24] phi from main::@4 to cputs [phi:main::@4->cputs] jsr cputs jmp __b1 } @@ -3481,13 +3384,13 @@ main: { // cputs(byte* zp(2) s) cputs: { .label s = 2 - // [28] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] - // [28] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#1 [phi:cputs->cputs::@1#0] -- register_copy - // [28] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#1 [phi:cputs->cputs::@1#1] -- register_copy - // [28] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#1 [phi:cputs->cputs::@1#2] -- register_copy - // [28] phi (byte) conio_cursor_x#20 = (byte) 0 [phi:cputs->cputs::@1#3] -- vbuxx=vbuc1 + // [25] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] + // [25] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#1 [phi:cputs->cputs::@1#0] -- register_copy + // [25] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#1 [phi:cputs->cputs::@1#1] -- register_copy + // [25] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#1 [phi:cputs->cputs::@1#2] -- register_copy + // [25] phi (byte) conio_cursor_x#20 = (byte) 0 [phi:cputs->cputs::@1#3] -- vbuxx=vbuc1 ldx #0 - // [28] phi (to_nomodify byte*) cputs::s#2 = (const byte*) tod_buffer [phi:cputs->cputs::@1#4] -- pbuz1=pbuc1 + // [25] phi (to_nomodify byte*) cputs::s#2 = (const byte*) tod_buffer [phi:cputs->cputs::@1#4] -- pbuz1=pbuc1 lda #tod_buffer @@ -3495,34 +3398,34 @@ cputs: { // cputs::@1 __b1: // c=*s++ - // [29] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) -- vbuaa=_deref_pbuz1 + // [26] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (s),y // while(c=*s++) - // [30] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 -- pbuz1=_inc_pbuz1 + // [27] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#2 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: - // [31] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -- vbuc1_neq_vbuaa_then_la1 + // [28] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2 -- vbuc1_neq_vbuaa_then_la1 cmp #0 bne __b2 // cputs::@return // } - // [32] return + // [29] return rts // cputs::@2 __b2: // cputc(c) - // [33] (byte) cputc::c#0 ← (byte) cputs::c#1 - // [34] call cputc + // [30] (byte) cputc::c#0 ← (byte) cputs::c#1 + // [31] call cputc jsr cputc - // [28] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] - // [28] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#17 [phi:cputs::@2->cputs::@1#0] -- register_copy - // [28] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#17 [phi:cputs::@2->cputs::@1#1] -- register_copy - // [28] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#18 [phi:cputs::@2->cputs::@1#2] -- register_copy - // [28] phi (byte) conio_cursor_x#20 = (byte) conio_cursor_x#18 [phi:cputs::@2->cputs::@1#3] -- register_copy - // [28] phi (to_nomodify byte*) cputs::s#2 = (to_nomodify byte*) cputs::s#0 [phi:cputs::@2->cputs::@1#4] -- register_copy + // [25] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] + // [25] phi (byte*) conio_cursor_color#19 = (byte*) conio_cursor_color#17 [phi:cputs::@2->cputs::@1#0] -- register_copy + // [25] phi (byte*) conio_cursor_text#19 = (byte*) conio_cursor_text#17 [phi:cputs::@2->cputs::@1#1] -- register_copy + // [25] phi (byte) conio_cursor_y#20 = (byte) conio_cursor_y#18 [phi:cputs::@2->cputs::@1#2] -- register_copy + // [25] phi (byte) conio_cursor_x#20 = (byte) conio_cursor_x#18 [phi:cputs::@2->cputs::@1#3] -- register_copy + // [25] phi (to_nomodify byte*) cputs::s#2 = (to_nomodify byte*) cputs::s#0 [phi:cputs::@2->cputs::@1#4] -- register_copy jmp __b1 } // cputc @@ -3531,81 +3434,81 @@ cputs: { // cputc(byte register(A) c) cputc: { // if(c=='\n') - // [35] if((byte) cputc::c#0==(byte) ' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 + // [32] if((byte) cputc::c#0==(byte) ' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' beq __b1 // cputc::@2 // *conio_cursor_text++ = c - // [36] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 -- _deref_pbuz1=vbuaa + // [33] *((byte*) conio_cursor_text#19) ← (byte) cputc::c#0 -- _deref_pbuz1=vbuaa ldy #0 sta (conio_cursor_text),y // *conio_cursor_text++ = c; - // [37] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 -- pbuz1=_inc_pbuz1 + // [34] (byte*) conio_cursor_text#26 ← ++ (byte*) conio_cursor_text#19 -- pbuz1=_inc_pbuz1 inc.z conio_cursor_text bne !+ inc.z conio_cursor_text+1 !: // *conio_cursor_color++ = conio_textcolor - // [38] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT -- _deref_pbuz1=vbuc1 + // [35] *((byte*) conio_cursor_color#19) ← (const nomodify byte) CONIO_TEXTCOLOR_DEFAULT -- _deref_pbuz1=vbuc1 lda #CONIO_TEXTCOLOR_DEFAULT ldy #0 sta (conio_cursor_color),y // *conio_cursor_color++ = conio_textcolor; - // [39] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 -- pbuz1=_inc_pbuz1 + // [36] (byte*) conio_cursor_color#26 ← ++ (byte*) conio_cursor_color#19 -- pbuz1=_inc_pbuz1 inc.z conio_cursor_color bne !+ inc.z conio_cursor_color+1 !: // if(++conio_cursor_x==CONIO_WIDTH) - // [40] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 -- vbuxx=_inc_vbuxx + // [37] (byte) conio_cursor_x#4 ← ++ (byte) conio_cursor_x#20 -- vbuxx=_inc_vbuxx inx - // [41] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return -- vbuxx_neq_vbuc1_then_la1 + // [38] if((byte) conio_cursor_x#4!=(const nomodify byte) CONIO_WIDTH) goto cputc::@return -- vbuxx_neq_vbuc1_then_la1 cpx #CONIO_WIDTH bne __breturn // cputc::@3 // if(++conio_cursor_y==CONIO_HEIGHT) - // [42] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 -- vbuz1=_inc_vbuz1 + // [39] (byte) conio_cursor_y#27 ← ++ (byte) conio_cursor_y#20 -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [43] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 + // [40] if((byte) conio_cursor_y#27!=(const nomodify byte) CONIO_HEIGHT) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 lda #CONIO_HEIGHT cmp.z conio_cursor_y bne __b2 - // [44] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] + // [41] phi from cputc::@3 to cputc::@4 [phi:cputc::@3->cputc::@4] // cputc::@4 // gotoxy(0,0) - // [45] call gotoxy - // [50] phi from cputc::@4 to gotoxy [phi:cputc::@4->gotoxy] - // [50] phi (byte) gotoxy::y#4 = (byte) 0 [phi:cputc::@4->gotoxy#0] -- vbuaa=vbuc1 + // [42] call gotoxy + // [47] phi from cputc::@4 to gotoxy [phi:cputc::@4->gotoxy] + // [47] phi (byte) gotoxy::y#4 = (byte) 0 [phi:cputc::@4->gotoxy#0] -- vbuaa=vbuc1 lda #0 jsr gotoxy - // [46] phi from cputc::@1 cputc::@3 cputc::@4 to cputc::@return [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return] + // [43] phi from cputc::@1 cputc::@3 cputc::@4 to cputc::@return [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return] __b2: - // [46] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#0] -- register_copy - // [46] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#1] -- register_copy - // [46] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#2] -- register_copy - // [46] phi (byte) conio_cursor_x#18 = (byte) 0 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#3] -- vbuxx=vbuc1 + // [43] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#0] -- register_copy + // [43] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#1] -- register_copy + // [43] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#1 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#2] -- register_copy + // [43] phi (byte) conio_cursor_x#18 = (byte) 0 [phi:cputc::@1/cputc::@3/cputc::@4->cputc::@return#3] -- vbuxx=vbuc1 ldx #0 rts - // [46] phi from cputc::@2 to cputc::@return [phi:cputc::@2->cputc::@return] - // [46] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#26 [phi:cputc::@2->cputc::@return#0] -- register_copy - // [46] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#26 [phi:cputc::@2->cputc::@return#1] -- register_copy - // [46] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#20 [phi:cputc::@2->cputc::@return#2] -- register_copy - // [46] phi (byte) conio_cursor_x#18 = (byte) conio_cursor_x#4 [phi:cputc::@2->cputc::@return#3] -- register_copy + // [43] phi from cputc::@2 to cputc::@return [phi:cputc::@2->cputc::@return] + // [43] phi (byte*) conio_cursor_color#17 = (byte*) conio_cursor_color#26 [phi:cputc::@2->cputc::@return#0] -- register_copy + // [43] phi (byte*) conio_cursor_text#17 = (byte*) conio_cursor_text#26 [phi:cputc::@2->cputc::@return#1] -- register_copy + // [43] phi (byte) conio_cursor_y#18 = (byte) conio_cursor_y#20 [phi:cputc::@2->cputc::@return#2] -- register_copy + // [43] phi (byte) conio_cursor_x#18 = (byte) conio_cursor_x#4 [phi:cputc::@2->cputc::@return#3] -- register_copy // cputc::@return __breturn: // } - // [47] return + // [44] return rts // cputc::@1 __b1: // gotoxy(0, conio_cursor_y+1) - // [48] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 -- vbuaa=vbuz1_plus_1 + // [45] (byte) gotoxy::y#1 ← (byte) conio_cursor_y#20 + (byte) 1 -- vbuaa=vbuz1_plus_1 lda.z conio_cursor_y clc adc #1 - // [49] call gotoxy - // [50] phi from cputc::@1 to gotoxy [phi:cputc::@1->gotoxy] - // [50] phi (byte) gotoxy::y#4 = (byte) gotoxy::y#1 [phi:cputc::@1->gotoxy#0] -- register_copy + // [46] call gotoxy + // [47] phi from cputc::@1 to gotoxy [phi:cputc::@1->gotoxy] + // [47] phi (byte) gotoxy::y#4 = (byte) gotoxy::y#1 [phi:cputc::@1->gotoxy#0] -- register_copy jsr gotoxy jmp __b2 } @@ -3615,31 +3518,31 @@ cputc: { gotoxy: { .label __8 = 7 .label offset = 7 - .label __9 = $d + .label __9 = $b .label __10 = 7 // gotoxy::@1 // if(y>=CONIO_HEIGHT) - // [51] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 -- vbuaa_lt_vbuc1_then_la1 + // [48] if((byte) gotoxy::y#4<(const nomodify byte) CONIO_HEIGHT) goto gotoxy::@3 -- vbuaa_lt_vbuc1_then_la1 cmp #CONIO_HEIGHT bcc __b2 - // [53] phi from gotoxy::@1 to gotoxy::@2 [phi:gotoxy::@1->gotoxy::@2] - // [53] phi (byte) gotoxy::y#5 = (byte) 0 [phi:gotoxy::@1->gotoxy::@2#0] -- vbuaa=vbuc1 + // [50] phi from gotoxy::@1 to gotoxy::@2 [phi:gotoxy::@1->gotoxy::@2] + // [50] phi (byte) gotoxy::y#5 = (byte) 0 [phi:gotoxy::@1->gotoxy::@2#0] -- vbuaa=vbuc1 lda #0 - // [52] phi from gotoxy::@1 to gotoxy::@3 [phi:gotoxy::@1->gotoxy::@3] + // [49] phi from gotoxy::@1 to gotoxy::@3 [phi:gotoxy::@1->gotoxy::@3] // gotoxy::@3 - // [53] phi from gotoxy::@3 to gotoxy::@2 [phi:gotoxy::@3->gotoxy::@2] - // [53] phi (byte) gotoxy::y#5 = (byte) gotoxy::y#4 [phi:gotoxy::@3->gotoxy::@2#0] -- register_copy + // [50] phi from gotoxy::@3 to gotoxy::@2 [phi:gotoxy::@3->gotoxy::@2] + // [50] phi (byte) gotoxy::y#5 = (byte) gotoxy::y#4 [phi:gotoxy::@3->gotoxy::@2#0] -- register_copy // gotoxy::@2 __b2: // conio_cursor_y = y - // [54] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 -- vbuz1=vbuaa + // [51] (byte) conio_cursor_y#1 ← (byte) gotoxy::y#5 -- vbuz1=vbuaa sta.z conio_cursor_y // (unsigned int)y*CONIO_WIDTH - // [55] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 -- vwuz1=_word_vbuaa + // [52] (word~) gotoxy::$8 ← (word)(byte) gotoxy::y#5 -- vwuz1=_word_vbuaa sta.z __8 lda #0 sta.z __8+1 - // [56] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 -- vwuz1=vwuz2_rol_2 + // [53] (word~) gotoxy::$9 ← (word~) gotoxy::$8 << (byte) 2 -- vwuz1=vwuz2_rol_2 lda.z __8 asl sta.z __9 @@ -3648,7 +3551,7 @@ gotoxy: { sta.z __9+1 asl.z __9 rol.z __9+1 - // [57] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 -- vwuz1=vwuz2_plus_vwuz1 + // [54] (word~) gotoxy::$10 ← (word~) gotoxy::$9 + (word~) gotoxy::$8 -- vwuz1=vwuz2_plus_vwuz1 lda.z __10 clc adc.z __9 @@ -3657,7 +3560,7 @@ gotoxy: { adc.z __9+1 sta.z __10+1 // offset = (unsigned int)y*CONIO_WIDTH + x - // [58] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 -- vwuz1=vwuz1_rol_3 + // [55] (word) gotoxy::offset#0 ← (word~) gotoxy::$10 << (byte) 3 -- vwuz1=vwuz1_rol_3 asl.z offset rol.z offset+1 asl.z offset @@ -3665,7 +3568,7 @@ gotoxy: { asl.z offset rol.z offset+1 // CONIO_SCREEN_TEXT + offset - // [59] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz2 + // [56] (byte*) conio_cursor_text#1 ← (const nomodify byte*) CONIO_SCREEN_TEXT + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z offset clc adc #CONIO_SCREEN_TEXT sta.z conio_cursor_text+1 // CONIO_SCREEN_COLORS + offset - // [60] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz1 + // [57] (byte*) conio_cursor_color#1 ← (const nomodify byte*) CONIO_SCREEN_COLORS + (word) gotoxy::offset#0 -- pbuz1=pbuc1_plus_vwuz1 clc lda.z conio_cursor_color adc #>4 - // [62] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuaa=vbuxx_ror_4 + // [59] (byte~) tod_str::$0 ← (byte) tod_str::tod_HOURS#0 >> (byte) 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr // '0'+(tod.HOURS>>4) - // [63] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuaa=vbuc1_plus_vbuaa + // [60] (byte~) tod_str::$1 ← (byte) '0' + (byte~) tod_str::$0 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' // tod_buffer[0] = '0'+(tod.HOURS>>4) - // [64] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuaa + // [61] *((const byte*) tod_buffer) ← (byte~) tod_str::$1 -- _deref_pbuc1=vbuaa sta tod_buffer // tod.HOURS&0x0f - // [65] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 + // [62] (byte~) tod_str::$2 ← (byte) tod_str::tod_HOURS#0 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f // '0'+(tod.HOURS&0x0f) - // [66] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuaa=vbuc1_plus_vbuaa + // [63] (byte~) tod_str::$3 ← (byte) '0' + (byte~) tod_str::$2 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' // tod_buffer[1] = '0'+(tod.HOURS&0x0f) - // [67] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuaa + // [64] *((const byte*) tod_buffer+(byte) 1) ← (byte~) tod_str::$3 -- _deref_pbuc1=vbuaa sta tod_buffer+1 // tod.MIN>>4 - // [68] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuaa=vbuyy_ror_4 + // [65] (byte~) tod_str::$4 ← (byte) tod_str::tod_MIN#0 >> (byte) 4 -- vbuaa=vbuyy_ror_4 tya lsr lsr lsr lsr // '0'+(tod.MIN>>4) - // [69] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuaa=vbuc1_plus_vbuaa + // [66] (byte~) tod_str::$5 ← (byte) '0' + (byte~) tod_str::$4 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' // tod_buffer[3] = '0'+(tod.MIN>>4) - // [70] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuaa + // [67] *((const byte*) tod_buffer+(byte) 3) ← (byte~) tod_str::$5 -- _deref_pbuc1=vbuaa sta tod_buffer+3 // tod.MIN&0x0f - // [71] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 + // [68] (byte~) tod_str::$6 ← (byte) tod_str::tod_MIN#0 & (byte) $f -- vbuaa=vbuyy_band_vbuc1 tya and #$f // '0'+(tod.MIN&0x0f) - // [72] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuaa=vbuc1_plus_vbuaa + // [69] (byte~) tod_str::$7 ← (byte) '0' + (byte~) tod_str::$6 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' // tod_buffer[4] = '0'+(tod.MIN&0x0f) - // [73] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuaa + // [70] *((const byte*) tod_buffer+(byte) 4) ← (byte~) tod_str::$7 -- _deref_pbuc1=vbuaa sta tod_buffer+4 // tod.SEC>>4 - // [74] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 + // [71] (byte~) tod_str::$8 ← (byte) tod_str::tod_SEC#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 lda.z tod_SEC lsr lsr lsr lsr // '0'+(tod.SEC>>4) - // [75] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuaa=vbuc1_plus_vbuaa + // [72] (byte~) tod_str::$9 ← (byte) '0' + (byte~) tod_str::$8 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' // tod_buffer[6] = '0'+(tod.SEC>>4) - // [76] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuaa + // [73] *((const byte*) tod_buffer+(byte) 6) ← (byte~) tod_str::$9 -- _deref_pbuc1=vbuaa sta tod_buffer+6 // tod.SEC&0x0f - // [77] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + // [74] (byte~) tod_str::$10 ← (byte) tod_str::tod_SEC#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and.z tod_SEC // '0'+(tod.SEC&0x0f) - // [78] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuaa=vbuc1_plus_vbuaa + // [75] (byte~) tod_str::$11 ← (byte) '0' + (byte~) tod_str::$10 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' // tod_buffer[7] = '0'+(tod.SEC&0x0f) - // [79] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuaa + // [76] *((const byte*) tod_buffer+(byte) 7) ← (byte~) tod_str::$11 -- _deref_pbuc1=vbuaa sta tod_buffer+7 // tod.TENTHS>>4 - // [80] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 + // [77] (byte~) tod_str::$12 ← (byte) tod_str::tod_TENTHS#0 >> (byte) 4 -- vbuaa=vbuz1_ror_4 lda.z tod_TENTHS lsr lsr lsr lsr // '0'+(tod.TENTHS>>4) - // [81] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuaa=vbuc1_plus_vbuaa + // [78] (byte~) tod_str::$13 ← (byte) '0' + (byte~) tod_str::$12 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' // tod_buffer[9] = '0'+(tod.TENTHS>>4) - // [82] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuaa + // [79] *((const byte*) tod_buffer+(byte) 9) ← (byte~) tod_str::$13 -- _deref_pbuc1=vbuaa sta tod_buffer+9 // tod.TENTHS&0x0f - // [83] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + // [80] (byte~) tod_str::$14 ← (byte) tod_str::tod_TENTHS#0 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and.z tod_TENTHS // '0'+(tod.TENTHS&0x0f) - // [84] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuaa=vbuc1_plus_vbuaa + // [81] (byte~) tod_str::$15 ← (byte) '0' + (byte~) tod_str::$14 -- vbuaa=vbuc1_plus_vbuaa clc adc #'0' // tod_buffer[10] = '0'+(tod.TENTHS&0x0f) - // [85] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuaa + // [82] *((const byte*) tod_buffer+(byte) $a) ← (byte~) tod_str::$15 -- _deref_pbuc1=vbuaa sta tod_buffer+$a // tod_str::@return // } - // [86] return + // [83] return rts } // tod_read // Read time of day tod_read: { - .label return_HOURS = $a + .label return_HOURS = $d .label return_MIN = 9 // hours = CIA1->TOD_HOURS - // [87] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // [84] (byte) tod_read::return_HOURS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 // Reading sequence is important. TOD latches on reading hours until 10ths is read. lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS sta.z return_HOURS // mins = CIA1->TOD_MIN - // [88] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 + // [85] (byte) tod_read::return_MIN#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN // secs = CIA1->TOD_SEC - // [89] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 + // [86] (byte) tod_read::return_SEC#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 ldx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC // tenths = CIA1->TOD_10THS - // [90] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 + // [87] (byte) tod_read::return_TENTHS#0 ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 ldy CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS // tod_read::@return // } - // [91] return + // [88] return rts } // tod_init @@ -3830,36 +3733,36 @@ tod_init: { .label tod_TENTHS = 9 .label tod_SEC = $a // CIA1->TIMER_A_CONTROL |= 0x80 - // [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 + // [89] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | (byte) $80 -- _deref_pbuc1=_deref_pbuc2_bor_vbuc3 // Set 50hz (this assumes PAL!) (bit7=1) lda #$80 ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // CIA1->TIMER_B_CONTROL &= 0x7f - // [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 + // [90] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) ← *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc2_band_vbuc3 // Writing TOD clock (bit7=0) lda #$7f and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // CIA1->TOD_HOURS = tod.HOURS - // [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy + // [91] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) ← (byte) tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy // Reset TOD clock // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. sty CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS // CIA1->TOD_MIN = tod.MIN - // [95] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx + // [92] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) ← (byte) tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx stx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN // CIA1->TOD_SEC = tod.SEC - // [96] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + // [93] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) ← (byte) tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 lda.z tod_SEC sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC // CIA1->TOD_10THS = tod.TENTHS - // [97] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + // [94] *((byte*)(const nomodify struct MOS6526_CIA*) CIA1+(const byte) OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) ← (byte) tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 lda.z tod_TENTHS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS // tod_init::@return // } - // [98] return + // [95] return rts } // File Data diff --git a/src/test/ref/tod-1.sym b/src/test/ref/tod-1.sym index cab5e63ed..38bf65724 100644 --- a/src/test/ref/tod-1.sym +++ b/src/test/ref/tod-1.sym @@ -36,12 +36,12 @@ (byte) TIME_OF_DAY::TENTHS (struct TIME_OF_DAY) TOD_ZERO loadstore mem[4] = { TENTHS: (byte) 0, SEC: (byte) 0, MIN: (byte) 0, HOURS: (byte) 0 } (byte*) conio_cursor_color -(byte*) conio_cursor_color#1 conio_cursor_color zp[2]:7 1000083.6666666666 +(byte*) conio_cursor_color#1 conio_cursor_color zp[2]:7 666722.4444444445 (byte*) conio_cursor_color#17 conio_cursor_color zp[2]:7 1366668.3333333335 (byte*) conio_cursor_color#19 conio_cursor_color zp[2]:7 233444.88888888888 (byte*) conio_cursor_color#26 conio_cursor_color zp[2]:7 600000.6000000001 (byte*) conio_cursor_text -(byte*) conio_cursor_text#1 conio_cursor_text zp[2]:5 923154.1538461538 +(byte*) conio_cursor_text#1 conio_cursor_text zp[2]:5 631631.7894736842 (byte*) conio_cursor_text#17 conio_cursor_text zp[2]:5 1366668.3333333335 (byte*) conio_cursor_text#19 conio_cursor_text zp[2]:5 300143.4285714285 (byte*) conio_cursor_text#26 conio_cursor_text zp[2]:5 428571.85714285716 @@ -50,7 +50,7 @@ (byte) conio_cursor_x#20 reg byte x 110000.20000000001 (byte) conio_cursor_x#4 reg byte x 1500001.5 (byte) conio_cursor_y -(byte) conio_cursor_y#1 conio_cursor_y zp[1]:4 666722.4444444445 +(byte) conio_cursor_y#1 conio_cursor_y zp[1]:4 500041.8333333333 (byte) conio_cursor_y#18 conio_cursor_y zp[1]:4 1366668.3333333335 (byte) conio_cursor_y#20 conio_cursor_y zp[1]:4 258417.08333333337 (byte) conio_cursor_y#27 conio_cursor_y zp[1]:4 1500001.5 @@ -75,7 +75,7 @@ (void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y) (word~) gotoxy::$10 zp[2]:7 2.0000002E7 (word~) gotoxy::$8 zp[2]:7 1.50000015E7 -(word~) gotoxy::$9 zp[2]:13 2.0000002E7 +(word~) gotoxy::$9 zp[2]:11 2.0000002E7 (label) gotoxy::@1 (label) gotoxy::@2 (label) gotoxy::@3 @@ -92,14 +92,6 @@ (label) main::@2 (label) main::@3 (label) main::@4 -(byte) main::tod_HOURS -(byte) main::tod_HOURS#0 tod_HOURS zp[1]:10 40.4 -(byte) main::tod_MIN -(byte) main::tod_MIN#0 tod_MIN zp[1]:9 40.4 -(byte) main::tod_SEC -(byte) main::tod_SEC#0 reg byte x 40.4 -(byte) main::tod_TENTHS -(byte) main::tod_TENTHS#0 reg byte y 40.4 (const byte*) tod_buffer[] = (byte*) "00:00:00:00" (void()) tod_init((byte) tod_init::tod_TENTHS , (byte) tod_init::tod_SEC , (byte) tod_init::tod_MIN , (byte) tod_init::tod_HOURS) (label) tod_init::@return @@ -118,8 +110,8 @@ (byte) tod_read::mins (struct TIME_OF_DAY) tod_read::return (byte) tod_read::return_HOURS -(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:10 122.44444444444446 -(byte) tod_read::return_HOURS#2 return_HOURS zp[1]:10 50.5 +(byte) tod_read::return_HOURS#0 return_HOURS zp[1]:13 122.44444444444446 +(byte) tod_read::return_HOURS#2 reg byte a 50.5 (byte) tod_read::return_MIN (byte) tod_read::return_MIN#0 reg byte a 157.42857142857142 (byte) tod_read::return_MIN#2 return_MIN zp[1]:9 50.5 @@ -160,9 +152,9 @@ (byte) tod_str::tod_MIN (byte) tod_str::tod_MIN#0 reg byte y 191.1818181818182 (byte) tod_str::tod_SEC -(byte) tod_str::tod_SEC#0 tod_SEC zp[1]:12 116.83333333333334 +(byte) tod_str::tod_SEC#0 tod_SEC zp[1]:13 116.83333333333334 (byte) tod_str::tod_TENTHS -(byte) tod_str::tod_TENTHS#0 tod_TENTHS zp[1]:11 84.12 +(byte) tod_str::tod_TENTHS#0 tod_TENTHS zp[1]:10 84.12 zp[2]:2 [ cputs::s#2 cputs::s#0 ] reg byte x [ conio_cursor_x#20 conio_cursor_x#18 conio_cursor_x#4 ] @@ -174,17 +166,14 @@ reg byte x [ tod_init::tod_MIN#0 ] reg byte y [ tod_init::tod_HOURS#0 ] reg byte y [ tod_read::return_TENTHS#2 ] reg byte x [ tod_read::return_SEC#2 ] -zp[1]:9 [ tod_read::return_MIN#2 main::tod_MIN#0 tod_init::tod_TENTHS#0 ] -zp[1]:10 [ tod_read::return_HOURS#2 main::tod_HOURS#0 tod_read::return_HOURS#0 tod_init::tod_SEC#0 ] -reg byte y [ main::tod_TENTHS#0 ] -reg byte x [ main::tod_SEC#0 ] -zp[1]:11 [ tod_str::tod_TENTHS#0 ] -zp[1]:12 [ tod_str::tod_SEC#0 ] +zp[1]:9 [ tod_read::return_MIN#2 tod_init::tod_TENTHS#0 ] +reg byte a [ tod_read::return_HOURS#2 ] +zp[1]:10 [ tod_str::tod_TENTHS#0 tod_init::tod_SEC#0 ] reg byte y [ tod_str::tod_MIN#0 ] reg byte x [ tod_str::tod_HOURS#0 ] reg byte a [ cputs::c#1 ] reg byte a [ cputc::c#0 ] -zp[2]:13 [ gotoxy::$9 ] +zp[2]:11 [ gotoxy::$9 ] reg byte a [ tod_str::$0 ] reg byte a [ tod_str::$1 ] reg byte a [ tod_str::$2 ] @@ -201,6 +190,7 @@ reg byte a [ tod_str::$12 ] reg byte a [ tod_str::$13 ] reg byte a [ tod_str::$14 ] reg byte a [ tod_str::$15 ] +zp[1]:13 [ tod_read::return_HOURS#0 tod_str::tod_SEC#0 ] reg byte a [ tod_read::return_MIN#0 ] reg byte x [ tod_read::return_SEC#0 ] reg byte y [ tod_read::return_TENTHS#0 ]