mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-01-13 18:30:21 +00:00
Added more fragments and optimized others.
This commit is contained in:
parent
e8084a4d27
commit
9ae695ba60
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 15196e00e6
|
||||
//KICKC FRAGMENT CACHE 15e646b5c5
|
||||
//FRAGMENT vbuzz=vbuc1
|
||||
ldz #{c1}
|
||||
//FRAGMENT vbuzz_lt_vbuc1_then_la1
|
||||
|
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 15196e00e6
|
||||
//KICKC FRAGMENT CACHE 15e646b5c5
|
||||
//FRAGMENT vduz1=vduc1
|
||||
lda #<{c1}
|
||||
sta {z1}
|
||||
|
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 15196e00e6
|
||||
//KICKC FRAGMENT CACHE 15e646b5c5
|
||||
//FRAGMENT vbuz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
|
1108
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
1108
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
//KICKC FRAGMENT CACHE 15196e00e6
|
||||
//KICKC FRAGMENT CACHE 15e646b5c5
|
||||
//FRAGMENT vbuz1=_deref_pbuc1
|
||||
lda {c1}
|
||||
sta {z1}
|
||||
|
@ -0,0 +1 @@
|
||||
ldz {m1}
|
@ -0,0 +1,3 @@
|
||||
stz $ff
|
||||
sec
|
||||
sbc $ff
|
@ -0,0 +1,3 @@
|
||||
stz $ff
|
||||
clc
|
||||
adc $ff
|
1
src/main/fragment/mos6502-common/vbsxx=_sbyte_vwum1.asm
Normal file
1
src/main/fragment/mos6502-common/vbsxx=_sbyte_vwum1.asm
Normal file
@ -0,0 +1 @@
|
||||
ldx {m1}
|
1
src/main/fragment/mos6502-common/vbsyy=_sbyte_vwum1.asm
Normal file
1
src/main/fragment/mos6502-common/vbsyy=_sbyte_vwum1.asm
Normal file
@ -0,0 +1 @@
|
||||
ldy {m1}
|
@ -36,7 +36,7 @@ public class AsmFragmentClobber implements Comparable<AsmFragmentClobber> {
|
||||
}
|
||||
|
||||
public boolean isClobberZ() {
|
||||
return clobberY;
|
||||
return clobberZ;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -67,6 +67,11 @@ public class TestPrograms {
|
||||
compileAndCompare("cpu-45gs02.c");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCpu65CE02EightQueens() throws IOException, URISyntaxException {
|
||||
compileAndCompare("cpu-65ce02-eightqueens.c");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCpu65CE02b() throws IOException, URISyntaxException {
|
||||
compileAndCompare("cpu-65ce02-b.c");
|
||||
|
108
src/test/kc/cpu-65ce02-eightqueens.c
Normal file
108
src/test/kc/cpu-65ce02-eightqueens.c
Normal file
@ -0,0 +1,108 @@
|
||||
// N Queens Problem in C Using Backtracking
|
||||
//
|
||||
// N Queens Problem is a famous puzzle in which n-queens are to be placed on a nxn chess board such that no two queens are in the same row, column or diagonal.
|
||||
//
|
||||
// This is an iterative solution.
|
||||
|
||||
#pragma cpu(csg65ce02)
|
||||
|
||||
#include<stdio.h>
|
||||
|
||||
#define QUEENS 8
|
||||
#define PRINT_SOLUTIONS
|
||||
|
||||
// The board. board[i] holds the column position of the queen on row i.
|
||||
char board[20];
|
||||
|
||||
// The number of found solutions
|
||||
unsigned long count = 0;
|
||||
|
||||
void main() {
|
||||
clrscr();
|
||||
printf(" - n queens problem using backtracking -");
|
||||
printf("\nnumber of queens:%u",QUEENS);
|
||||
queens();
|
||||
printf("\n\nsolutions: %lu\n",count);
|
||||
}
|
||||
|
||||
// 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
|
||||
void queens() {
|
||||
// The current row where the queen is moving
|
||||
char row = 1;
|
||||
while(1) {
|
||||
// Move the queen forward on the current row
|
||||
board[row]++;
|
||||
if(board[row]==QUEENS+1) {
|
||||
// We moved past the end of the row - reset position and go down to the lower row
|
||||
board[row] = 0;
|
||||
if(row==1)
|
||||
// We are done - exit the search loop!
|
||||
break;
|
||||
else
|
||||
// Move down one row
|
||||
row--;
|
||||
} else {
|
||||
// check if the current position on row 1-row is legal
|
||||
if(legal(row, board[row])) {
|
||||
// position is legal - move up to the next row
|
||||
if(row==QUEENS) {
|
||||
// We have a complete legal board - print it - and move forward on top row!
|
||||
++count;
|
||||
#ifdef PRINT_SOLUTIONS
|
||||
print();
|
||||
#endif
|
||||
} else {
|
||||
// Move up to the next row
|
||||
row++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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
|
||||
char legal(char row,char column) {
|
||||
for(char i=1;i<=row-1;++i) {
|
||||
if(board[i]==column)
|
||||
// The same column is a conflict.
|
||||
return 0;
|
||||
else
|
||||
if(diff(board[i],column)==diff(i,row))
|
||||
// The same diagonal is a conflict.
|
||||
return 0;
|
||||
}
|
||||
// Placement is legal
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Find the absolute difference between two unsigned chars
|
||||
inline char diff(char a, char b) {
|
||||
if(a<b)
|
||||
return b-a;
|
||||
else
|
||||
return a-b;
|
||||
}
|
||||
|
||||
// Print the board with a legal placement.
|
||||
void print() {
|
||||
gotoxy(0,5);
|
||||
printf("\n#%lu:\n ",count);
|
||||
for(char i=1;i<=QUEENS;++i)
|
||||
printf("%x",i);
|
||||
for(char i=1;i<=QUEENS;++i) {
|
||||
printf("\n%x",i);
|
||||
for(char j=1;j<=QUEENS;++j) {
|
||||
if(board[i]==j)
|
||||
printf("Q");
|
||||
else
|
||||
printf("-");
|
||||
}
|
||||
}
|
||||
}
|
@ -5108,11 +5108,9 @@ Statement [9] (word) main::y_pos_coarse_old#0 ← (word) y_pos_coarse#16 [ scree
|
||||
Statement [11] (word~) main::$5 ← (word) main::y_pos_coarse_old#0 - (word) y_pos_coarse#16 [ screen_buffer#12 main::x_pos_coarse_old#0 x_pos_coarse#17 y_pos_coarse#16 main::$5 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 main::x_pos_coarse_old#0 x_pos_coarse#17 y_pos_coarse#16 main::$5 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:83 [ y_pos_fine#12 ]
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:75 [ x_pos_fine#12 ]
|
||||
Statement [12] (signed byte) main::y_movement#0 ← (signed byte)(word~) main::$5 [ screen_buffer#12 main::x_pos_coarse_old#0 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 main::x_pos_coarse_old#0 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Statement [17] (word~) main::$9 ← (word) main::x_pos_coarse_old#0 - (word) x_pos_coarse#17 [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::movement#4 main::$9 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::movement#4 main::$9 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:33 [ main::y_movement#0 ]
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::movement#4 ]
|
||||
Statement [18] (signed byte) main::x_movement#0 ← (signed byte)(word~) main::$9 [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::movement#4 main::x_movement#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::movement#4 main::x_movement#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Statement [19] (signed byte) main::movement#3 ← (signed byte) main::movement#4 - (signed byte) main::x_movement#0 [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::movement#3 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::movement#3 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:36 [ main::x_movement#0 ]
|
||||
Statement [24] (byte*) main::screen_active#0 ← (byte*~) main::$13 + (signed byte) main::movement#3 [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::screen_active#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::screen_active#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
@ -5202,9 +5200,7 @@ Statement [5] *((byte*)(const nomodify struct MOS6569_VICII*) VICII+(const byte)
|
||||
Statement [8] (word) main::x_pos_coarse_old#0 ← (word) x_pos_coarse#17 [ screen_buffer#12 main::x_pos_coarse_old#0 y_pos_coarse#16 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 main::x_pos_coarse_old#0 y_pos_coarse#16 x_sin_idx#14 y_sin_idx#13 ] { { x_sin_idx#12 = x_sin_idx#14 } { y_sin_idx#12 = y_sin_idx#13 } } ) always clobbers reg byte a
|
||||
Statement [9] (word) main::y_pos_coarse_old#0 ← (word) y_pos_coarse#16 [ screen_buffer#12 main::x_pos_coarse_old#0 main::y_pos_coarse_old#0 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 main::x_pos_coarse_old#0 main::y_pos_coarse_old#0 x_sin_idx#14 y_sin_idx#13 ] { { x_sin_idx#12 = x_sin_idx#14 } { y_sin_idx#12 = y_sin_idx#13 } } ) always clobbers reg byte a
|
||||
Statement [11] (word~) main::$5 ← (word) main::y_pos_coarse_old#0 - (word) y_pos_coarse#16 [ screen_buffer#12 main::x_pos_coarse_old#0 x_pos_coarse#17 y_pos_coarse#16 main::$5 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 main::x_pos_coarse_old#0 x_pos_coarse#17 y_pos_coarse#16 main::$5 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Statement [12] (signed byte) main::y_movement#0 ← (signed byte)(word~) main::$5 [ screen_buffer#12 main::x_pos_coarse_old#0 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 main::x_pos_coarse_old#0 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Statement [17] (word~) main::$9 ← (word) main::x_pos_coarse_old#0 - (word) x_pos_coarse#17 [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::movement#4 main::$9 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::movement#4 main::$9 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Statement [18] (signed byte) main::x_movement#0 ← (signed byte)(word~) main::$9 [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::movement#4 main::x_movement#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::movement#4 main::x_movement#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Statement [19] (signed byte) main::movement#3 ← (signed byte) main::movement#4 - (signed byte) main::x_movement#0 [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::movement#3 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::movement#3 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Statement [24] (byte*) main::screen_active#0 ← (byte*~) main::$13 + (signed byte) main::movement#3 [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::screen_active#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::screen_active#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { } ) always clobbers reg byte a
|
||||
Statement [28] (byte*) screencpy::dst#0 ← (byte*) main::screen_hidden#0 [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::screen_active#0 main::screen_hidden#0 screencpy::dst#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] ( [ screen_buffer#12 x_pos_coarse#17 y_pos_coarse#16 main::y_movement#0 main::x_movement#0 main::screen_active#0 main::screen_hidden#0 screencpy::dst#0 y_pos_fine#12 x_pos_fine#12 x_sin_idx#14 y_sin_idx#13 ] { { screencpy::dst#0 = main::screen_hidden#0 } { screencpy::src#0 = main::screen_active#0 } } ) always clobbers reg byte a
|
||||
|
1283
src/test/ref/cpu-65ce02-eightqueens.asm
Normal file
1283
src/test/ref/cpu-65ce02-eightqueens.asm
Normal file
File diff suppressed because it is too large
Load Diff
796
src/test/ref/cpu-65ce02-eightqueens.cfg
Normal file
796
src/test/ref/cpu-65ce02-eightqueens.cfg
Normal file
@ -0,0 +1,796 @@
|
||||
|
||||
(void()) __start()
|
||||
__start: scope:[__start] from
|
||||
[0] phi()
|
||||
to:__start::__init1
|
||||
__start::__init1: scope:[__start] from __start
|
||||
[1] (byte) conio_cursor_x ← (byte) 0
|
||||
[2] (byte) conio_cursor_y ← (byte) 0
|
||||
[3] (byte*) conio_line_text ← (const nomodify byte*) DEFAULT_SCREEN
|
||||
[4] (byte*) conio_line_color ← (const nomodify byte*) COLORRAM
|
||||
to:__start::@1
|
||||
__start::@1: scope:[__start] from __start::__init1
|
||||
[5] phi()
|
||||
[6] call main
|
||||
to:__start::@return
|
||||
__start::@return: scope:[__start] from __start::@1
|
||||
[7] return
|
||||
to:@return
|
||||
|
||||
(void()) main()
|
||||
main: scope:[main] from __start::@1
|
||||
[8] phi()
|
||||
[9] call clrscr
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
[10] phi()
|
||||
[11] call cputs
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[12] phi()
|
||||
[13] call cputs
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2
|
||||
[14] phi()
|
||||
[15] call printf_uint
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
[16] phi()
|
||||
[17] call queens
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@4
|
||||
[18] phi()
|
||||
[19] call cputs
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@5
|
||||
[20] (dword) printf_ulong::uvalue#0 ← (dword) count#10
|
||||
[21] call printf_ulong
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@6
|
||||
[22] phi()
|
||||
[23] call cputs
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@7
|
||||
[24] return
|
||||
to:@return
|
||||
|
||||
(void()) clrscr()
|
||||
clrscr: scope:[clrscr] from main
|
||||
[25] phi()
|
||||
to:clrscr::@1
|
||||
clrscr::@1: scope:[clrscr] from clrscr clrscr::@5
|
||||
[26] (byte*) clrscr::line_cols#5 ← phi( clrscr/(const nomodify byte*) COLORRAM clrscr::@5/(byte*) clrscr::line_cols#1 )
|
||||
[26] (byte*) clrscr::line_text#5 ← phi( clrscr/(const nomodify byte*) DEFAULT_SCREEN clrscr::@5/(byte*) clrscr::line_text#1 )
|
||||
[26] (byte) clrscr::l#2 ← phi( clrscr/(byte) 0 clrscr::@5/(byte) clrscr::l#1 )
|
||||
[27] if((byte) clrscr::l#2<(byte) $19) goto clrscr::@3
|
||||
to:clrscr::@2
|
||||
clrscr::@2: scope:[clrscr] from clrscr::@1
|
||||
[28] (byte) conio_cursor_x ← (byte) 0
|
||||
[29] (byte) conio_cursor_y ← (byte) 0
|
||||
[30] (byte*) conio_line_text ← (const nomodify byte*) DEFAULT_SCREEN
|
||||
[31] (byte*) conio_line_color ← (const nomodify byte*) COLORRAM
|
||||
to:clrscr::@return
|
||||
clrscr::@return: scope:[clrscr] from clrscr::@2
|
||||
[32] return
|
||||
to:@return
|
||||
clrscr::@3: scope:[clrscr] from clrscr::@1 clrscr::@4
|
||||
[33] (byte) clrscr::c#2 ← phi( clrscr::@1/(byte) 0 clrscr::@4/(byte) clrscr::c#1 )
|
||||
[34] if((byte) clrscr::c#2<(byte) $28) goto clrscr::@4
|
||||
to:clrscr::@5
|
||||
clrscr::@5: scope:[clrscr] from clrscr::@3
|
||||
[35] (byte*) clrscr::line_text#1 ← (byte*) clrscr::line_text#5 + (byte) $28
|
||||
[36] (byte*) clrscr::line_cols#1 ← (byte*) clrscr::line_cols#5 + (byte) $28
|
||||
[37] (byte) clrscr::l#1 ← ++ (byte) clrscr::l#2
|
||||
to:clrscr::@1
|
||||
clrscr::@4: scope:[clrscr] from clrscr::@3
|
||||
[38] *((byte*) clrscr::line_text#5 + (byte) clrscr::c#2) ← (byte) ' '
|
||||
[39] *((byte*) clrscr::line_cols#5 + (byte) clrscr::c#2) ← (const nomodify byte) LIGHT_BLUE
|
||||
[40] (byte) clrscr::c#1 ← ++ (byte) clrscr::c#2
|
||||
to:clrscr::@3
|
||||
|
||||
(void()) cputs((to_nomodify byte*) cputs::s)
|
||||
cputs: scope:[cputs] from main::@1 main::@2 main::@5 main::@7 print::@10 print::@11 print::@13 print::@4 print::@8 printf_number_buffer::@5
|
||||
[41] (to_nomodify byte*) cputs::s#12 ← phi( main::@1/(const byte*) main::s main::@2/(const byte*) main::s1 main::@5/(const byte*) main::s2 main::@7/(const byte*) s3 print::@10/(const byte*) print::s4 print::@11/(const byte*) print::s print::@13/(const byte*) print::s1 print::@4/(const byte*) s3 print::@8/(const byte*) print::s3 printf_number_buffer::@5/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS )
|
||||
to:cputs::@1
|
||||
cputs::@1: scope:[cputs] from cputs cputs::@2
|
||||
[42] (to_nomodify byte*) cputs::s#11 ← phi( cputs/(to_nomodify byte*) cputs::s#12 cputs::@2/(to_nomodify byte*) cputs::s#0 )
|
||||
[43] (byte) cputs::c#1 ← *((to_nomodify byte*) cputs::s#11)
|
||||
[44] (to_nomodify byte*) cputs::s#0 ← ++ (to_nomodify byte*) cputs::s#11
|
||||
[45] if((byte) 0!=(byte) cputs::c#1) goto cputs::@2
|
||||
to:cputs::@return
|
||||
cputs::@return: scope:[cputs] from cputs::@1
|
||||
[46] return
|
||||
to:@return
|
||||
cputs::@2: scope:[cputs] from cputs::@1
|
||||
[47] (byte) cputc::c#0 ← (byte) cputs::c#1
|
||||
[48] call cputc
|
||||
to:cputs::@1
|
||||
|
||||
(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
|
||||
[49] phi()
|
||||
to:printf_uint::@1
|
||||
printf_uint::@1: scope:[printf_uint] from printf_uint
|
||||
[50] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0
|
||||
[51] call utoa
|
||||
to:printf_uint::@2
|
||||
printf_uint::@2: scope:[printf_uint] from printf_uint::@1
|
||||
[52] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer)
|
||||
[53] call printf_number_buffer
|
||||
to:printf_uint::@return
|
||||
printf_uint::@return: scope:[printf_uint] from printf_uint::@2
|
||||
[54] return
|
||||
to:@return
|
||||
|
||||
(void()) queens()
|
||||
queens: scope:[queens] from main::@4
|
||||
[55] phi()
|
||||
to:queens::@1
|
||||
queens::@1: scope:[queens] from queens queens::@4 queens::@7 queens::@8 queens::@9
|
||||
[56] (dword) count#10 ← phi( queens/(dword) 0 queens::@4/(dword) count#2 queens::@7/(dword) count#10 queens::@8/(dword) count#10 queens::@9/(dword) count#10 )
|
||||
[56] (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
|
||||
[57] *((const byte*) board + (byte) queens::row#10) ← ++ *((const byte*) board + (byte) queens::row#10)
|
||||
[58] 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
|
||||
[59] (byte) legal::row#0 ← (byte) queens::row#10
|
||||
[60] (byte) legal::column#0 ← *((const byte*) board + (byte) queens::row#10)
|
||||
[61] call legal
|
||||
[62] (byte) legal::return#0 ← (byte) legal::return#4
|
||||
to:queens::@9
|
||||
queens::@9: scope:[queens] from queens::@5
|
||||
[63] (byte~) queens::$2 ← (byte) legal::return#0
|
||||
[64] if((byte) 0==(byte~) queens::$2) goto queens::@1
|
||||
to:queens::@6
|
||||
queens::@6: scope:[queens] from queens::@9
|
||||
[65] if((byte) queens::row#10==(byte) 8) goto queens::@4
|
||||
to:queens::@7
|
||||
queens::@7: scope:[queens] from queens::@6
|
||||
[66] (byte) queens::row#1 ← ++ (byte) queens::row#10
|
||||
to:queens::@1
|
||||
queens::@4: scope:[queens] from queens::@6
|
||||
[67] (dword) count#2 ← ++ (dword) count#10
|
||||
[68] call print
|
||||
to:queens::@1
|
||||
queens::@3: scope:[queens] from queens::@2
|
||||
[69] *((const byte*) board + (byte) queens::row#10) ← (byte) 0
|
||||
[70] if((byte) queens::row#10==(byte) 1) goto queens::@return
|
||||
to:queens::@8
|
||||
queens::@8: scope:[queens] from queens::@3
|
||||
[71] (byte) queens::row#2 ← -- (byte) queens::row#10
|
||||
to:queens::@1
|
||||
queens::@return: scope:[queens] from queens::@3
|
||||
[72] 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::@6 print::@12
|
||||
[73] (dword) printf_ulong::uvalue#2 ← phi( main::@6/(dword) printf_ulong::uvalue#0 print::@12/(dword) printf_ulong::uvalue#1 )
|
||||
to:printf_ulong::@1
|
||||
printf_ulong::@1: scope:[printf_ulong] from printf_ulong
|
||||
[74] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0
|
||||
[75] (dword) ultoa::value#1 ← (dword) printf_ulong::uvalue#2
|
||||
[76] call ultoa
|
||||
to:printf_ulong::@2
|
||||
printf_ulong::@2: scope:[printf_ulong] from printf_ulong::@1
|
||||
[77] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer)
|
||||
[78] call printf_number_buffer
|
||||
to:printf_ulong::@return
|
||||
printf_ulong::@return: scope:[printf_ulong] from printf_ulong::@2
|
||||
[79] return
|
||||
to:@return
|
||||
|
||||
(void()) cputc((byte) cputc::c)
|
||||
cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2
|
||||
[80] (byte) cputc::c#3 ← phi( cputs::@2/(byte) cputc::c#0 printf_number_buffer::@9/(byte) cputc::c#2 printf_padding::@2/(byte) cputc::c#1 )
|
||||
[81] if((byte) cputc::c#3==(byte) '
|
||||
') goto cputc::@1
|
||||
to:cputc::@2
|
||||
cputc::@2: scope:[cputc] from cputc
|
||||
[82] *((byte*) conio_line_text + (byte) conio_cursor_x) ← (byte) cputc::c#3
|
||||
[83] *((byte*) conio_line_color + (byte) conio_cursor_x) ← (const nomodify byte) LIGHT_BLUE
|
||||
[84] (byte) conio_cursor_x ← ++ (byte) conio_cursor_x
|
||||
[85] if((byte) conio_cursor_x!=(byte) $28) goto cputc::@return
|
||||
to:cputc::@3
|
||||
cputc::@3: scope:[cputc] from cputc::@2
|
||||
[86] phi()
|
||||
[87] call cputln
|
||||
to:cputc::@return
|
||||
cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3
|
||||
[88] return
|
||||
to:@return
|
||||
cputc::@1: scope:[cputc] from cputc
|
||||
[89] phi()
|
||||
[90] call cputln
|
||||
to:cputc::@return
|
||||
|
||||
(void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix)
|
||||
utoa: scope:[utoa] from printf_uint::@1
|
||||
[91] phi()
|
||||
to:utoa::@1
|
||||
utoa::@1: scope:[utoa] from utoa utoa::@4
|
||||
[92] (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 )
|
||||
[92] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 )
|
||||
[92] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 )
|
||||
[92] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 )
|
||||
[93] 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
|
||||
[94] (byte~) utoa::$11 ← (byte)(word) utoa::value#2
|
||||
[95] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11)
|
||||
[96] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11
|
||||
[97] *((byte*) utoa::buffer#3) ← (byte) 0
|
||||
to:utoa::@return
|
||||
utoa::@return: scope:[utoa] from utoa::@3
|
||||
[98] return
|
||||
to:@return
|
||||
utoa::@2: scope:[utoa] from utoa::@1
|
||||
[99] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1
|
||||
[100] (word) utoa::digit_value#0 ← *((const word*) RADIX_DECIMAL_VALUES + (byte~) utoa::$10)
|
||||
[101] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5
|
||||
to:utoa::@7
|
||||
utoa::@7: scope:[utoa] from utoa::@2
|
||||
[102] 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
|
||||
[103] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 )
|
||||
[103] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 )
|
||||
[103] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 )
|
||||
[104] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2
|
||||
to:utoa::@1
|
||||
utoa::@5: scope:[utoa] from utoa::@2 utoa::@7
|
||||
[105] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11
|
||||
[106] (word) utoa_append::value#0 ← (word) utoa::value#2
|
||||
[107] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0
|
||||
[108] call utoa_append
|
||||
[109] (word) utoa_append::return#0 ← (word) utoa_append::value#2
|
||||
to:utoa::@6
|
||||
utoa::@6: scope:[utoa] from utoa::@5
|
||||
[110] (word) utoa::value#0 ← (word) utoa_append::return#0
|
||||
[111] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11
|
||||
to:utoa::@4
|
||||
|
||||
(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
|
||||
[112] (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 )
|
||||
[112] (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 )
|
||||
[112] (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 )
|
||||
[112] (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 )
|
||||
[112] (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 )
|
||||
[113] 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
|
||||
[114] phi()
|
||||
[115] call strlen
|
||||
[116] (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
|
||||
[117] (word~) printf_number_buffer::$19 ← (word) strlen::return#2
|
||||
[118] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19
|
||||
[119] 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
|
||||
[120] (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
|
||||
[121] (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 )
|
||||
[122] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2
|
||||
[123] 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
|
||||
[124] 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
|
||||
[125] (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 )
|
||||
[126] 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
|
||||
[127] 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
|
||||
[128] 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
|
||||
[129] (byte) printf_padding::length#0 ← (byte)(signed byte) printf_number_buffer::padding#10
|
||||
[130] 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
|
||||
[131] 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
|
||||
[132] (byte) cputc::c#2 ← (byte) printf_number_buffer::buffer_sign#10
|
||||
[133] call cputc
|
||||
to:printf_number_buffer::@3
|
||||
printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@2 printf_number_buffer::@9
|
||||
[134] 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
|
||||
[135] 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
|
||||
[136] (byte) printf_padding::length#1 ← (byte)(signed byte) printf_number_buffer::padding#10
|
||||
[137] 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
|
||||
[138] 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
|
||||
[139] phi()
|
||||
[140] call strupr
|
||||
to:printf_number_buffer::@5
|
||||
printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffer::@11 printf_number_buffer::@4
|
||||
[141] phi()
|
||||
[142] call cputs
|
||||
to:printf_number_buffer::@15
|
||||
printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@5
|
||||
[143] 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
|
||||
[144] 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
|
||||
[145] 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
|
||||
[146] (byte) printf_padding::length#2 ← (byte)(signed byte) printf_number_buffer::padding#10
|
||||
[147] 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
|
||||
[148] return
|
||||
to:@return
|
||||
|
||||
(byte()) legal((byte) legal::row , (byte) legal::column)
|
||||
legal: scope:[legal] from queens::@5
|
||||
[149] phi()
|
||||
to:legal::@1
|
||||
legal::@1: scope:[legal] from legal legal::@3
|
||||
[150] (byte) legal::i#10 ← phi( legal/(byte) 1 legal::@3/(byte) legal::i#1 )
|
||||
[151] (byte~) legal::$0 ← (byte) legal::row#0 - (byte) 1
|
||||
[152] 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
|
||||
[153] (byte) legal::return#4 ← phi( legal::@1/(byte) 1 legal::@2/(byte) 0 legal::@5/(byte) 0 )
|
||||
[154] return
|
||||
to:@return
|
||||
legal::@2: scope:[legal] from legal::@1
|
||||
[155] 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
|
||||
[156] (byte) legal::diff1_a#0 ← *((const byte*) board + (byte) legal::i#10)
|
||||
to:legal::diff1
|
||||
legal::diff1: scope:[legal] from legal::@4
|
||||
[157] 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
|
||||
[158] (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
|
||||
[159] (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
|
||||
[160] 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
|
||||
[161] (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
|
||||
[162] (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
|
||||
[163] if((byte) legal::diff1_return#2!=(byte) legal::diff2_return#2) goto legal::@3
|
||||
to:legal::@return
|
||||
legal::@3: scope:[legal] from legal::@5
|
||||
[164] (byte) legal::i#1 ← ++ (byte) legal::i#10
|
||||
to:legal::@1
|
||||
legal::diff2_@1: scope:[legal] from legal::diff2
|
||||
[165] (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
|
||||
[166] (byte) legal::diff1_return#0 ← (byte) legal::column#0 - (byte) legal::diff1_a#0
|
||||
to:legal::diff1_@return
|
||||
|
||||
(void()) print()
|
||||
print: scope:[print] from queens::@4
|
||||
[167] phi()
|
||||
[168] call gotoxy
|
||||
to:print::@11
|
||||
print::@11: scope:[print] from print
|
||||
[169] phi()
|
||||
[170] call cputs
|
||||
to:print::@12
|
||||
print::@12: scope:[print] from print::@11
|
||||
[171] (dword) printf_ulong::uvalue#1 ← (dword) count#2
|
||||
[172] call printf_ulong
|
||||
to:print::@13
|
||||
print::@13: scope:[print] from print::@12
|
||||
[173] phi()
|
||||
[174] call cputs
|
||||
to:print::@1
|
||||
print::@1: scope:[print] from print::@13 print::@14
|
||||
[175] (byte) print::i#2 ← phi( print::@13/(byte) 1 print::@14/(byte) print::i#1 )
|
||||
[176] if((byte) print::i#2<(byte) 8+(byte) 1) goto print::@2
|
||||
to:print::@3
|
||||
print::@3: scope:[print] from print::@1 print::@7
|
||||
[177] (byte) print::i1#2 ← phi( print::@1/(byte) 1 print::@7/(byte) print::i1#1 )
|
||||
[178] if((byte) print::i1#2<(byte) 8+(byte) 1) goto print::@4
|
||||
to:print::@return
|
||||
print::@return: scope:[print] from print::@3
|
||||
[179] return
|
||||
to:@return
|
||||
print::@4: scope:[print] from print::@3
|
||||
[180] phi()
|
||||
[181] call cputs
|
||||
to:print::@15
|
||||
print::@15: scope:[print] from print::@4
|
||||
[182] (byte) printf_uchar::uvalue#1 ← (byte) print::i1#2
|
||||
[183] call printf_uchar
|
||||
to:print::@5
|
||||
print::@5: scope:[print] from print::@15 print::@9
|
||||
[184] (byte) print::j#2 ← phi( print::@9/(byte) print::j#1 print::@15/(byte) 1 )
|
||||
[185] if((byte) print::j#2<(byte) 8+(byte) 1) goto print::@6
|
||||
to:print::@7
|
||||
print::@7: scope:[print] from print::@5
|
||||
[186] (byte) print::i1#1 ← ++ (byte) print::i1#2
|
||||
to:print::@3
|
||||
print::@6: scope:[print] from print::@5
|
||||
[187] 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
|
||||
[188] phi()
|
||||
[189] call cputs
|
||||
to:print::@9
|
||||
print::@9: scope:[print] from print::@10 print::@8
|
||||
[190] (byte) print::j#1 ← ++ (byte) print::j#2
|
||||
to:print::@5
|
||||
print::@8: scope:[print] from print::@6
|
||||
[191] phi()
|
||||
[192] call cputs
|
||||
to:print::@9
|
||||
print::@2: scope:[print] from print::@1
|
||||
[193] (byte) printf_uchar::uvalue#0 ← (byte) print::i#2
|
||||
[194] call printf_uchar
|
||||
to:print::@14
|
||||
print::@14: scope:[print] from print::@2
|
||||
[195] (byte) print::i#1 ← ++ (byte) print::i#2
|
||||
to:print::@1
|
||||
|
||||
(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix)
|
||||
ultoa: scope:[ultoa] from printf_ulong::@1
|
||||
[196] phi()
|
||||
to:ultoa::@1
|
||||
ultoa::@1: scope:[ultoa] from ultoa ultoa::@4
|
||||
[197] (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 )
|
||||
[197] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 )
|
||||
[197] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 )
|
||||
[197] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 )
|
||||
[198] if((byte) ultoa::digit#2<(byte) $a-(byte) 1) goto ultoa::@2
|
||||
to:ultoa::@3
|
||||
ultoa::@3: scope:[ultoa] from ultoa::@1
|
||||
[199] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2
|
||||
[200] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11)
|
||||
[201] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11
|
||||
[202] *((byte*) ultoa::buffer#3) ← (byte) 0
|
||||
to:ultoa::@return
|
||||
ultoa::@return: scope:[ultoa] from ultoa::@3
|
||||
[203] return
|
||||
to:@return
|
||||
ultoa::@2: scope:[ultoa] from ultoa::@1
|
||||
[204] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2
|
||||
[205] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10)
|
||||
[206] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5
|
||||
to:ultoa::@7
|
||||
ultoa::@7: scope:[ultoa] from ultoa::@2
|
||||
[207] 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
|
||||
[208] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 )
|
||||
[208] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 )
|
||||
[208] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 )
|
||||
[209] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2
|
||||
to:ultoa::@1
|
||||
ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7
|
||||
[210] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11
|
||||
[211] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2
|
||||
[212] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0
|
||||
[213] call ultoa_append
|
||||
[214] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2
|
||||
to:ultoa::@6
|
||||
ultoa::@6: scope:[ultoa] from ultoa::@5
|
||||
[215] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0
|
||||
[216] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11
|
||||
to:ultoa::@4
|
||||
|
||||
(void()) cputln()
|
||||
cputln: scope:[cputln] from cputc::@1 cputc::@3
|
||||
[217] (byte*) conio_line_text ← (byte*) conio_line_text + (byte) $28
|
||||
[218] (byte*) conio_line_color ← (byte*) conio_line_color + (byte) $28
|
||||
[219] (byte) conio_cursor_x ← (byte) 0
|
||||
[220] (byte) conio_cursor_y ← ++ (byte) conio_cursor_y
|
||||
[221] call cscroll
|
||||
to:cputln::@return
|
||||
cputln::@return: scope:[cputln] from cputln
|
||||
[222] return
|
||||
to:@return
|
||||
|
||||
(word()) utoa_append((byte*) utoa_append::buffer , (word) utoa_append::value , (word) utoa_append::sub)
|
||||
utoa_append: scope:[utoa_append] from utoa::@5
|
||||
[223] phi()
|
||||
to:utoa_append::@1
|
||||
utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2
|
||||
[224] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 )
|
||||
[224] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 )
|
||||
[225] 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
|
||||
[226] *((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
|
||||
[227] return
|
||||
to:@return
|
||||
utoa_append::@2: scope:[utoa_append] from utoa_append::@1
|
||||
[228] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2
|
||||
[229] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0
|
||||
to:utoa_append::@1
|
||||
|
||||
(word()) strlen((byte*) strlen::str)
|
||||
strlen: scope:[strlen] from printf_number_buffer::@6
|
||||
[230] phi()
|
||||
to:strlen::@1
|
||||
strlen::@1: scope:[strlen] from strlen strlen::@2
|
||||
[231] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 )
|
||||
[231] (byte*) strlen::str#2 ← phi( strlen/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS strlen::@2/(byte*) strlen::str#0 )
|
||||
[232] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2
|
||||
to:strlen::@return
|
||||
strlen::@return: scope:[strlen] from strlen::@1
|
||||
[233] return
|
||||
to:@return
|
||||
strlen::@2: scope:[strlen] from strlen::@1
|
||||
[234] (word) strlen::len#1 ← ++ (word) strlen::len#2
|
||||
[235] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2
|
||||
to:strlen::@1
|
||||
|
||||
(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
|
||||
[236] (byte) printf_padding::pad#5 ← phi( printf_number_buffer::@10/(byte) '0' printf_number_buffer::@12/(byte) ' ' printf_number_buffer::@8/(byte) ' ' )
|
||||
[236] (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
|
||||
[237] (byte) printf_padding::i#2 ← phi( printf_padding/(byte) 0 printf_padding::@3/(byte) printf_padding::i#1 )
|
||||
[238] 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
|
||||
[239] return
|
||||
to:@return
|
||||
printf_padding::@2: scope:[printf_padding] from printf_padding::@1
|
||||
[240] (byte) cputc::c#1 ← (byte) printf_padding::pad#5
|
||||
[241] call cputc
|
||||
to:printf_padding::@3
|
||||
printf_padding::@3: scope:[printf_padding] from printf_padding::@2
|
||||
[242] (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
|
||||
[243] phi()
|
||||
to:strupr::@1
|
||||
strupr::@1: scope:[strupr] from strupr strupr::@3
|
||||
[244] (byte*) strupr::src#2 ← phi( strupr/(const byte*) strupr::str#0 strupr::@3/(byte*) strupr::src#1 )
|
||||
[245] if((byte) 0!=*((byte*) strupr::src#2)) goto strupr::@2
|
||||
to:strupr::@return
|
||||
strupr::@return: scope:[strupr] from strupr::@1
|
||||
[246] return
|
||||
to:@return
|
||||
strupr::@2: scope:[strupr] from strupr::@1
|
||||
[247] (byte) toupper::ch#0 ← *((byte*) strupr::src#2)
|
||||
[248] call toupper
|
||||
[249] (byte) toupper::return#3 ← (byte) toupper::return#2
|
||||
to:strupr::@3
|
||||
strupr::@3: scope:[strupr] from strupr::@2
|
||||
[250] (byte~) strupr::$0 ← (byte) toupper::return#3
|
||||
[251] *((byte*) strupr::src#2) ← (byte~) strupr::$0
|
||||
[252] (byte*) strupr::src#1 ← ++ (byte*) strupr::src#2
|
||||
to:strupr::@1
|
||||
|
||||
(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y)
|
||||
gotoxy: scope:[gotoxy] from print
|
||||
[253] phi()
|
||||
to:gotoxy::@1
|
||||
gotoxy::@1: scope:[gotoxy] from gotoxy
|
||||
[254] (byte) conio_cursor_x ← (const byte) gotoxy::x#2
|
||||
[255] (byte) conio_cursor_y ← (const byte) gotoxy::y#2
|
||||
[256] (byte*) conio_line_text ← (const nomodify byte*) DEFAULT_SCREEN+(const word) gotoxy::line_offset#0
|
||||
[257] (byte*) conio_line_color ← (const nomodify byte*) COLORRAM+(const word) gotoxy::line_offset#0
|
||||
to:gotoxy::@return
|
||||
gotoxy::@return: scope:[gotoxy] from gotoxy::@1
|
||||
[258] return
|
||||
to:@return
|
||||
|
||||
(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::@15 print::@2
|
||||
[259] (byte) printf_uchar::uvalue#2 ← phi( print::@15/(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
|
||||
[260] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0
|
||||
[261] (byte) uctoa::value#1 ← (byte) printf_uchar::uvalue#2
|
||||
[262] call uctoa
|
||||
to:printf_uchar::@2
|
||||
printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1
|
||||
[263] (byte) printf_number_buffer::buffer_sign#2 ← *((byte*)&(struct printf_buffer_number) printf_buffer)
|
||||
[264] call printf_number_buffer
|
||||
to:printf_uchar::@return
|
||||
printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2
|
||||
[265] return
|
||||
to:@return
|
||||
|
||||
(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub)
|
||||
ultoa_append: scope:[ultoa_append] from ultoa::@5
|
||||
[266] phi()
|
||||
to:ultoa_append::@1
|
||||
ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2
|
||||
[267] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 )
|
||||
[267] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 )
|
||||
[268] 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
|
||||
[269] *((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
|
||||
[270] return
|
||||
to:@return
|
||||
ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1
|
||||
[271] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2
|
||||
[272] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0
|
||||
to:ultoa_append::@1
|
||||
|
||||
(void()) cscroll()
|
||||
cscroll: scope:[cscroll] from cputln
|
||||
[273] if((byte) conio_cursor_y!=(byte) $19) goto cscroll::@return
|
||||
to:cscroll::@1
|
||||
cscroll::@1: scope:[cscroll] from cscroll
|
||||
[274] phi()
|
||||
[275] call memcpy
|
||||
to:cscroll::@2
|
||||
cscroll::@2: scope:[cscroll] from cscroll::@1
|
||||
[276] phi()
|
||||
[277] call memcpy
|
||||
to:cscroll::@3
|
||||
cscroll::@3: scope:[cscroll] from cscroll::@2
|
||||
[278] phi()
|
||||
[279] call memset
|
||||
to:cscroll::@4
|
||||
cscroll::@4: scope:[cscroll] from cscroll::@3
|
||||
[280] phi()
|
||||
[281] call memset
|
||||
to:cscroll::@5
|
||||
cscroll::@5: scope:[cscroll] from cscroll::@4
|
||||
[282] (byte*) conio_line_text ← (byte*) conio_line_text - (byte) $28
|
||||
[283] (byte*) conio_line_color ← (byte*) conio_line_color - (byte) $28
|
||||
[284] (byte) conio_cursor_y ← -- (byte) conio_cursor_y
|
||||
to:cscroll::@return
|
||||
cscroll::@return: scope:[cscroll] from cscroll cscroll::@5
|
||||
[285] return
|
||||
to:@return
|
||||
|
||||
(byte()) toupper((byte) toupper::ch)
|
||||
toupper: scope:[toupper] from strupr::@2
|
||||
[286] if((byte) toupper::ch#0<(byte) 'a') goto toupper::@return
|
||||
to:toupper::@2
|
||||
toupper::@2: scope:[toupper] from toupper
|
||||
[287] if((byte) toupper::ch#0<=(byte) 'z') goto toupper::@1
|
||||
to:toupper::@return
|
||||
toupper::@1: scope:[toupper] from toupper::@2
|
||||
[288] (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
|
||||
[289] (byte) toupper::return#2 ← phi( toupper::@1/(byte) toupper::return#0 toupper/(byte) toupper::ch#0 toupper::@2/(byte) toupper::ch#0 )
|
||||
[290] return
|
||||
to:@return
|
||||
|
||||
(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix)
|
||||
uctoa: scope:[uctoa] from printf_uchar::@1
|
||||
[291] phi()
|
||||
to:uctoa::@1
|
||||
uctoa::@1: scope:[uctoa] from uctoa uctoa::@4
|
||||
[292] (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 )
|
||||
[292] (byte) uctoa::started#2 ← phi( uctoa::@4/(byte) uctoa::started#4 uctoa/(byte) 0 )
|
||||
[292] (byte) uctoa::value#2 ← phi( uctoa::@4/(byte) uctoa::value#6 uctoa/(byte) uctoa::value#1 )
|
||||
[292] (byte) uctoa::digit#2 ← phi( uctoa::@4/(byte) uctoa::digit#1 uctoa/(byte) 0 )
|
||||
[293] if((byte) uctoa::digit#2<(byte) 2-(byte) 1) goto uctoa::@2
|
||||
to:uctoa::@3
|
||||
uctoa::@3: scope:[uctoa] from uctoa::@1
|
||||
[294] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2)
|
||||
[295] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11
|
||||
[296] *((byte*) uctoa::buffer#3) ← (byte) 0
|
||||
to:uctoa::@return
|
||||
uctoa::@return: scope:[uctoa] from uctoa::@3
|
||||
[297] return
|
||||
to:@return
|
||||
uctoa::@2: scope:[uctoa] from uctoa::@1
|
||||
[298] (byte) uctoa::digit_value#0 ← *((const byte*) RADIX_HEXADECIMAL_VALUES_CHAR + (byte) uctoa::digit#2)
|
||||
[299] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@5
|
||||
to:uctoa::@7
|
||||
uctoa::@7: scope:[uctoa] from uctoa::@2
|
||||
[300] 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
|
||||
[301] (byte*) uctoa::buffer#14 ← phi( uctoa::@7/(byte*) uctoa::buffer#11 uctoa::@6/(byte*) uctoa::buffer#4 )
|
||||
[301] (byte) uctoa::started#4 ← phi( uctoa::@7/(byte) uctoa::started#2 uctoa::@6/(byte) 1 )
|
||||
[301] (byte) uctoa::value#6 ← phi( uctoa::@7/(byte) uctoa::value#2 uctoa::@6/(byte) uctoa::value#0 )
|
||||
[302] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2
|
||||
to:uctoa::@1
|
||||
uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7
|
||||
[303] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11
|
||||
[304] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2
|
||||
[305] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0
|
||||
[306] call uctoa_append
|
||||
[307] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2
|
||||
to:uctoa::@6
|
||||
uctoa::@6: scope:[uctoa] from uctoa::@5
|
||||
[308] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0
|
||||
[309] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11
|
||||
to:uctoa::@4
|
||||
|
||||
(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num)
|
||||
memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2
|
||||
[310] (void*) memcpy::destination#2 ← phi( cscroll::@1/(void*)(const nomodify byte*) DEFAULT_SCREEN cscroll::@2/(void*)(const nomodify byte*) COLORRAM )
|
||||
[310] (void*) memcpy::source#2 ← phi( cscroll::@1/(void*)(const nomodify byte*) DEFAULT_SCREEN+(byte) $28 cscroll::@2/(void*)(const nomodify byte*) COLORRAM+(byte) $28 )
|
||||
[311] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word)(number) $19*(number) $28-(number) $28
|
||||
[312] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2
|
||||
[313] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2
|
||||
to:memcpy::@1
|
||||
memcpy::@1: scope:[memcpy] from memcpy memcpy::@2
|
||||
[314] (byte*) memcpy::dst#2 ← phi( memcpy/(byte*) memcpy::dst#4 memcpy::@2/(byte*) memcpy::dst#1 )
|
||||
[314] (byte*) memcpy::src#2 ← phi( memcpy/(byte*) memcpy::src#4 memcpy::@2/(byte*) memcpy::src#1 )
|
||||
[315] if((byte*) memcpy::src#2!=(byte*) memcpy::src_end#0) goto memcpy::@2
|
||||
to:memcpy::@return
|
||||
memcpy::@return: scope:[memcpy] from memcpy::@1
|
||||
[316] return
|
||||
to:@return
|
||||
memcpy::@2: scope:[memcpy] from memcpy::@1
|
||||
[317] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2)
|
||||
[318] (byte*) memcpy::dst#1 ← ++ (byte*) memcpy::dst#2
|
||||
[319] (byte*) memcpy::src#1 ← ++ (byte*) memcpy::src#2
|
||||
to:memcpy::@1
|
||||
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
memset: scope:[memset] from cscroll::@3 cscroll::@4
|
||||
[320] (byte) memset::c#4 ← phi( cscroll::@3/(byte) ' ' cscroll::@4/(const nomodify byte) LIGHT_BLUE )
|
||||
[320] (void*) memset::str#3 ← phi( cscroll::@3/(void*)(const nomodify byte*) DEFAULT_SCREEN+(word)(number) $19*(number) $28-(byte) $28 cscroll::@4/(void*)(const nomodify byte*) COLORRAM+(word)(number) $19*(number) $28-(byte) $28 )
|
||||
to:memset::@1
|
||||
memset::@1: scope:[memset] from memset
|
||||
[321] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (byte) $28
|
||||
[322] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3
|
||||
to:memset::@2
|
||||
memset::@2: scope:[memset] from memset::@1 memset::@3
|
||||
[323] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 )
|
||||
[324] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3
|
||||
to:memset::@return
|
||||
memset::@return: scope:[memset] from memset::@2
|
||||
[325] return
|
||||
to:@return
|
||||
memset::@3: scope:[memset] from memset::@2
|
||||
[326] *((byte*) memset::dst#2) ← (byte) memset::c#4
|
||||
[327] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
||||
to:memset::@2
|
||||
|
||||
(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub)
|
||||
uctoa_append: scope:[uctoa_append] from uctoa::@5
|
||||
[328] phi()
|
||||
to:uctoa_append::@1
|
||||
uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2
|
||||
[329] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 )
|
||||
[329] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 )
|
||||
[330] 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
|
||||
[331] *((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
|
||||
[332] return
|
||||
to:@return
|
||||
uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1
|
||||
[333] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2
|
||||
[334] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0
|
||||
to:uctoa_append::@1
|
14988
src/test/ref/cpu-65ce02-eightqueens.log
Normal file
14988
src/test/ref/cpu-65ce02-eightqueens.log
Normal file
File diff suppressed because one or more lines are too long
669
src/test/ref/cpu-65ce02-eightqueens.sym
Normal file
669
src/test/ref/cpu-65ce02-eightqueens.sym
Normal file
@ -0,0 +1,669 @@
|
||||
(const nomodify byte*) COLORRAM = (byte*) 55296
|
||||
(const nomodify byte*) DEFAULT_SCREEN = (byte*) 1024
|
||||
(const byte*) DIGITS[] = (byte*) "0123456789abcdef"z
|
||||
(const nomodify byte) LIGHT_BLUE = (byte) $e
|
||||
(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) MOS6569_VICII::BG_COLOR
|
||||
(byte) MOS6569_VICII::BG_COLOR1
|
||||
(byte) MOS6569_VICII::BG_COLOR2
|
||||
(byte) MOS6569_VICII::BG_COLOR3
|
||||
(byte) MOS6569_VICII::BORDER_COLOR
|
||||
(byte) MOS6569_VICII::CONTROL1
|
||||
(byte) MOS6569_VICII::CONTROL2
|
||||
(byte) MOS6569_VICII::IRQ_ENABLE
|
||||
(byte) MOS6569_VICII::IRQ_STATUS
|
||||
(byte) MOS6569_VICII::LIGHTPEN_X
|
||||
(byte) MOS6569_VICII::LIGHTPEN_Y
|
||||
(byte) MOS6569_VICII::MEMORY
|
||||
(byte) MOS6569_VICII::RASTER
|
||||
(byte) MOS6569_VICII::SPRITE0_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE0_X
|
||||
(byte) MOS6569_VICII::SPRITE0_Y
|
||||
(byte) MOS6569_VICII::SPRITE1_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE1_X
|
||||
(byte) MOS6569_VICII::SPRITE1_Y
|
||||
(byte) MOS6569_VICII::SPRITE2_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE2_X
|
||||
(byte) MOS6569_VICII::SPRITE2_Y
|
||||
(byte) MOS6569_VICII::SPRITE3_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE3_X
|
||||
(byte) MOS6569_VICII::SPRITE3_Y
|
||||
(byte) MOS6569_VICII::SPRITE4_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE4_X
|
||||
(byte) MOS6569_VICII::SPRITE4_Y
|
||||
(byte) MOS6569_VICII::SPRITE5_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE5_X
|
||||
(byte) MOS6569_VICII::SPRITE5_Y
|
||||
(byte) MOS6569_VICII::SPRITE6_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE6_X
|
||||
(byte) MOS6569_VICII::SPRITE6_Y
|
||||
(byte) MOS6569_VICII::SPRITE7_COLOR
|
||||
(byte) MOS6569_VICII::SPRITE7_X
|
||||
(byte) MOS6569_VICII::SPRITE7_Y
|
||||
(byte) MOS6569_VICII::SPRITES_BG_COLLISION
|
||||
(byte) MOS6569_VICII::SPRITES_COLLISION
|
||||
(byte) MOS6569_VICII::SPRITES_ENABLE
|
||||
(byte) MOS6569_VICII::SPRITES_EXPAND_X
|
||||
(byte) MOS6569_VICII::SPRITES_EXPAND_Y
|
||||
(byte) MOS6569_VICII::SPRITES_MC
|
||||
(byte) MOS6569_VICII::SPRITES_MCOLOR1
|
||||
(byte) MOS6569_VICII::SPRITES_MCOLOR2
|
||||
(byte) MOS6569_VICII::SPRITES_PRIORITY
|
||||
(byte) MOS6569_VICII::SPRITES_XMSB
|
||||
(byte) MOS6581_SID::CH1_ATTACK_DECAY
|
||||
(byte) MOS6581_SID::CH1_CONTROL
|
||||
(word) MOS6581_SID::CH1_FREQ
|
||||
(word) MOS6581_SID::CH1_PULSE_WIDTH
|
||||
(byte) MOS6581_SID::CH1_SUSTAIN_RELEASE
|
||||
(byte) MOS6581_SID::CH2_ATTACK_DECAY
|
||||
(byte) MOS6581_SID::CH2_CONTROL
|
||||
(word) MOS6581_SID::CH2_FREQ
|
||||
(word) MOS6581_SID::CH2_PULSE_WIDTH
|
||||
(byte) MOS6581_SID::CH2_SUSTAIN_RELEASE
|
||||
(byte) MOS6581_SID::CH3_ATTACK_DECAY
|
||||
(byte) MOS6581_SID::CH3_CONTROL
|
||||
(byte) MOS6581_SID::CH3_ENV
|
||||
(word) MOS6581_SID::CH3_FREQ
|
||||
(byte) MOS6581_SID::CH3_OSC
|
||||
(word) MOS6581_SID::CH3_PULSE_WIDTH
|
||||
(byte) MOS6581_SID::CH3_SUSTAIN_RELEASE
|
||||
(byte) MOS6581_SID::FILTER_CUTOFF_HIGH
|
||||
(byte) MOS6581_SID::FILTER_CUTOFF_LOW
|
||||
(byte) MOS6581_SID::FILTER_SETUP
|
||||
(byte) MOS6581_SID::POT_X
|
||||
(byte) MOS6581_SID::POT_Y
|
||||
(byte) MOS6581_SID::VOLUME_FILTER_MODE
|
||||
(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = (byte) 1
|
||||
(const byte) RADIX::BINARY = (number) 2
|
||||
(const byte) RADIX::DECIMAL = (number) $a
|
||||
(const byte) RADIX::HEXADECIMAL = (number) $10
|
||||
(const byte) RADIX::OCTAL = (number) 8
|
||||
(const word*) RADIX_DECIMAL_VALUES[] = { (word) $2710, (word) $3e8, (word) $64, (word) $a }
|
||||
(const dword*) RADIX_DECIMAL_VALUES_LONG[] = { (dword) $3b9aca00, (dword) $5f5e100, (dword) $989680, (dword) $f4240, (dword) $186a0, (dword) $2710, (dword) $3e8, (dword) $64, (dword) $a }
|
||||
(const byte*) RADIX_HEXADECIMAL_VALUES_CHAR[] = { (byte) $10 }
|
||||
(const byte) SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = (byte) $c
|
||||
(void()) __start()
|
||||
(label) __start::@1
|
||||
(label) __start::@return
|
||||
(label) __start::__init1
|
||||
(const byte*) board[(number) $14] = { fill( $14, 0) }
|
||||
(void()) clrscr()
|
||||
(label) clrscr::@1
|
||||
(label) clrscr::@2
|
||||
(label) clrscr::@3
|
||||
(label) clrscr::@4
|
||||
(label) clrscr::@5
|
||||
(label) clrscr::@return
|
||||
(byte) clrscr::c
|
||||
(byte) clrscr::c#1 reg byte y 20002.0
|
||||
(byte) clrscr::c#2 reg byte y 12501.25
|
||||
(byte) clrscr::l
|
||||
(byte) clrscr::l#1 reg byte z 2002.0
|
||||
(byte) clrscr::l#2 reg byte z 333.6666666666667
|
||||
(byte*) clrscr::line_cols
|
||||
(byte*) clrscr::line_cols#1 line_cols zp[2]:20 1001.0
|
||||
(byte*) clrscr::line_cols#5 line_cols zp[2]:20 1500.375
|
||||
(byte*) clrscr::line_text
|
||||
(byte*) clrscr::line_text#1 line_text zp[2]:18 667.3333333333334
|
||||
(byte*) clrscr::line_text#5 line_text zp[2]:18 1714.7142857142858
|
||||
(byte) conio_cursor_x loadstore zp[1]:22 9.740259746760391E11
|
||||
(byte) conio_cursor_y loadstore zp[1]:23 1.8934911243195914E13
|
||||
(byte*) conio_line_color loadstore zp[2]:26 1.3393939394546113E13
|
||||
(byte*) conio_line_text loadstore zp[2]:24 1.3233532934731191E13
|
||||
(dword) count
|
||||
(dword) count#10 count zp[4]:3 445.5
|
||||
(dword) count#2 count zp[4]:3 387.19354838709677
|
||||
(void()) cputc((byte) cputc::c)
|
||||
(label) cputc::@1
|
||||
(label) cputc::@2
|
||||
(label) cputc::@3
|
||||
(label) cputc::@return
|
||||
(byte) cputc::c
|
||||
(byte) cputc::c#0 reg byte a 2.0000000002E10
|
||||
(byte) cputc::c#1 reg byte a 2.000000000002E12
|
||||
(byte) cputc::c#2 reg byte a 2.00000002E8
|
||||
(byte) cputc::c#3 reg byte a 1.05050500000025E13
|
||||
(void()) cputln()
|
||||
(label) cputln::@return
|
||||
(void()) cputs((to_nomodify byte*) cputs::s)
|
||||
(label) cputs::@1
|
||||
(label) cputs::@2
|
||||
(label) cputs::@return
|
||||
(byte) cputs::c
|
||||
(byte) cputs::c#1 reg byte a 1.0000000001E10
|
||||
(to_nomodify byte*) cputs::s
|
||||
(to_nomodify byte*) cputs::s#0 s zp[2]:18 5.0000000005E9
|
||||
(to_nomodify byte*) cputs::s#11 s zp[2]:18 1.5500000002E10
|
||||
(to_nomodify byte*) cputs::s#12 s zp[2]:18 1.000000001E9
|
||||
(void()) cscroll()
|
||||
(label) cscroll::@1
|
||||
(label) cscroll::@2
|
||||
(label) cscroll::@3
|
||||
(label) cscroll::@4
|
||||
(label) cscroll::@5
|
||||
(label) cscroll::@return
|
||||
(void()) gotoxy((byte) gotoxy::x , (byte) gotoxy::y)
|
||||
(label) gotoxy::@1
|
||||
(label) gotoxy::@return
|
||||
(word) gotoxy::line_offset
|
||||
(const word) gotoxy::line_offset#0 line_offset = (word)(const byte) gotoxy::y#2*(byte) $28
|
||||
(byte) gotoxy::x
|
||||
(const byte) gotoxy::x#2 x = (byte) 0
|
||||
(byte) gotoxy::y
|
||||
(const byte) gotoxy::y#2 y = (byte) 5
|
||||
(byte()) legal((byte) legal::row , (byte) legal::column)
|
||||
(byte~) legal::$0 reg byte x 2000002.0
|
||||
(label) legal::@1
|
||||
(label) legal::@2
|
||||
(label) legal::@3
|
||||
(label) legal::@4
|
||||
(label) legal::@5
|
||||
(label) legal::@return
|
||||
(byte) legal::column
|
||||
(byte) legal::column#0 column zp[1]:28 235353.23529411765
|
||||
(label) legal::diff1
|
||||
(label) legal::diff1_@1
|
||||
(label) legal::diff1_@3
|
||||
(label) legal::diff1_@return
|
||||
(byte) legal::diff1_a
|
||||
(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]:8 2000002.0
|
||||
(byte) legal::diff1_return#1 diff1_return zp[1]:8 2000002.0
|
||||
(byte) legal::diff1_return#2 diff1_return zp[1]:8 600000.6000000001
|
||||
(label) legal::diff2
|
||||
(label) legal::diff2_@1
|
||||
(label) legal::diff2_@3
|
||||
(label) legal::diff2_@return
|
||||
(byte) legal::diff2_a
|
||||
(byte) legal::diff2_b
|
||||
(byte) legal::diff2_return
|
||||
(byte) legal::diff2_return#0 reg byte a 2000002.0
|
||||
(byte) legal::diff2_return#1 reg byte a 2000002.0
|
||||
(byte) legal::diff2_return#2 reg byte a 3000003.0
|
||||
(byte) legal::i
|
||||
(byte) legal::i#1 reg byte y 2000002.0
|
||||
(byte) legal::i#10 reg byte y 571429.1428571428
|
||||
(byte) legal::return
|
||||
(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]:2 222278.05555555556
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
(label) main::@5
|
||||
(label) main::@6
|
||||
(label) main::@7
|
||||
(label) main::@return
|
||||
(const byte*) main::s[(byte) $29] = (byte*) " - n queens problem using backtracking -"
|
||||
(const byte*) main::s1[(byte) $13] = (byte*) "
|
||||
number of queens:"
|
||||
(const byte*) main::s2[(byte) $e] = (byte*) "
|
||||
|
||||
solutions: "
|
||||
(void*()) memcpy((void*) memcpy::destination , (void*) memcpy::source , (word) memcpy::num)
|
||||
(label) memcpy::@1
|
||||
(label) memcpy::@2
|
||||
(label) memcpy::@return
|
||||
(void*) memcpy::destination
|
||||
(void*) memcpy::destination#2 destination zp[2]:29
|
||||
(byte*) memcpy::dst
|
||||
(byte*) memcpy::dst#1 dst zp[2]:29 1.0E20
|
||||
(byte*) memcpy::dst#2 dst zp[2]:29 1.0000333333333333E20
|
||||
(byte*) memcpy::dst#4 dst zp[2]:29 2.0E16
|
||||
(word) memcpy::num
|
||||
(void*) memcpy::return
|
||||
(void*) memcpy::source
|
||||
(void*) memcpy::source#2 source zp[2]:20
|
||||
(byte*) memcpy::src
|
||||
(byte*) memcpy::src#1 src zp[2]:20 2.0E20
|
||||
(byte*) memcpy::src#2 src zp[2]:20 1.000025E20
|
||||
(byte*) memcpy::src#4 src zp[2]:20 1.0E16
|
||||
(byte*) memcpy::src_end
|
||||
(byte*) memcpy::src_end#0 src_end zp[2]:36 1.250125E19
|
||||
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
||||
(label) memset::@1
|
||||
(label) memset::@2
|
||||
(label) memset::@3
|
||||
(label) memset::@return
|
||||
(byte) memset::c
|
||||
(byte) memset::c#4 reg byte z 1.4285714285714287E19
|
||||
(byte*) memset::dst
|
||||
(byte*) memset::dst#1 dst zp[2]:20 2.0E20
|
||||
(byte*) memset::dst#2 dst zp[2]:20 1.3333666666666666E20
|
||||
(byte*) memset::dst#4 dst zp[2]:20 2.0E16
|
||||
(byte*) memset::end
|
||||
(byte*) memset::end#0 end zp[2]:36 1.6668333333333332E19
|
||||
(word) memset::num
|
||||
(void*) memset::return
|
||||
(void*) memset::str
|
||||
(void*) memset::str#3 str zp[2]:20
|
||||
(void()) print()
|
||||
(label) print::@1
|
||||
(label) print::@10
|
||||
(label) print::@11
|
||||
(label) print::@12
|
||||
(label) print::@13
|
||||
(label) print::@14
|
||||
(label) print::@15
|
||||
(label) print::@2
|
||||
(label) print::@3
|
||||
(label) print::@4
|
||||
(label) print::@5
|
||||
(label) print::@6
|
||||
(label) print::@7
|
||||
(label) print::@8
|
||||
(label) print::@9
|
||||
(label) print::@return
|
||||
(byte) print::i
|
||||
(byte) print::i#1 i zp[1]:9 2000002.0
|
||||
(byte) print::i#2 i zp[1]:9 1000001.0
|
||||
(byte) print::i1
|
||||
(byte) print::i1#1 i1 zp[1]:10 2000002.0
|
||||
(byte) print::i1#2 i1 zp[1]:10 1000000.357142857
|
||||
(byte) print::j
|
||||
(byte) print::j#1 reg byte x 2.0000002E7
|
||||
(byte) print::j#2 reg byte x 5714286.285714285
|
||||
(const byte*) print::s[(byte) 3] = (byte*) "
|
||||
#"
|
||||
(const byte*) print::s1[(byte) 4] = (byte*) ":
|
||||
"
|
||||
(const byte*) print::s3[(byte) 2] = (byte*) "Q"
|
||||
(const byte*) print::s4[(byte) 2] = (byte*) "-"
|
||||
(struct printf_buffer_number) printf_buffer loadstore mem[12] = {}
|
||||
(const byte*) printf_buffer_number::digits[(number) $b] = { fill( $b, 0) }
|
||||
(byte) printf_buffer_number::sign
|
||||
(byte) printf_format_number::justify_left
|
||||
(byte) printf_format_number::min_length
|
||||
(byte) printf_format_number::radix
|
||||
(byte) printf_format_number::sign_always
|
||||
(byte) printf_format_number::upper_case
|
||||
(byte) printf_format_number::zero_padding
|
||||
(byte) printf_format_string::justify_left
|
||||
(byte) printf_format_string::min_length
|
||||
(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]:18 1.00000001E8
|
||||
(label) printf_number_buffer::@1
|
||||
(label) printf_number_buffer::@10
|
||||
(label) printf_number_buffer::@11
|
||||
(label) printf_number_buffer::@12
|
||||
(label) printf_number_buffer::@13
|
||||
(label) printf_number_buffer::@14
|
||||
(label) printf_number_buffer::@15
|
||||
(label) printf_number_buffer::@16
|
||||
(label) printf_number_buffer::@17
|
||||
(label) printf_number_buffer::@18
|
||||
(label) printf_number_buffer::@19
|
||||
(label) printf_number_buffer::@2
|
||||
(label) printf_number_buffer::@20
|
||||
(label) printf_number_buffer::@21
|
||||
(label) printf_number_buffer::@3
|
||||
(label) printf_number_buffer::@4
|
||||
(label) printf_number_buffer::@5
|
||||
(label) printf_number_buffer::@6
|
||||
(label) printf_number_buffer::@7
|
||||
(label) printf_number_buffer::@8
|
||||
(label) printf_number_buffer::@9
|
||||
(label) printf_number_buffer::@return
|
||||
(struct printf_buffer_number) printf_number_buffer::buffer
|
||||
(byte*) printf_number_buffer::buffer_digits
|
||||
(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
|
||||
(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]:8 6451612.9677419355
|
||||
(byte) printf_number_buffer::format_min_length
|
||||
(byte) printf_number_buffer::format_min_length#3 reg byte z 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]:35 3846153.8846153845
|
||||
(byte) printf_number_buffer::format_zero_padding
|
||||
(byte) printf_number_buffer::format_zero_padding#10 format_zero_padding zp[1]:17 9375000.09375
|
||||
(signed byte) printf_number_buffer::len
|
||||
(signed byte) printf_number_buffer::len#0 reg byte x 1.500000015E8
|
||||
(signed byte) printf_number_buffer::len#1 reg byte x 2.00000002E8
|
||||
(signed byte) printf_number_buffer::len#2 reg byte x 3.00000003E8
|
||||
(signed byte) printf_number_buffer::padding
|
||||
(signed byte) printf_number_buffer::padding#1 padding zp[1]:7 1.00000001E8
|
||||
(signed byte) printf_number_buffer::padding#10 padding zp[1]:7 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 reg byte x 2.000000000002E12
|
||||
(byte) printf_padding::i#2 reg byte x 7.5000000000075E11
|
||||
(byte) printf_padding::length
|
||||
(byte) printf_padding::length#0 length zp[1]:15 2.00000002E8
|
||||
(byte) printf_padding::length#1 length zp[1]:15 2.00000002E8
|
||||
(byte) printf_padding::length#2 length zp[1]:15 2.00000002E8
|
||||
(byte) printf_padding::length#4 length zp[1]:15 1.6671666666733334E11
|
||||
(byte) printf_padding::pad
|
||||
(byte) printf_padding::pad#5 pad zp[1]:16 1.6666666666683334E11
|
||||
(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
|
||||
(label) printf_uchar::@return
|
||||
(struct printf_format_number) printf_uchar::format
|
||||
(byte) printf_uchar::format_justify_left
|
||||
(byte) printf_uchar::format_min_length
|
||||
(byte) printf_uchar::format_radix
|
||||
(byte) printf_uchar::format_sign_always
|
||||
(byte) printf_uchar::format_upper_case
|
||||
(byte) printf_uchar::format_zero_padding
|
||||
(byte) printf_uchar::uvalue
|
||||
(byte) printf_uchar::uvalue#0 reg byte x 2000002.0
|
||||
(byte) printf_uchar::uvalue#1 reg byte x 2000002.0
|
||||
(byte) printf_uchar::uvalue#2 reg byte x 6000001.5
|
||||
(void()) printf_uint((word) printf_uint::uvalue , (byte) printf_uint::format_min_length , (byte) printf_uint::format_justify_left , (byte) printf_uint::format_sign_always , (byte) printf_uint::format_zero_padding , (byte) printf_uint::format_upper_case , (byte) printf_uint::format_radix)
|
||||
(label) printf_uint::@1
|
||||
(label) printf_uint::@2
|
||||
(label) printf_uint::@return
|
||||
(struct printf_format_number) printf_uint::format
|
||||
(byte) printf_uint::format_justify_left
|
||||
(const byte) printf_uint::format_justify_left#0 format_justify_left = (byte) 0
|
||||
(byte) printf_uint::format_min_length
|
||||
(const byte) printf_uint::format_min_length#0 format_min_length = (byte) 0
|
||||
(byte) printf_uint::format_radix
|
||||
(byte) printf_uint::format_sign_always
|
||||
(byte) printf_uint::format_upper_case
|
||||
(const byte) printf_uint::format_upper_case#0 format_upper_case = (byte) 0
|
||||
(byte) printf_uint::format_zero_padding
|
||||
(const byte) printf_uint::format_zero_padding#0 format_zero_padding = (byte) 0
|
||||
(word) printf_uint::uvalue
|
||||
(const word) printf_uint::uvalue#0 uvalue = (byte) 8
|
||||
(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)
|
||||
(label) printf_ulong::@1
|
||||
(label) printf_ulong::@2
|
||||
(label) printf_ulong::@return
|
||||
(struct printf_format_number) printf_ulong::format
|
||||
(byte) printf_ulong::format_justify_left
|
||||
(byte) printf_ulong::format_min_length
|
||||
(byte) printf_ulong::format_radix
|
||||
(byte) printf_ulong::format_sign_always
|
||||
(byte) printf_ulong::format_upper_case
|
||||
(byte) printf_ulong::format_zero_padding
|
||||
(dword) printf_ulong::uvalue
|
||||
(dword) printf_ulong::uvalue#0 uvalue zp[4]:3 22.0
|
||||
(dword) printf_ulong::uvalue#1 uvalue zp[4]:3 20002.0
|
||||
(dword) printf_ulong::uvalue#2 uvalue zp[4]:3 55006.5
|
||||
(void()) queens()
|
||||
(byte~) queens::$2 reg byte a 2002.0
|
||||
(label) queens::@1
|
||||
(label) queens::@2
|
||||
(label) queens::@3
|
||||
(label) queens::@4
|
||||
(label) queens::@5
|
||||
(label) queens::@6
|
||||
(label) queens::@7
|
||||
(label) queens::@8
|
||||
(label) queens::@9
|
||||
(label) queens::@return
|
||||
(byte) queens::row
|
||||
(byte) queens::row#1 row zp[1]:2 2002.0
|
||||
(byte) queens::row#10 row zp[1]:2 1144.0
|
||||
(byte) queens::row#2 row zp[1]:2 2002.0
|
||||
(const byte*) s3[(byte) 2] = (byte*) "
|
||||
"
|
||||
(word()) strlen((byte*) strlen::str)
|
||||
(label) strlen::@1
|
||||
(label) strlen::@2
|
||||
(label) strlen::@return
|
||||
(word) strlen::len
|
||||
(word) strlen::len#1 len zp[2]:18 1.000000000001E12
|
||||
(word) strlen::len#2 len zp[2]:18 5.0002500000075E11
|
||||
(word) strlen::return
|
||||
(word) strlen::return#2 return zp[2]:18 2.00000002E8
|
||||
(byte*) strlen::str
|
||||
(byte*) strlen::str#0 str zp[2]:20 2.000000000002E12
|
||||
(byte*) strlen::str#2 str zp[2]:20 1.000000000001E12
|
||||
(byte*()) strupr((byte*) strupr::str)
|
||||
(byte~) strupr::$0 reg byte a 2.000000000002E12
|
||||
(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]:20 2.000000000002E12
|
||||
(byte*) strupr::src#2 src zp[2]:20 7.142857142864285E11
|
||||
(byte*) strupr::str
|
||||
(const byte*) strupr::str#0 str = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
|
||||
(byte()) toupper((byte) toupper::ch)
|
||||
(label) toupper::@1
|
||||
(label) toupper::@2
|
||||
(label) toupper::@return
|
||||
(byte) toupper::ch
|
||||
(byte) toupper::ch#0 reg byte a 1.7000000000001998E13
|
||||
(byte) toupper::return
|
||||
(byte) toupper::return#0 reg byte a 2.0000000000002E13
|
||||
(byte) toupper::return#2 reg byte a 1.0333333333334666E13
|
||||
(byte) toupper::return#3 reg byte a 2.000000000002E12
|
||||
(void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix)
|
||||
(label) uctoa::@1
|
||||
(label) uctoa::@2
|
||||
(label) uctoa::@3
|
||||
(label) uctoa::@4
|
||||
(label) uctoa::@5
|
||||
(label) uctoa::@6
|
||||
(label) uctoa::@7
|
||||
(label) uctoa::@return
|
||||
(byte*) uctoa::buffer
|
||||
(byte*) uctoa::buffer#11 buffer zp[2]:18 3.3350000000500004E10
|
||||
(byte*) uctoa::buffer#14 buffer zp[2]:18 1.500000000015E11
|
||||
(byte*) uctoa::buffer#3 buffer zp[2]:18 2.00000002E8
|
||||
(byte*) uctoa::buffer#4 buffer zp[2]:18 2.00000000002E11
|
||||
(byte) uctoa::digit
|
||||
(byte) uctoa::digit#1 digit zp[1]:17 2.00000000002E11
|
||||
(byte) uctoa::digit#2 digit zp[1]:17 3.076923076953846E10
|
||||
(byte) uctoa::digit_value
|
||||
(byte) uctoa::digit_value#0 digit_value zp[1]:35 6.0000000000600006E10
|
||||
(byte*) uctoa::digit_values
|
||||
(byte) uctoa::max_digits
|
||||
(byte) uctoa::radix
|
||||
(byte) uctoa::started
|
||||
(byte) uctoa::started#2 reg byte x 6.0000000000600006E10
|
||||
(byte) uctoa::started#4 reg byte x 1.00000000001E11
|
||||
(byte) uctoa::value
|
||||
(byte) uctoa::value#0 reg byte z 1.00000000001E11
|
||||
(byte) uctoa::value#1 reg byte z 5.5000001E7
|
||||
(byte) uctoa::value#2 reg byte z 6.670000000100001E10
|
||||
(byte) uctoa::value#6 reg byte z 1.500000000015E11
|
||||
(byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub)
|
||||
(label) uctoa_append::@1
|
||||
(label) uctoa_append::@2
|
||||
(label) uctoa_append::@3
|
||||
(label) uctoa_append::@return
|
||||
(byte*) uctoa_append::buffer
|
||||
(byte*) uctoa_append::buffer#0 buffer zp[2]:18 1.3750000000025E11
|
||||
(byte) uctoa_append::digit
|
||||
(byte) uctoa_append::digit#1 reg byte x 1.0E16
|
||||
(byte) uctoa_append::digit#2 reg byte x 1.00005E16
|
||||
(byte) uctoa_append::return
|
||||
(byte) uctoa_append::return#0 reg byte a 2.00000000002E11
|
||||
(byte) uctoa_append::sub
|
||||
(byte) uctoa_append::sub#0 sub zp[1]:35 3.33335E15
|
||||
(byte) uctoa_append::value
|
||||
(byte) uctoa_append::value#0 reg byte z 3.666666666673334E11
|
||||
(byte) uctoa_append::value#1 reg byte z 2.0E16
|
||||
(byte) uctoa_append::value#2 reg byte z 5.000183333333334E15
|
||||
(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix)
|
||||
(byte~) ultoa::$10 reg byte a 2.00000002E8
|
||||
(byte~) ultoa::$11 reg byte a 2000002.0
|
||||
(label) ultoa::@1
|
||||
(label) ultoa::@2
|
||||
(label) ultoa::@3
|
||||
(label) ultoa::@4
|
||||
(label) ultoa::@5
|
||||
(label) ultoa::@6
|
||||
(label) ultoa::@7
|
||||
(label) ultoa::@return
|
||||
(byte*) ultoa::buffer
|
||||
(byte*) ultoa::buffer#11 buffer zp[2]:18 2.871428614285714E7
|
||||
(byte*) ultoa::buffer#14 buffer zp[2]:18 1.500000015E8
|
||||
(byte*) ultoa::buffer#3 buffer zp[2]:18 2000002.0
|
||||
(byte*) ultoa::buffer#4 buffer zp[2]:18 2.00000002E8
|
||||
(byte) ultoa::digit
|
||||
(byte) ultoa::digit#1 reg byte x 2.00000002E8
|
||||
(byte) ultoa::digit#2 reg byte x 2.857142885714286E7
|
||||
(dword) ultoa::digit_value
|
||||
(dword) ultoa::digit_value#0 digit_value zp[4]:31 6.0000000599999994E7
|
||||
(dword*) ultoa::digit_values
|
||||
(byte) ultoa::max_digits
|
||||
(byte) ultoa::radix
|
||||
(byte) ultoa::started
|
||||
(byte) ultoa::started#2 reg byte z 5.00000005E7
|
||||
(byte) ultoa::started#4 reg byte z 1.00000001E8
|
||||
(dword) ultoa::value
|
||||
(dword) ultoa::value#0 value zp[4]:11 1.00000001E8
|
||||
(dword) ultoa::value#1 value zp[4]:11 550001.0
|
||||
(dword) ultoa::value#2 value zp[4]:11 5.7285715E7
|
||||
(dword) ultoa::value#6 value zp[4]:11 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]:18 1.3750000025E8
|
||||
(byte) ultoa_append::digit
|
||||
(byte) ultoa_append::digit#1 reg byte z 1.000000000001E12
|
||||
(byte) ultoa_append::digit#2 reg byte z 1.0005000000015E12
|
||||
(dword) ultoa_append::return
|
||||
(dword) ultoa_append::return#0 return zp[4]:11 2.00000002E8
|
||||
(dword) ultoa_append::sub
|
||||
(dword) ultoa_append::sub#0 sub zp[4]:31 3.333500000005E11
|
||||
(dword) ultoa_append::value
|
||||
(dword) ultoa_append::value#0 value zp[4]:11 3.666666673333334E8
|
||||
(dword) ultoa_append::value#1 value zp[4]:11 2.000000000002E12
|
||||
(dword) ultoa_append::value#2 value zp[4]:11 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
|
||||
(label) utoa::@1
|
||||
(label) utoa::@2
|
||||
(label) utoa::@3
|
||||
(label) utoa::@4
|
||||
(label) utoa::@5
|
||||
(label) utoa::@6
|
||||
(label) utoa::@7
|
||||
(label) utoa::@return
|
||||
(byte*) utoa::buffer
|
||||
(byte*) utoa::buffer#11 buffer zp[2]:18 3000.4285714285716
|
||||
(byte*) utoa::buffer#14 buffer zp[2]:18 15001.5
|
||||
(byte*) utoa::buffer#3 buffer zp[2]:18 2002.0
|
||||
(byte*) utoa::buffer#4 buffer zp[2]:18 20002.0
|
||||
(byte) utoa::digit
|
||||
(byte) utoa::digit#1 reg byte x 20002.0
|
||||
(byte) utoa::digit#2 reg byte x 2857.4285714285716
|
||||
(word) utoa::digit_value
|
||||
(word) utoa::digit_value#0 digit_value zp[2]:29 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 reg byte z 5000.5
|
||||
(byte) utoa::started#4 reg byte z 10001.0
|
||||
(word) utoa::value
|
||||
(word) utoa::value#0 value zp[2]:20 10001.0
|
||||
(word) utoa::value#2 value zp[2]:20 5714.857142857143
|
||||
(word) utoa::value#6 value zp[2]:20 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]:18 13750.25
|
||||
(byte) utoa_append::digit
|
||||
(byte) utoa_append::digit#1 reg byte z 1.0000001E7
|
||||
(byte) utoa_append::digit#2 reg byte z 1.00500015E7
|
||||
(word) utoa_append::return
|
||||
(word) utoa_append::return#0 return zp[2]:20 20002.0
|
||||
(word) utoa_append::sub
|
||||
(word) utoa_append::sub#0 sub zp[2]:29 3335000.5
|
||||
(word) utoa_append::value
|
||||
(word) utoa_append::value#0 value zp[2]:20 36667.33333333333
|
||||
(word) utoa_append::value#1 value zp[2]:20 2.0000002E7
|
||||
(word) utoa_append::value#2 value zp[2]:20 5018334.166666666
|
||||
|
||||
reg byte z [ clrscr::l#2 clrscr::l#1 ]
|
||||
reg byte y [ clrscr::c#2 clrscr::c#1 ]
|
||||
zp[1]:2 [ queens::row#10 queens::row#1 queens::row#2 legal::row#0 ]
|
||||
zp[4]:3 [ count#10 count#2 printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ]
|
||||
reg byte a [ cputc::c#3 cputc::c#0 cputc::c#2 cputc::c#1 ]
|
||||
reg byte x [ utoa::digit#2 utoa::digit#1 ]
|
||||
reg byte z [ utoa::started#2 utoa::started#4 ]
|
||||
reg byte z [ printf_number_buffer::format_min_length#3 ]
|
||||
reg byte x [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ]
|
||||
zp[1]:7 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
reg byte y [ legal::i#10 legal::i#1 ]
|
||||
reg byte a [ legal::return#4 ]
|
||||
zp[1]:8 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 printf_number_buffer::format_justify_left#10 ]
|
||||
reg byte a [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ]
|
||||
zp[1]:9 [ print::i#2 print::i#1 ]
|
||||
zp[1]:10 [ print::i1#2 print::i1#1 ]
|
||||
reg byte x [ print::j#2 print::j#1 ]
|
||||
reg byte x [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
zp[4]:11 [ 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 z [ ultoa::started#2 ultoa::started#4 ]
|
||||
reg byte z [ utoa_append::digit#2 utoa_append::digit#1 ]
|
||||
zp[1]:15 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
zp[1]:16 [ printf_padding::pad#5 ]
|
||||
reg byte x [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ]
|
||||
reg byte z [ ultoa_append::digit#2 ultoa_append::digit#1 ]
|
||||
reg byte a [ toupper::return#2 toupper::return#0 toupper::ch#0 ]
|
||||
zp[1]:17 [ uctoa::digit#2 uctoa::digit#1 printf_number_buffer::format_zero_padding#10 ]
|
||||
reg byte z [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ]
|
||||
reg byte x [ uctoa::started#2 uctoa::started#4 ]
|
||||
zp[2]:18 [ 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 ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ultoa::buffer#3 ultoa_append::buffer#0 utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 cputs::s#11 cputs::s#12 cputs::s#0 clrscr::line_text#5 clrscr::line_text#1 ]
|
||||
zp[2]:20 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 strupr::src#2 strupr::src#1 strlen::str#2 strlen::str#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 clrscr::line_cols#5 clrscr::line_cols#1 ]
|
||||
reg byte z [ memset::c#4 ]
|
||||
reg byte z [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ]
|
||||
reg byte x [ uctoa_append::digit#2 uctoa_append::digit#1 ]
|
||||
zp[1]:22 [ conio_cursor_x ]
|
||||
zp[1]:23 [ conio_cursor_y ]
|
||||
zp[2]:24 [ conio_line_text ]
|
||||
zp[2]:26 [ conio_line_color ]
|
||||
reg byte a [ cputs::c#1 ]
|
||||
zp[1]:28 [ legal::column#0 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 a [ legal::return#0 ]
|
||||
reg byte a [ queens::$2 ]
|
||||
reg byte a [ utoa::$11 ]
|
||||
reg byte a [ utoa::$10 ]
|
||||
zp[2]:29 [ utoa::digit_value#0 utoa_append::sub#0 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ]
|
||||
reg byte x [ legal::$0 ]
|
||||
reg byte a [ legal::diff1_a#0 ]
|
||||
reg byte a [ ultoa::$11 ]
|
||||
reg byte a [ ultoa::$10 ]
|
||||
zp[4]:31 [ ultoa::digit_value#0 ultoa_append::sub#0 ]
|
||||
reg byte a [ toupper::return#3 ]
|
||||
reg byte a [ strupr::$0 ]
|
||||
zp[1]:35 [ uctoa::digit_value#0 uctoa_append::sub#0 printf_number_buffer::format_upper_case#10 ]
|
||||
reg byte a [ uctoa_append::return#0 ]
|
||||
zp[2]:36 [ memset::end#0 memcpy::src_end#0 ]
|
||||
mem[12] [ printf_buffer ]
|
@ -10426,7 +10426,6 @@ Statement [243] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_b
|
||||
Statement [249] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:7::printf_uint:38::printf_number_buffer:144 [ count TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:7::printf_ulong:60::printf_number_buffer:188 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:7::queen:45::print:30::printf_ulong:92::printf_number_buffer:188 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:7::queen:45::print:30::printf_uchar:103::printf_number_buffer:211 [ queen::r queen::column count print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:7::queen:45::print:30::printf_uchar:114::printf_number_buffer:211 [ queen::r queen::column count print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:30 [ printf_number_buffer::format_min_length#3 ]
|
||||
Statement [250] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:7::printf_uint:38::printf_number_buffer:144 [ count TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::printf_ulong:60::printf_number_buffer:188 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_ulong:92::printf_number_buffer:188 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_uchar:103::printf_number_buffer:211 [ queen::r queen::column count print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_uchar:114::printf_number_buffer:211 [ queen::r queen::column count print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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 [251] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:7::printf_uint:38::printf_number_buffer:144 [ count TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::printf_ulong:60::printf_number_buffer:188 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_ulong:92::printf_number_buffer:188 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_uchar:103::printf_number_buffer:211 [ queen::r queen::column count print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_uchar:114::printf_number_buffer:211 [ queen::r queen::column count print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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 [255] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:7::printf_uint:38::printf_number_buffer:144 [ count TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:7::printf_ulong:60::printf_number_buffer:188 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:7::queen:45::print:30::printf_ulong:92::printf_number_buffer:188 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:7::queen:45::print:30::printf_uchar:103::printf_number_buffer:211 [ queen::r queen::column count print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:7::queen:45::print:30::printf_uchar:114::printf_number_buffer:211 [ queen::r queen::column count print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [285] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:7::printf_ulong:60::ultoa:186 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:7::queen:45::print:30::printf_ulong:92::ultoa:186 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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 [286] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:7::printf_ulong:60::ultoa:186 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:7::queen:45::print:30::printf_ulong:92::ultoa:186 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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
|
||||
@ -10554,7 +10553,6 @@ Statement [242] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ p
|
||||
Statement [243] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:7::printf_uint:38::utoa:142 [ count TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a
|
||||
Statement [249] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:7::printf_uint:38::printf_number_buffer:144 [ count TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:7::printf_ulong:60::printf_number_buffer:188 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:7::queen:45::print:30::printf_ulong:92::printf_number_buffer:188 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:7::queen:45::print:30::printf_uchar:103::printf_number_buffer:211 [ queen::r queen::column count print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:7::queen:45::print:30::printf_uchar:114::printf_number_buffer:211 [ queen::r queen::column count print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Statement [250] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:7::printf_uint:38::printf_number_buffer:144 [ count TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::printf_ulong:60::printf_number_buffer:188 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_ulong:92::printf_number_buffer:188 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_uchar:103::printf_number_buffer:211 [ queen::r queen::column count print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_uchar:114::printf_number_buffer:211 [ queen::r queen::column count print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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 [251] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:7::printf_uint:38::printf_number_buffer:144 [ count TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::printf_ulong:60::printf_number_buffer:188 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_ulong:92::printf_number_buffer:188 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_uchar:103::printf_number_buffer:211 [ queen::r queen::column count print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:7::queen:45::print:30::printf_uchar:114::printf_number_buffer:211 [ queen::r queen::column count print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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 [255] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:7::printf_uint:38::printf_number_buffer:144 [ count TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:7::printf_ulong:60::printf_number_buffer:188 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:7::queen:45::print:30::printf_ulong:92::printf_number_buffer:188 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:7::queen:45::print:30::printf_uchar:103::printf_number_buffer:211 [ queen::r queen::column count print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:7::queen:45::print:30::printf_uchar:114::printf_number_buffer:211 [ queen::r queen::column count print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [285] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:7::printf_ulong:60::ultoa:186 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:7::queen:45::print:30::printf_ulong:92::ultoa:186 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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 [286] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:7::printf_ulong:60::ultoa:186 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = printf_ulong::uvalue#2 count ultoa::value#1 } } main:7::queen:45::print:30::printf_ulong:92::ultoa:186 [ queen::r queen::column count conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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
|
||||
|
@ -437,8 +437,7 @@ printf_number_buffer: {
|
||||
// strlen(buffer.digits)
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// There is a minimum length - work out the padding
|
||||
lda.z __19
|
||||
tay
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
lda #0
|
||||
cmp.z buffer_sign
|
||||
|
@ -9324,7 +9324,6 @@ Statement [110] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_b
|
||||
Statement [116] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:6::printf_uint:15::printf_number_buffer:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:6::printf_ulong:21::printf_number_buffer:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:6::queens:17::print:68::printf_ulong:172::printf_number_buffer:78 [ queens::row#10 count#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#2 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:6::queens:17::print:68::printf_uchar:183::printf_number_buffer:264 [ queens::row#10 count#2 print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:6::queens:17::print:68::printf_uchar:194::printf_number_buffer:264 [ queens::row#10 count#2 print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:26 [ printf_number_buffer::format_min_length#3 ]
|
||||
Statement [117] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:6::printf_uint:15::printf_number_buffer:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::printf_ulong:21::printf_number_buffer:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:6::queens:17::print:68::printf_ulong:172::printf_number_buffer:78 [ queens::row#10 count#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#2 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queens:17::print:68::printf_uchar:183::printf_number_buffer:264 [ queens::row#10 count#2 print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::queens:17::print:68::printf_uchar:194::printf_number_buffer:264 [ queens::row#10 count#2 print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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 [118] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:6::printf_uint:15::printf_number_buffer:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::printf_ulong:21::printf_number_buffer:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:6::queens:17::print:68::printf_ulong:172::printf_number_buffer:78 [ queens::row#10 count#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#2 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queens:17::print:68::printf_uchar:183::printf_number_buffer:264 [ queens::row#10 count#2 print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::queens:17::print:68::printf_uchar:194::printf_number_buffer:264 [ queens::row#10 count#2 print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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 [122] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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::printf_ulong:21::printf_number_buffer:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:6::queens:17::print:68::printf_ulong:172::printf_number_buffer:78 [ queens::row#10 count#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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#2 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queens:17::print:68::printf_uchar:183::printf_number_buffer:264 [ queens::row#10 count#2 print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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::queens:17::print:68::printf_uchar:194::printf_number_buffer:264 [ queens::row#10 count#2 print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [155] 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:6::queens:17::legal:61 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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]:94 [ legal::row#0 ]
|
||||
@ -9440,7 +9439,6 @@ Statement [109] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ p
|
||||
Statement [110] (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:51 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a
|
||||
Statement [116] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:6::printf_uint:15::printf_number_buffer:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:6::printf_ulong:21::printf_number_buffer:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:6::queens:17::print:68::printf_ulong:172::printf_number_buffer:78 [ queens::row#10 count#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#2 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:6::queens:17::print:68::printf_uchar:183::printf_number_buffer:264 [ queens::row#10 count#2 print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } main:6::queens:17::print:68::printf_uchar:194::printf_number_buffer:264 [ queens::row#10 count#2 print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Statement [117] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:6::printf_uint:15::printf_number_buffer:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::printf_ulong:21::printf_number_buffer:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:6::queens:17::print:68::printf_ulong:172::printf_number_buffer:78 [ queens::row#10 count#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#2 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queens:17::print:68::printf_uchar:183::printf_number_buffer:264 [ queens::row#10 count#2 print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::queens:17::print:68::printf_uchar:194::printf_number_buffer:264 [ queens::row#10 count#2 print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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 [118] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:6::printf_uint:15::printf_number_buffer:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::printf_ulong:21::printf_number_buffer:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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:6::queens:17::print:68::printf_ulong:172::printf_number_buffer:78 [ queens::row#10 count#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#1 = printf_ulong::uvalue#2 count#2 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queens:17::print:68::printf_uchar:183::printf_number_buffer:264 [ queens::row#10 count#2 print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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::queens:17::print:68::printf_uchar:194::printf_number_buffer:264 [ queens::row#10 count#2 print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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_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 [122] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#3 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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::printf_ulong:21::printf_number_buffer:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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:6::queens:17::print:68::printf_ulong:172::printf_number_buffer:78 [ queens::row#10 count#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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#2 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::queens:17::print:68::printf_uchar:183::printf_number_buffer:264 [ queens::row#10 count#2 print::i1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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::queens:17::print:68::printf_uchar:194::printf_number_buffer:264 [ queens::row#10 count#2 print::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [155] 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:6::queens:17::legal:61 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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 [158] (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:6::queens:17::legal:61 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color 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
|
||||
@ -9642,82 +9640,82 @@ Uplifting [printf_padding] best 1915363 combination zp[1]:57 [ printf_padding::i
|
||||
Uplifting [uctoa] best 1906357 combination zp[2]:70 [ 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]:67 [ uctoa::digit#2 uctoa::digit#1 ] zp[1]:69 [ uctoa::started#2 uctoa::started#4 ] zp[1]:138 [ uctoa::digit_value#0 ] zp[2]:136 [ uctoa::buffer#3 ]
|
||||
Uplifting [cputs] best 1906267 combination zp[2]:8 [ cputs::s#11 cputs::s#12 cputs::s#0 ] reg byte a [ cputs::c#1 ]
|
||||
Uplifting [ultoa] best 1904963 combination zp[2]:46 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] zp[4]:41 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] zp[1]:40 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:120 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:117 [ ultoa::buffer#3 ]
|
||||
Uplifting [printf_number_buffer] best 1904949 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:32 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:112 [ printf_number_buffer::$19 ] zp[1]:29 [ 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 [ printf_number_buffer::format_min_length#3 ] zp[1]:28 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:27 [ printf_number_buffer::format_justify_left#10 ] zp[1]:30 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 1904947 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:32 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:112 [ printf_number_buffer::$19 ] zp[1]:29 [ 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 [ printf_number_buffer::format_min_length#3 ] zp[1]:28 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:27 [ printf_number_buffer::format_justify_left#10 ] zp[1]:30 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Limited combination testing to 100 combinations of 256 possible.
|
||||
Uplifting [utoa_append] best 1904346 combination zp[2]:48 [ 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]:106 [ utoa_append::sub#0 ] zp[2]:108 [ utoa_append::return#0 ] zp[2]:104 [ utoa_append::buffer#0 ]
|
||||
Uplifting [print] best 1904346 combination zp[1]:39 [ print::j#2 print::j#1 ] zp[1]:37 [ print::i#2 print::i#1 ] zp[1]:38 [ print::i1#2 print::i1#1 ]
|
||||
Uplifting [legal] best 1901646 combination reg byte a [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] zp[1]:35 [ 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]:115 [ legal::diff1_a#0 ] zp[1]:95 [ legal::column#0 ] zp[1]:94 [ legal::row#0 ] zp[1]:96 [ legal::return#0 ] zp[1]:34 [ legal::return#4 ]
|
||||
Uplifting [utoa_append] best 1904344 combination zp[2]:48 [ 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]:106 [ utoa_append::sub#0 ] zp[2]:108 [ utoa_append::return#0 ] zp[2]:104 [ utoa_append::buffer#0 ]
|
||||
Uplifting [print] best 1904344 combination zp[1]:39 [ print::j#2 print::j#1 ] zp[1]:37 [ print::i#2 print::i#1 ] zp[1]:38 [ print::i1#2 print::i1#1 ]
|
||||
Uplifting [legal] best 1901644 combination reg byte a [ legal::diff2_return#2 legal::diff2_return#0 legal::diff2_return#1 ] zp[1]:35 [ 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]:115 [ legal::diff1_a#0 ] zp[1]:95 [ legal::column#0 ] zp[1]:94 [ legal::row#0 ] zp[1]:96 [ legal::return#0 ] zp[1]:34 [ legal::return#4 ]
|
||||
Limited combination testing to 100 combinations of 82944 possible.
|
||||
Uplifting [printf_uchar] best 1901043 combination reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ]
|
||||
Uplifting [utoa] best 1900909 combination zp[2]:24 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:21 [ utoa::value#2 utoa::value#6 utoa::value#0 ] zp[1]:20 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:102 [ utoa::digit_value#0 ] reg byte a [ utoa::$11 ] zp[2]:99 [ utoa::buffer#3 ]
|
||||
Uplifting [printf_ulong] best 1900909 combination zp[4]:15 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ]
|
||||
Uplifting [clrscr] best 1899319 combination reg byte y [ clrscr::c#2 clrscr::c#1 ] zp[2]:5 [ clrscr::line_cols#5 clrscr::line_cols#1 ] zp[2]:3 [ clrscr::line_text#5 clrscr::line_text#1 ] reg byte x [ clrscr::l#2 clrscr::l#1 ]
|
||||
Uplifting [queens] best 1899259 combination zp[1]:10 [ queens::row#10 queens::row#1 queens::row#2 ] reg byte a [ queens::$2 ]
|
||||
Uplifting [RADIX] best 1899259 combination
|
||||
Uplifting [MOS6526_CIA] best 1899259 combination
|
||||
Uplifting [MOS6569_VICII] best 1899259 combination
|
||||
Uplifting [MOS6581_SID] best 1899259 combination
|
||||
Uplifting [gotoxy] best 1899259 combination
|
||||
Uplifting [cputln] best 1899259 combination
|
||||
Uplifting [cscroll] best 1899259 combination
|
||||
Uplifting [printf_format_number] best 1899259 combination
|
||||
Uplifting [printf_buffer_number] best 1899259 combination
|
||||
Uplifting [printf_format_string] best 1899259 combination
|
||||
Uplifting [printf_uint] best 1899259 combination
|
||||
Uplifting [main] best 1899259 combination
|
||||
Uplifting [__start] best 1899259 combination
|
||||
Uplifting [printf_uchar] best 1901041 combination reg byte x [ printf_uchar::uvalue#2 printf_uchar::uvalue#1 printf_uchar::uvalue#0 ]
|
||||
Uplifting [utoa] best 1900907 combination zp[2]:24 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:21 [ utoa::value#2 utoa::value#6 utoa::value#0 ] zp[1]:20 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:102 [ utoa::digit_value#0 ] reg byte a [ utoa::$11 ] zp[2]:99 [ utoa::buffer#3 ]
|
||||
Uplifting [printf_ulong] best 1900907 combination zp[4]:15 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ]
|
||||
Uplifting [clrscr] best 1899317 combination reg byte y [ clrscr::c#2 clrscr::c#1 ] zp[2]:5 [ clrscr::line_cols#5 clrscr::line_cols#1 ] zp[2]:3 [ clrscr::line_text#5 clrscr::line_text#1 ] reg byte x [ clrscr::l#2 clrscr::l#1 ]
|
||||
Uplifting [queens] best 1899257 combination zp[1]:10 [ queens::row#10 queens::row#1 queens::row#2 ] reg byte a [ queens::$2 ]
|
||||
Uplifting [RADIX] best 1899257 combination
|
||||
Uplifting [MOS6526_CIA] best 1899257 combination
|
||||
Uplifting [MOS6569_VICII] best 1899257 combination
|
||||
Uplifting [MOS6581_SID] best 1899257 combination
|
||||
Uplifting [gotoxy] best 1899257 combination
|
||||
Uplifting [cputln] best 1899257 combination
|
||||
Uplifting [cscroll] best 1899257 combination
|
||||
Uplifting [printf_format_number] best 1899257 combination
|
||||
Uplifting [printf_buffer_number] best 1899257 combination
|
||||
Uplifting [printf_format_string] best 1899257 combination
|
||||
Uplifting [printf_uint] best 1899257 combination
|
||||
Uplifting [main] best 1899257 combination
|
||||
Uplifting [__start] best 1899257 combination
|
||||
Attempting to uplift remaining variables inzp[1]:141 [ uctoa_append::sub#0 ]
|
||||
Uplifting [uctoa_append] best 1899259 combination zp[1]:141 [ uctoa_append::sub#0 ]
|
||||
Uplifting [uctoa_append] best 1899257 combination zp[1]:141 [ uctoa_append::sub#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:88 [ conio_cursor_y ]
|
||||
Uplifting [] best 1899259 combination zp[1]:88 [ conio_cursor_y ]
|
||||
Uplifting [] best 1899257 combination zp[1]:88 [ conio_cursor_y ]
|
||||
Attempting to uplift remaining variables inzp[1]:57 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Uplifting [printf_padding] best 1899259 combination zp[1]:57 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Uplifting [printf_padding] best 1899257 combination zp[1]:57 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:87 [ conio_cursor_x ]
|
||||
Uplifting [] best 1899259 combination zp[1]:87 [ conio_cursor_x ]
|
||||
Uplifting [] best 1899257 combination zp[1]:87 [ conio_cursor_x ]
|
||||
Attempting to uplift remaining variables inzp[1]:67 [ uctoa::digit#2 uctoa::digit#1 ]
|
||||
Uplifting [uctoa] best 1899259 combination zp[1]:67 [ uctoa::digit#2 uctoa::digit#1 ]
|
||||
Uplifting [uctoa] best 1899257 combination zp[1]:67 [ uctoa::digit#2 uctoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:55 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Uplifting [printf_padding] best 1899259 combination zp[1]:55 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Uplifting [printf_padding] best 1899257 combination zp[1]:55 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:56 [ printf_padding::pad#5 ]
|
||||
Uplifting [printf_padding] best 1899259 combination zp[1]:56 [ printf_padding::pad#5 ]
|
||||
Uplifting [printf_padding] best 1899257 combination zp[1]:56 [ printf_padding::pad#5 ]
|
||||
Attempting to uplift remaining variables inzp[1]:69 [ uctoa::started#2 uctoa::started#4 ]
|
||||
Uplifting [uctoa] best 1899259 combination zp[1]:69 [ uctoa::started#2 uctoa::started#4 ]
|
||||
Uplifting [uctoa] best 1899257 combination zp[1]:69 [ uctoa::started#2 uctoa::started#4 ]
|
||||
Attempting to uplift remaining variables inzp[1]:138 [ uctoa::digit_value#0 ]
|
||||
Uplifting [uctoa] best 1899259 combination zp[1]:138 [ uctoa::digit_value#0 ]
|
||||
Uplifting [uctoa] best 1899257 combination zp[1]:138 [ uctoa::digit_value#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:40 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Uplifting [ultoa] best 1899259 combination zp[1]:40 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Uplifting [ultoa] best 1899257 combination zp[1]:40 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:32 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Uplifting [printf_number_buffer] best 1899259 combination zp[1]:32 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Uplifting [printf_number_buffer] best 1899257 combination zp[1]:32 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:29 [ 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 1899259 combination zp[1]:29 [ 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 1899257 combination zp[1]:29 [ 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]:39 [ print::j#2 print::j#1 ]
|
||||
Uplifting [print] best 1899259 combination zp[1]:39 [ print::j#2 print::j#1 ]
|
||||
Uplifting [print] best 1899257 combination zp[1]:39 [ print::j#2 print::j#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:28 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Uplifting [printf_number_buffer] best 1899259 combination zp[1]:28 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Uplifting [printf_number_buffer] best 1899257 combination zp[1]:28 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:27 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Uplifting [printf_number_buffer] best 1899259 combination zp[1]:27 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Uplifting [printf_number_buffer] best 1899257 combination zp[1]:27 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:35 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ]
|
||||
Uplifting [legal] best 1899259 combination zp[1]:35 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ]
|
||||
Uplifting [legal] best 1899257 combination zp[1]:35 [ legal::diff1_return#2 legal::diff1_return#0 legal::diff1_return#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:30 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 1899259 combination zp[1]:30 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 1899257 combination zp[1]:30 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:37 [ print::i#2 print::i#1 ]
|
||||
Uplifting [print] best 1899259 combination zp[1]:37 [ print::i#2 print::i#1 ]
|
||||
Uplifting [print] best 1899257 combination zp[1]:37 [ print::i#2 print::i#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:38 [ print::i1#2 print::i1#1 ]
|
||||
Uplifting [print] best 1899259 combination zp[1]:38 [ print::i1#2 print::i1#1 ]
|
||||
Uplifting [print] best 1899257 combination zp[1]:38 [ print::i1#2 print::i1#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:115 [ legal::diff1_a#0 ]
|
||||
Uplifting [legal] best 1898259 combination reg byte a [ legal::diff1_a#0 ]
|
||||
Uplifting [legal] best 1898257 combination reg byte a [ legal::diff1_a#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:95 [ legal::column#0 ]
|
||||
Uplifting [legal] best 1898259 combination zp[1]:95 [ legal::column#0 ]
|
||||
Uplifting [legal] best 1898257 combination zp[1]:95 [ legal::column#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:94 [ legal::row#0 ]
|
||||
Uplifting [legal] best 1898259 combination zp[1]:94 [ legal::row#0 ]
|
||||
Uplifting [legal] best 1898257 combination zp[1]:94 [ legal::row#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:20 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Uplifting [utoa] best 1898259 combination zp[1]:20 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Uplifting [utoa] best 1898257 combination zp[1]:20 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:10 [ queens::row#10 queens::row#1 queens::row#2 ]
|
||||
Uplifting [queens] best 1898259 combination zp[1]:10 [ queens::row#10 queens::row#1 queens::row#2 ]
|
||||
Uplifting [queens] best 1898257 combination zp[1]:10 [ queens::row#10 queens::row#1 queens::row#2 ]
|
||||
Attempting to uplift remaining variables inzp[1]:96 [ legal::return#0 ]
|
||||
Uplifting [legal] best 1898199 combination reg byte a [ legal::return#0 ]
|
||||
Uplifting [legal] best 1898197 combination reg byte a [ legal::return#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:34 [ legal::return#4 ]
|
||||
Uplifting [legal] best 1898163 combination reg byte a [ legal::return#4 ]
|
||||
Uplifting [legal] best 1898161 combination reg byte a [ legal::return#4 ]
|
||||
Coalescing zero page register [ zp[4]:11 [ count#10 count#2 ] ] with [ zp[4]:15 [ printf_ulong::uvalue#2 printf_ulong::uvalue#0 printf_ulong::uvalue#1 ] ] - score: 2
|
||||
Coalescing zero page register [ zp[1]:10 [ queens::row#10 queens::row#1 queens::row#2 ] ] with [ zp[1]:94 [ legal::row#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:21 [ utoa::value#2 utoa::value#6 utoa::value#0 ] ] with [ zp[2]:48 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] - score: 1
|
||||
@ -10515,8 +10513,7 @@ printf_number_buffer: {
|
||||
// [117] (word~) printf_number_buffer::$19 ← (word) strlen::return#2
|
||||
// [118] (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
|
||||
ldy.z __19
|
||||
// [119] 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
|
||||
@ -13069,7 +13066,7 @@ mem[12] [ printf_buffer ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 1603536
|
||||
Score: 1603534
|
||||
|
||||
// File Comments
|
||||
// N Queens Problem in C Using Backtracking
|
||||
@ -13748,8 +13745,7 @@ printf_number_buffer: {
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// [118] (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
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
// [119] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1
|
||||
lda #0
|
||||
|
File diff suppressed because one or more lines are too long
@ -723,8 +723,7 @@ printf_number_buffer: {
|
||||
// strlen(buffer.digits)
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// There is a minimum length - work out the padding
|
||||
lda.z __19
|
||||
tay
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
lda #0
|
||||
cmp.z buffer_sign
|
||||
|
@ -9434,7 +9434,6 @@ Statement [176] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_b
|
||||
Statement [182] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:6::printf_uint:19::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } { strlen::return#2 = strlen::len#2 } } main:6::printf_uint:49::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } { strlen::return#2 = strlen::len#2 } } main:6::printf_schar:31::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#4 } { strlen::return#2 = strlen::len#2 } } main:6::printf_uchar:37::printf_number_buffer:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#5 } { strlen::return#2 = strlen::len#2 } } main:6::printf_sint:43::printf_number_buffer:126 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:6::printf_slong:55::printf_number_buffer:133 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:6::printf_ulong:61::printf_number_buffer:139 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:24 [ printf_number_buffer::format_min_length#10 ]
|
||||
Statement [183] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:6::printf_uint:19::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_uint:49::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_schar:31::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#4 } } main:6::printf_uchar:37::printf_number_buffer:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#5 } } main:6::printf_sint:43::printf_number_buffer:126 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::printf_slong:55::printf_number_buffer:133 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_ulong:61::printf_number_buffer:139 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [184] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:6::printf_uint:19::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_uint:49::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_schar:31::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#4 } } main:6::printf_uchar:37::printf_number_buffer:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#5 } } main:6::printf_sint:43::printf_number_buffer:126 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::printf_slong:55::printf_number_buffer:133 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_ulong:61::printf_number_buffer:139 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [188] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#10 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:6::printf_uint:19::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_uint:49::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_schar:31::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#4 } } main:6::printf_uchar:37::printf_number_buffer:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#5 } } main:6::printf_sint:43::printf_number_buffer:126 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::printf_slong:55::printf_number_buffer:133 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_ulong:61::printf_number_buffer:139 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [218] *((byte*) uctoa::buffer#10) ← *((const byte*) DIGITS + (byte) uctoa::value#3) [ printf_buffer uctoa::buffer#10 ] ( main:6::printf_schar:31::uctoa:111 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#10 ] { } main:6::printf_uchar:37::uctoa:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [219] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#10 [ printf_buffer uctoa::buffer#3 ] ( main:6::printf_schar:31::uctoa:111 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#3 ] { } main:6::printf_uchar:37::uctoa:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#3 ] { } ) always clobbers reg byte a
|
||||
@ -9541,7 +9540,6 @@ Statement [175] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ p
|
||||
Statement [176] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:6::printf_uint:19::utoa:104 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::radix#1 = utoa::radix#2 printf_uint::format_radix#2 } { utoa::value#10 = utoa::value#2 printf_uint::uvalue#2 } } main:6::printf_uint:49::utoa:104 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::radix#1 = utoa::radix#2 printf_uint::format_radix#2 } { utoa::value#10 = utoa::value#2 printf_uint::uvalue#2 } } main:6::printf_sint:43::utoa:124 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::max_digits#7 utoa::digit_values#8 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { } ) always clobbers reg byte a
|
||||
Statement [182] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:6::printf_uint:19::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } { strlen::return#2 = strlen::len#2 } } main:6::printf_uint:49::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } { strlen::return#2 = strlen::len#2 } } main:6::printf_schar:31::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#4 } { strlen::return#2 = strlen::len#2 } } main:6::printf_uchar:37::printf_number_buffer:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#5 } { strlen::return#2 = strlen::len#2 } } main:6::printf_sint:43::printf_number_buffer:126 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } { strlen::return#2 = strlen::len#2 } } main:6::printf_slong:55::printf_number_buffer:133 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:6::printf_ulong:61::printf_number_buffer:139 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Statement [183] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:6::printf_uint:19::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_uint:49::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_schar:31::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#4 } } main:6::printf_uchar:37::printf_number_buffer:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#5 } } main:6::printf_sint:43::printf_number_buffer:126 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::printf_slong:55::printf_number_buffer:133 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_ulong:61::printf_number_buffer:139 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [184] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:6::printf_uint:19::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_uint:49::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_schar:31::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#4 } } main:6::printf_uchar:37::printf_number_buffer:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#5 } } main:6::printf_sint:43::printf_number_buffer:126 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::printf_slong:55::printf_number_buffer:133 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_ulong:61::printf_number_buffer:139 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_min_length#10 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [188] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#10 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:6::printf_uint:19::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_uint:49::printf_number_buffer:106 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#3 } } main:6::printf_schar:31::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#4 } } main:6::printf_uchar:37::printf_number_buffer:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#5 } } main:6::printf_sint:43::printf_number_buffer:126 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#10 = printf_number_buffer::buffer_sign#2 } } main:6::printf_slong:55::printf_number_buffer:133 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:6::printf_ulong:61::printf_number_buffer:139 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#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 [218] *((byte*) uctoa::buffer#10) ← *((const byte*) DIGITS + (byte) uctoa::value#3) [ printf_buffer uctoa::buffer#10 ] ( main:6::printf_schar:31::uctoa:111 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#10 ] { } main:6::printf_uchar:37::uctoa:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#10 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [219] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#10 [ printf_buffer uctoa::buffer#3 ] ( main:6::printf_schar:31::uctoa:111 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#3 ] { } main:6::printf_uchar:37::uctoa:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#3 ] { } ) always clobbers reg byte a
|
||||
@ -9721,65 +9719,65 @@ Limited combination testing to 100 combinations of 2048 possible.
|
||||
Uplifting [ultoa] best 44294 combination zp[2]:42 [ ultoa::buffer#10 ultoa::buffer#15 ultoa::buffer#4 ] zp[4]:37 [ ultoa::value#3 ultoa::value#7 ultoa::value#10 ultoa::value#0 ] zp[1]:36 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:113 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:110 [ ultoa::buffer#3 ]
|
||||
Uplifting [uctoa] best 44195 combination zp[2]:34 [ uctoa::buffer#10 uctoa::buffer#15 uctoa::buffer#4 ] reg byte x [ uctoa::value#3 uctoa::value#7 uctoa::value#10 uctoa::value#0 ] zp[1]:31 [ uctoa::digit#2 uctoa::digit#1 ] zp[1]:33 [ uctoa::started#2 uctoa::started#4 ] zp[1]:104 [ uctoa::digit_value#0 ] zp[2]:102 [ uctoa::buffer#3 ]
|
||||
Uplifting [clrscr] best 42605 combination reg byte y [ clrscr::c#2 clrscr::c#1 ] zp[2]:5 [ clrscr::line_cols#5 clrscr::line_cols#1 ] zp[2]:3 [ clrscr::line_text#5 clrscr::line_text#1 ] reg byte x [ clrscr::l#2 clrscr::l#1 ]
|
||||
Uplifting [printf_number_buffer] best 42582 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:27 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#4 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#5 printf_number_buffer::buffer_sign#3 printf_number_buffer::buffer_sign#1 ] zp[1]:30 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:100 [ printf_number_buffer::$19 ] reg byte x [ printf_number_buffer::format_min_length#10 ] zp[1]:26 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:25 [ printf_number_buffer::format_justify_left#10 ] zp[1]:28 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 42580 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:27 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#4 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#5 printf_number_buffer::buffer_sign#3 printf_number_buffer::buffer_sign#1 ] zp[1]:30 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:100 [ printf_number_buffer::$19 ] reg byte x [ printf_number_buffer::format_min_length#10 ] zp[1]:26 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:25 [ printf_number_buffer::format_justify_left#10 ] zp[1]:28 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Limited combination testing to 100 combinations of 256 possible.
|
||||
Uplifting [printf_uint] best 42573 combination zp[2]:11 [ printf_uint::uvalue#2 ] reg byte x [ printf_uint::format_radix#2 ]
|
||||
Uplifting [main] best 42573 combination zp[1]:83 [ main::c ]
|
||||
Uplifting [RADIX] best 42573 combination
|
||||
Uplifting [MOS6526_CIA] best 42573 combination
|
||||
Uplifting [MOS6569_VICII] best 42573 combination
|
||||
Uplifting [MOS6581_SID] best 42573 combination
|
||||
Uplifting [cputln] best 42573 combination
|
||||
Uplifting [cscroll] best 42573 combination
|
||||
Uplifting [printf_format_number] best 42573 combination
|
||||
Uplifting [printf_buffer_number] best 42573 combination
|
||||
Uplifting [printf_format_string] best 42573 combination
|
||||
Uplifting [printf_slong] best 42573 combination
|
||||
Uplifting [printf_ulong] best 42573 combination
|
||||
Uplifting [printf_sint] best 42573 combination
|
||||
Uplifting [printf_schar] best 42573 combination
|
||||
Uplifting [printf_uchar] best 42573 combination
|
||||
Uplifting [__start] best 42573 combination
|
||||
Uplifting [printf_uint] best 42571 combination zp[2]:11 [ printf_uint::uvalue#2 ] reg byte x [ printf_uint::format_radix#2 ]
|
||||
Uplifting [main] best 42571 combination zp[1]:83 [ main::c ]
|
||||
Uplifting [RADIX] best 42571 combination
|
||||
Uplifting [MOS6526_CIA] best 42571 combination
|
||||
Uplifting [MOS6569_VICII] best 42571 combination
|
||||
Uplifting [MOS6581_SID] best 42571 combination
|
||||
Uplifting [cputln] best 42571 combination
|
||||
Uplifting [cscroll] best 42571 combination
|
||||
Uplifting [printf_format_number] best 42571 combination
|
||||
Uplifting [printf_buffer_number] best 42571 combination
|
||||
Uplifting [printf_format_string] best 42571 combination
|
||||
Uplifting [printf_slong] best 42571 combination
|
||||
Uplifting [printf_ulong] best 42571 combination
|
||||
Uplifting [printf_sint] best 42571 combination
|
||||
Uplifting [printf_schar] best 42571 combination
|
||||
Uplifting [printf_uchar] best 42571 combination
|
||||
Uplifting [__start] best 42571 combination
|
||||
Attempting to uplift remaining variables inzp[1]:107 [ uctoa_append::sub#0 ]
|
||||
Uplifting [uctoa_append] best 42573 combination zp[1]:107 [ uctoa_append::sub#0 ]
|
||||
Uplifting [uctoa_append] best 42571 combination zp[1]:107 [ uctoa_append::sub#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:78 [ conio_cursor_y ]
|
||||
Uplifting [] best 42573 combination zp[1]:78 [ conio_cursor_y ]
|
||||
Uplifting [] best 42571 combination zp[1]:78 [ conio_cursor_y ]
|
||||
Attempting to uplift remaining variables inzp[1]:53 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Uplifting [printf_padding] best 42573 combination zp[1]:53 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Uplifting [printf_padding] best 42571 combination zp[1]:53 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:77 [ conio_cursor_x ]
|
||||
Uplifting [] best 42573 combination zp[1]:77 [ conio_cursor_x ]
|
||||
Uplifting [] best 42571 combination zp[1]:77 [ conio_cursor_x ]
|
||||
Attempting to uplift remaining variables inzp[1]:51 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Uplifting [printf_padding] best 42573 combination zp[1]:51 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Uplifting [printf_padding] best 42571 combination zp[1]:51 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:31 [ uctoa::digit#2 uctoa::digit#1 ]
|
||||
Uplifting [uctoa] best 42573 combination zp[1]:31 [ uctoa::digit#2 uctoa::digit#1 ]
|
||||
Uplifting [uctoa] best 42571 combination zp[1]:31 [ uctoa::digit#2 uctoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:36 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Uplifting [ultoa] best 42573 combination zp[1]:36 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Uplifting [ultoa] best 42571 combination zp[1]:36 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:18 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Uplifting [utoa] best 42573 combination zp[1]:18 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Uplifting [utoa] best 42571 combination zp[1]:18 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:52 [ printf_padding::pad#5 ]
|
||||
Uplifting [printf_padding] best 42573 combination zp[1]:52 [ printf_padding::pad#5 ]
|
||||
Uplifting [printf_padding] best 42571 combination zp[1]:52 [ printf_padding::pad#5 ]
|
||||
Attempting to uplift remaining variables inzp[1]:33 [ uctoa::started#2 uctoa::started#4 ]
|
||||
Uplifting [uctoa] best 42573 combination zp[1]:33 [ uctoa::started#2 uctoa::started#4 ]
|
||||
Uplifting [uctoa] best 42571 combination zp[1]:33 [ uctoa::started#2 uctoa::started#4 ]
|
||||
Attempting to uplift remaining variables inzp[1]:104 [ uctoa::digit_value#0 ]
|
||||
Uplifting [uctoa] best 42573 combination zp[1]:104 [ uctoa::digit_value#0 ]
|
||||
Uplifting [uctoa] best 42571 combination zp[1]:104 [ uctoa::digit_value#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:86 [ utoa::$11 ]
|
||||
Uplifting [utoa] best 42569 combination reg byte a [ utoa::$11 ]
|
||||
Uplifting [utoa] best 42567 combination reg byte a [ utoa::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:27 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#4 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#5 printf_number_buffer::buffer_sign#3 printf_number_buffer::buffer_sign#1 ]
|
||||
Uplifting [printf_number_buffer] best 42569 combination zp[1]:27 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#4 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#5 printf_number_buffer::buffer_sign#3 printf_number_buffer::buffer_sign#1 ]
|
||||
Uplifting [printf_number_buffer] best 42567 combination zp[1]:27 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#4 printf_number_buffer::buffer_sign#2 printf_number_buffer::buffer_sign#0 printf_number_buffer::buffer_sign#5 printf_number_buffer::buffer_sign#3 printf_number_buffer::buffer_sign#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:14 [ utoa::radix#2 utoa::radix#1 ]
|
||||
Uplifting [utoa] best 42551 combination reg byte x [ utoa::radix#2 utoa::radix#1 ]
|
||||
Uplifting [utoa] best 42549 combination reg byte x [ utoa::radix#2 utoa::radix#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:30 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Uplifting [printf_number_buffer] best 42551 combination zp[1]:30 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Uplifting [printf_number_buffer] best 42549 combination zp[1]:30 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:15 [ utoa::max_digits#7 ]
|
||||
Uplifting [utoa] best 42551 combination zp[1]:15 [ utoa::max_digits#7 ]
|
||||
Uplifting [utoa] best 42549 combination zp[1]:15 [ utoa::max_digits#7 ]
|
||||
Attempting to uplift remaining variables inzp[1]:26 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Uplifting [printf_number_buffer] best 42551 combination zp[1]:26 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Uplifting [printf_number_buffer] best 42549 combination zp[1]:26 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:25 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Uplifting [printf_number_buffer] best 42551 combination zp[1]:25 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Uplifting [printf_number_buffer] best 42549 combination zp[1]:25 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:28 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 42551 combination zp[1]:28 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 42549 combination zp[1]:28 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:83 [ main::c ]
|
||||
Uplifting [main] best 42551 combination zp[1]:83 [ main::c ]
|
||||
Uplifting [main] best 42549 combination zp[1]:83 [ main::c ]
|
||||
Coalescing zero page register [ zp[2]:11 [ printf_uint::uvalue#2 ] ] with [ zp[2]:19 [ utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#2 utoa::value#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:22 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 ] ] with [ zp[2]:87 [ utoa::buffer#3 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:22 [ utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 utoa::buffer#3 ] ] with [ zp[2]:92 [ utoa_append::buffer#0 ] ] - score: 1
|
||||
@ -11100,8 +11098,7 @@ printf_number_buffer: {
|
||||
// [183] (word~) printf_number_buffer::$19 ← (word) strlen::return#2
|
||||
// [184] (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
|
||||
ldy.z __19
|
||||
// [185] 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
|
||||
@ -13252,7 +13249,7 @@ mem[12] [ printf_buffer ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 35505
|
||||
Score: 35503
|
||||
|
||||
// File Comments
|
||||
// Tests printf function call rewriting
|
||||
@ -14394,8 +14391,7 @@ printf_number_buffer: {
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// [184] (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
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
// [185] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1
|
||||
lda #0
|
||||
|
@ -1212,8 +1212,7 @@ printf_number_buffer: {
|
||||
// strlen(buffer.digits)
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// There is a minimum length - work out the padding
|
||||
lda.z __19
|
||||
tax
|
||||
ldx.z __19
|
||||
// if(buffer.sign)
|
||||
lda #0
|
||||
cmp.z buffer_sign
|
||||
|
File diff suppressed because one or more lines are too long
@ -393,8 +393,7 @@ printf_number_buffer: {
|
||||
// strlen(buffer.digits)
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// There is a minimum length - work out the padding
|
||||
lda.z __19
|
||||
tay
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
lda #0
|
||||
cmp.z buffer_sign
|
||||
|
File diff suppressed because one or more lines are too long
@ -574,8 +574,7 @@ printf_number_buffer: {
|
||||
// strlen(buffer.digits)
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// There is a minimum length - work out the padding
|
||||
lda.z __19
|
||||
tay
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
lda #0
|
||||
cmp.z buffer_sign
|
||||
|
@ -7392,7 +7392,6 @@ Statement [145] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_b
|
||||
Statement [151] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:7::printf_uint:29::printf_number_buffer:106 [ main::first#0 main::col#3 main::row#3 main::cnt#1 _rand_state#14 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:7::printf_ulong:45::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:30 [ printf_number_buffer::format_min_length#2 ]
|
||||
Statement [152] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:7::printf_uint:29::printf_number_buffer:106 [ main::first#0 main::col#3 main::row#3 main::cnt#1 _rand_state#14 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:45::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [153] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:7::printf_uint:29::printf_number_buffer:106 [ main::first#0 main::col#3 main::row#3 main::cnt#1 _rand_state#14 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:45::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [157] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:7::printf_uint:29::printf_number_buffer:106 [ main::first#0 main::col#3 main::row#3 main::cnt#1 _rand_state#14 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:45::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [187] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:7::printf_ulong:45::ultoa:111 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = main::cnt#1 ultoa::value#1 } } ) always clobbers reg byte a
|
||||
Statement [188] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:7::printf_ulong:45::ultoa:111 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = main::cnt#1 ultoa::value#1 } } ) always clobbers reg byte a reg byte y
|
||||
@ -7501,7 +7500,6 @@ Statement [144] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ p
|
||||
Statement [145] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:7::printf_uint:29::utoa:104 [ main::first#0 main::col#3 main::row#3 main::cnt#1 _rand_state#14 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { { printf_uint::uvalue#0 = main::rnd#2 utoa::value#1 } } ) always clobbers reg byte a
|
||||
Statement [151] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:7::printf_uint:29::printf_number_buffer:106 [ main::first#0 main::col#3 main::row#3 main::cnt#1 _rand_state#14 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:7::printf_ulong:45::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Statement [152] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:7::printf_uint:29::printf_number_buffer:106 [ main::first#0 main::col#3 main::row#3 main::cnt#1 _rand_state#14 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:45::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [153] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:7::printf_uint:29::printf_number_buffer:106 [ main::first#0 main::col#3 main::row#3 main::cnt#1 _rand_state#14 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:45::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [157] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:7::printf_uint:29::printf_number_buffer:106 [ main::first#0 main::col#3 main::row#3 main::cnt#1 _rand_state#14 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:45::printf_number_buffer:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [187] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:7::printf_ulong:45::ultoa:111 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = main::cnt#1 ultoa::value#1 } } ) always clobbers reg byte a
|
||||
Statement [188] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:7::printf_ulong:45::ultoa:111 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = main::cnt#1 ultoa::value#1 } } ) always clobbers reg byte a reg byte y
|
||||
@ -7680,55 +7678,55 @@ Uplifting [printf_padding] best 227933 combination zp[1]:54 [ printf_padding::i#
|
||||
Uplifting [cputs] best 227033 combination zp[2]:17 [ cputs::s#4 cputs::s#5 cputs::s#0 ] reg byte a [ cputs::c#1 ]
|
||||
Uplifting [utoa] best 225729 combination zp[2]:28 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:25 [ utoa::value#2 utoa::value#6 utoa::value#1 utoa::value#0 ] zp[1]:24 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:125 [ utoa::digit_value#0 ] reg byte a [ utoa::$11 ] zp[2]:122 [ utoa::buffer#3 ]
|
||||
Uplifting [ultoa] best 225595 combination zp[2]:43 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] zp[4]:38 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] zp[1]:37 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:141 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:138 [ ultoa::buffer#3 ]
|
||||
Uplifting [printf_number_buffer] best 225584 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:135 [ printf_number_buffer::$19 ] zp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] reg byte x [ printf_number_buffer::format_min_length#2 ] zp[1]:32 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:31 [ printf_number_buffer::format_justify_left#10 ] zp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 225582 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:135 [ printf_number_buffer::$19 ] zp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] reg byte x [ printf_number_buffer::format_min_length#2 ] zp[1]:32 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:31 [ printf_number_buffer::format_justify_left#10 ] zp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Limited combination testing to 100 combinations of 256 possible.
|
||||
Uplifting [clrscr] best 223994 combination reg byte y [ clrscr::c#2 clrscr::c#1 ] zp[2]:13 [ clrscr::line_cols#5 clrscr::line_cols#1 ] zp[2]:11 [ clrscr::line_text#5 clrscr::line_text#1 ] reg byte x [ clrscr::l#2 clrscr::l#1 ]
|
||||
Uplifting [gotoxy] best 223907 combination reg byte x [ gotoxy::x#5 gotoxy::x#4 gotoxy::x#2 ] zp[2]:111 [ gotoxy::$8 ] zp[2]:113 [ gotoxy::$9 ] zp[2]:117 [ gotoxy::$5 ] zp[2]:119 [ gotoxy::$6 ] zp[2]:109 [ gotoxy::$7 ] reg byte a [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] zp[2]:115 [ gotoxy::line_offset#0 ]
|
||||
Uplifting [_rand] best 223907 combination zp[2]:97 [ _rand::$0 ] zp[2]:101 [ _rand::$1 ] zp[2]:105 [ _rand::$2 ] zp[2]:107 [ _rand::return#2 ] zp[2]:90 [ _rand::return#1 ] zp[2]:83 [ _rand::return#0 ]
|
||||
Uplifting [main] best 223847 combination zp[1]:7 [ main::row#3 main::row#7 main::row#1 ] zp[1]:6 [ main::col#3 main::col#7 main::col#1 ] zp[4]:2 [ main::cnt#2 main::cnt#1 ] zp[2]:8 [ main::rnd#2 main::rnd#5 main::rnd#1 ] reg byte a [ main::$17 ] zp[2]:85 [ main::first#0 ]
|
||||
Uplifting [printf_uint] best 223847 combination zp[2]:88 [ printf_uint::uvalue#0 ]
|
||||
Uplifting [textcolor] best 223838 combination reg byte a [ textcolor::color#2 ]
|
||||
Uplifting [printf_ulong] best 223838 combination zp[4]:92 [ printf_ulong::uvalue#0 ]
|
||||
Uplifting [RADIX] best 223838 combination
|
||||
Uplifting [MOS6526_CIA] best 223838 combination
|
||||
Uplifting [MOS6569_VICII] best 223838 combination
|
||||
Uplifting [MOS6581_SID] best 223838 combination
|
||||
Uplifting [cputln] best 223838 combination
|
||||
Uplifting [cscroll] best 223838 combination
|
||||
Uplifting [printf_format_number] best 223838 combination
|
||||
Uplifting [printf_buffer_number] best 223838 combination
|
||||
Uplifting [printf_format_string] best 223838 combination
|
||||
Uplifting [__start] best 223838 combination
|
||||
Uplifting [clrscr] best 223992 combination reg byte y [ clrscr::c#2 clrscr::c#1 ] zp[2]:13 [ clrscr::line_cols#5 clrscr::line_cols#1 ] zp[2]:11 [ clrscr::line_text#5 clrscr::line_text#1 ] reg byte x [ clrscr::l#2 clrscr::l#1 ]
|
||||
Uplifting [gotoxy] best 223905 combination reg byte x [ gotoxy::x#5 gotoxy::x#4 gotoxy::x#2 ] zp[2]:111 [ gotoxy::$8 ] zp[2]:113 [ gotoxy::$9 ] zp[2]:117 [ gotoxy::$5 ] zp[2]:119 [ gotoxy::$6 ] zp[2]:109 [ gotoxy::$7 ] reg byte a [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] zp[2]:115 [ gotoxy::line_offset#0 ]
|
||||
Uplifting [_rand] best 223905 combination zp[2]:97 [ _rand::$0 ] zp[2]:101 [ _rand::$1 ] zp[2]:105 [ _rand::$2 ] zp[2]:107 [ _rand::return#2 ] zp[2]:90 [ _rand::return#1 ] zp[2]:83 [ _rand::return#0 ]
|
||||
Uplifting [main] best 223845 combination zp[1]:7 [ main::row#3 main::row#7 main::row#1 ] zp[1]:6 [ main::col#3 main::col#7 main::col#1 ] zp[4]:2 [ main::cnt#2 main::cnt#1 ] zp[2]:8 [ main::rnd#2 main::rnd#5 main::rnd#1 ] reg byte a [ main::$17 ] zp[2]:85 [ main::first#0 ]
|
||||
Uplifting [printf_uint] best 223845 combination zp[2]:88 [ printf_uint::uvalue#0 ]
|
||||
Uplifting [textcolor] best 223836 combination reg byte a [ textcolor::color#2 ]
|
||||
Uplifting [printf_ulong] best 223836 combination zp[4]:92 [ printf_ulong::uvalue#0 ]
|
||||
Uplifting [RADIX] best 223836 combination
|
||||
Uplifting [MOS6526_CIA] best 223836 combination
|
||||
Uplifting [MOS6569_VICII] best 223836 combination
|
||||
Uplifting [MOS6581_SID] best 223836 combination
|
||||
Uplifting [cputln] best 223836 combination
|
||||
Uplifting [cscroll] best 223836 combination
|
||||
Uplifting [printf_format_number] best 223836 combination
|
||||
Uplifting [printf_buffer_number] best 223836 combination
|
||||
Uplifting [printf_format_string] best 223836 combination
|
||||
Uplifting [__start] best 223836 combination
|
||||
Attempting to uplift remaining variables inzp[1]:77 [ conio_cursor_y ]
|
||||
Uplifting [] best 223838 combination zp[1]:77 [ conio_cursor_y ]
|
||||
Uplifting [] best 223836 combination zp[1]:77 [ conio_cursor_y ]
|
||||
Attempting to uplift remaining variables inzp[1]:82 [ conio_textcolor ]
|
||||
Uplifting [] best 223838 combination zp[1]:82 [ conio_textcolor ]
|
||||
Uplifting [] best 223836 combination zp[1]:82 [ conio_textcolor ]
|
||||
Attempting to uplift remaining variables inzp[1]:54 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Uplifting [printf_padding] best 223838 combination zp[1]:54 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Uplifting [printf_padding] best 223836 combination zp[1]:54 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:76 [ conio_cursor_x ]
|
||||
Uplifting [] best 223838 combination zp[1]:76 [ conio_cursor_x ]
|
||||
Uplifting [] best 223836 combination zp[1]:76 [ conio_cursor_x ]
|
||||
Attempting to uplift remaining variables inzp[1]:24 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Uplifting [utoa] best 223838 combination zp[1]:24 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Uplifting [utoa] best 223836 combination zp[1]:24 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:52 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Uplifting [printf_padding] best 223838 combination zp[1]:52 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Uplifting [printf_padding] best 223836 combination zp[1]:52 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:53 [ printf_padding::pad#5 ]
|
||||
Uplifting [printf_padding] best 223838 combination zp[1]:53 [ printf_padding::pad#5 ]
|
||||
Uplifting [printf_padding] best 223836 combination zp[1]:53 [ printf_padding::pad#5 ]
|
||||
Attempting to uplift remaining variables inzp[1]:37 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Uplifting [ultoa] best 223838 combination zp[1]:37 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Uplifting [ultoa] best 223836 combination zp[1]:37 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Uplifting [printf_number_buffer] best 223838 combination zp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Uplifting [printf_number_buffer] best 223836 combination zp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ]
|
||||
Uplifting [printf_number_buffer] best 223838 combination zp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ]
|
||||
Uplifting [printf_number_buffer] best 223836 combination zp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:32 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Uplifting [printf_number_buffer] best 223838 combination zp[1]:32 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Uplifting [printf_number_buffer] best 223836 combination zp[1]:32 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:31 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Uplifting [printf_number_buffer] best 223838 combination zp[1]:31 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Uplifting [printf_number_buffer] best 223836 combination zp[1]:31 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 223838 combination zp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 223836 combination zp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:7 [ main::row#3 main::row#7 main::row#1 ]
|
||||
Uplifting [main] best 223838 combination zp[1]:7 [ main::row#3 main::row#7 main::row#1 ]
|
||||
Uplifting [main] best 223836 combination zp[1]:7 [ main::row#3 main::row#7 main::row#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:6 [ main::col#3 main::col#7 main::col#1 ]
|
||||
Uplifting [main] best 223838 combination zp[1]:6 [ main::col#3 main::col#7 main::col#1 ]
|
||||
Uplifting [main] best 223836 combination zp[1]:6 [ main::col#3 main::col#7 main::col#1 ]
|
||||
Coalescing zero page register [ zp[4]:2 [ main::cnt#2 main::cnt#1 ] ] with [ zp[4]:92 [ printf_ulong::uvalue#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:8 [ main::rnd#2 main::rnd#5 main::rnd#1 ] ] with [ zp[2]:88 [ printf_uint::uvalue#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:8 [ main::rnd#2 main::rnd#5 main::rnd#1 printf_uint::uvalue#0 ] ] with [ zp[2]:90 [ _rand::return#1 ] ] - score: 1
|
||||
@ -8732,8 +8730,7 @@ printf_number_buffer: {
|
||||
// [152] (word~) printf_number_buffer::$19 ← (word) strlen::return#2
|
||||
// [153] (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
|
||||
ldy.z __19
|
||||
// [154] 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
|
||||
@ -10533,7 +10530,7 @@ mem[12] [ printf_buffer ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 189515
|
||||
Score: 189513
|
||||
|
||||
// File Comments
|
||||
// Test the xorshift pseudorandom number generator
|
||||
@ -11414,8 +11411,7 @@ printf_number_buffer: {
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// [153] (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
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
// [154] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1
|
||||
lda #0
|
||||
|
@ -579,8 +579,7 @@ printf_number_buffer: {
|
||||
// strlen(buffer.digits)
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// There is a minimum length - work out the padding
|
||||
lda.z __19
|
||||
tay
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
lda #0
|
||||
cmp.z buffer_sign
|
||||
|
@ -7427,7 +7427,6 @@ Statement [147] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_b
|
||||
Statement [153] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:7::printf_uint:29::printf_number_buffer:108 [ main::first#0 main::col#3 main::row#3 main::cnt#1 rand_state#11 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:7::printf_ulong:47::printf_number_buffer:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:30 [ printf_number_buffer::format_min_length#2 ]
|
||||
Statement [154] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:7::printf_uint:29::printf_number_buffer:108 [ main::first#0 main::col#3 main::row#3 main::cnt#1 rand_state#11 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:47::printf_number_buffer:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [155] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:7::printf_uint:29::printf_number_buffer:108 [ main::first#0 main::col#3 main::row#3 main::cnt#1 rand_state#11 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:47::printf_number_buffer:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [159] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:7::printf_uint:29::printf_number_buffer:108 [ main::first#0 main::col#3 main::row#3 main::cnt#1 rand_state#11 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:47::printf_number_buffer:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [189] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:7::printf_ulong:47::ultoa:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = main::cnt#1 ultoa::value#1 } } ) always clobbers reg byte a
|
||||
Statement [190] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:7::printf_ulong:47::ultoa:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = main::cnt#1 ultoa::value#1 } } ) always clobbers reg byte a reg byte y
|
||||
@ -7536,7 +7535,6 @@ Statement [146] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ p
|
||||
Statement [147] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:7::printf_uint:29::utoa:106 [ main::first#0 main::col#3 main::row#3 main::cnt#1 rand_state#11 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { { printf_uint::uvalue#0 = main::rnd#2 utoa::value#1 } } ) always clobbers reg byte a
|
||||
Statement [153] (word) strlen::return#2 ← (word) strlen::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] ( main:7::printf_uint:29::printf_number_buffer:108 [ main::first#0 main::col#3 main::row#3 main::cnt#1 rand_state#11 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } main:7::printf_ulong:47::printf_number_buffer:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 strlen::return#2 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a
|
||||
Statement [154] (word~) printf_number_buffer::$19 ← (word) strlen::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] ( main:7::printf_uint:29::printf_number_buffer:108 [ main::first#0 main::col#3 main::row#3 main::cnt#1 rand_state#11 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:47::printf_number_buffer:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::$19 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [155] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] ( main:7::printf_uint:29::printf_number_buffer:108 [ main::first#0 main::col#3 main::row#3 main::cnt#1 rand_state#11 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:47::printf_number_buffer:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::len#0 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [159] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] ( main:7::printf_uint:29::printf_number_buffer:108 [ main::first#0 main::col#3 main::row#3 main::cnt#1 rand_state#11 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_uint::uvalue#0 = main::rnd#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:7::printf_ulong:47::printf_number_buffer:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::format_upper_case#10 printf_number_buffer::padding#1 ] { { printf_ulong::uvalue#0 = main::cnt#1 } { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a
|
||||
Statement [189] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2 [ printf_buffer ultoa::buffer#11 ultoa::$11 ] ( main:7::printf_ulong:47::ultoa:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer ultoa::buffer#11 ultoa::$11 ] { { printf_ulong::uvalue#0 = main::cnt#1 ultoa::value#1 } } ) always clobbers reg byte a
|
||||
Statement [190] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11) [ printf_buffer ultoa::buffer#11 ] ( main:7::printf_ulong:47::ultoa:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer ultoa::buffer#11 ] { { printf_ulong::uvalue#0 = main::cnt#1 ultoa::value#1 } } ) always clobbers reg byte a reg byte y
|
||||
@ -7715,55 +7713,55 @@ Uplifting [printf_padding] best 227947 combination zp[1]:54 [ printf_padding::i#
|
||||
Uplifting [cputs] best 227047 combination zp[2]:17 [ cputs::s#4 cputs::s#5 cputs::s#0 ] reg byte a [ cputs::c#1 ]
|
||||
Uplifting [utoa] best 225743 combination zp[2]:28 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:25 [ utoa::value#2 utoa::value#6 utoa::value#1 utoa::value#0 ] zp[1]:24 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:125 [ utoa::digit_value#0 ] reg byte a [ utoa::$11 ] zp[2]:122 [ utoa::buffer#3 ]
|
||||
Uplifting [ultoa] best 225609 combination zp[2]:43 [ ultoa::buffer#11 ultoa::buffer#14 ultoa::buffer#4 ] zp[4]:38 [ ultoa::value#2 ultoa::value#6 ultoa::value#1 ultoa::value#0 ] zp[1]:37 [ ultoa::digit#2 ultoa::digit#1 ] reg byte a [ ultoa::$10 ] reg byte x [ ultoa::started#2 ultoa::started#4 ] zp[4]:141 [ ultoa::digit_value#0 ] reg byte a [ ultoa::$11 ] zp[2]:138 [ ultoa::buffer#3 ]
|
||||
Uplifting [printf_number_buffer] best 225598 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:135 [ printf_number_buffer::$19 ] zp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] reg byte x [ printf_number_buffer::format_min_length#2 ] zp[1]:32 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:31 [ printf_number_buffer::format_justify_left#10 ] zp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 225596 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:135 [ printf_number_buffer::$19 ] zp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] reg byte x [ printf_number_buffer::format_min_length#2 ] zp[1]:32 [ printf_number_buffer::format_zero_padding#10 ] zp[1]:31 [ printf_number_buffer::format_justify_left#10 ] zp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Limited combination testing to 100 combinations of 256 possible.
|
||||
Uplifting [clrscr] best 224008 combination reg byte y [ clrscr::c#2 clrscr::c#1 ] zp[2]:13 [ clrscr::line_cols#5 clrscr::line_cols#1 ] zp[2]:11 [ clrscr::line_text#5 clrscr::line_text#1 ] reg byte x [ clrscr::l#2 clrscr::l#1 ]
|
||||
Uplifting [gotoxy] best 223921 combination reg byte x [ gotoxy::x#5 gotoxy::x#4 gotoxy::x#2 ] zp[2]:111 [ gotoxy::$8 ] zp[2]:113 [ gotoxy::$9 ] zp[2]:117 [ gotoxy::$5 ] zp[2]:119 [ gotoxy::$6 ] zp[2]:109 [ gotoxy::$7 ] reg byte a [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] zp[2]:115 [ gotoxy::line_offset#0 ]
|
||||
Uplifting [rand] best 223921 combination zp[2]:97 [ rand::$0 ] zp[2]:101 [ rand::$1 ] zp[2]:105 [ rand::$2 ] zp[2]:107 [ rand::return#0 ] zp[2]:90 [ rand::return#3 ] zp[2]:83 [ rand::return#2 ]
|
||||
Uplifting [main] best 223861 combination zp[1]:7 [ main::row#3 main::row#7 main::row#1 ] zp[1]:6 [ main::col#3 main::col#7 main::col#1 ] zp[4]:2 [ main::cnt#2 main::cnt#1 ] zp[2]:8 [ main::rnd#2 main::rnd#5 main::rnd#1 ] reg byte a [ main::$18 ] zp[2]:85 [ main::first#0 ]
|
||||
Uplifting [printf_uint] best 223861 combination zp[2]:88 [ printf_uint::uvalue#0 ]
|
||||
Uplifting [textcolor] best 223849 combination reg byte a [ textcolor::color#3 ]
|
||||
Uplifting [printf_ulong] best 223849 combination zp[4]:92 [ printf_ulong::uvalue#0 ]
|
||||
Uplifting [RADIX] best 223849 combination
|
||||
Uplifting [MOS6526_CIA] best 223849 combination
|
||||
Uplifting [MOS6569_VICII] best 223849 combination
|
||||
Uplifting [MOS6581_SID] best 223849 combination
|
||||
Uplifting [cputln] best 223849 combination
|
||||
Uplifting [cscroll] best 223849 combination
|
||||
Uplifting [printf_format_number] best 223849 combination
|
||||
Uplifting [printf_buffer_number] best 223849 combination
|
||||
Uplifting [printf_format_string] best 223849 combination
|
||||
Uplifting [__start] best 223849 combination
|
||||
Uplifting [clrscr] best 224006 combination reg byte y [ clrscr::c#2 clrscr::c#1 ] zp[2]:13 [ clrscr::line_cols#5 clrscr::line_cols#1 ] zp[2]:11 [ clrscr::line_text#5 clrscr::line_text#1 ] reg byte x [ clrscr::l#2 clrscr::l#1 ]
|
||||
Uplifting [gotoxy] best 223919 combination reg byte x [ gotoxy::x#5 gotoxy::x#4 gotoxy::x#2 ] zp[2]:111 [ gotoxy::$8 ] zp[2]:113 [ gotoxy::$9 ] zp[2]:117 [ gotoxy::$5 ] zp[2]:119 [ gotoxy::$6 ] zp[2]:109 [ gotoxy::$7 ] reg byte a [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] zp[2]:115 [ gotoxy::line_offset#0 ]
|
||||
Uplifting [rand] best 223919 combination zp[2]:97 [ rand::$0 ] zp[2]:101 [ rand::$1 ] zp[2]:105 [ rand::$2 ] zp[2]:107 [ rand::return#0 ] zp[2]:90 [ rand::return#3 ] zp[2]:83 [ rand::return#2 ]
|
||||
Uplifting [main] best 223859 combination zp[1]:7 [ main::row#3 main::row#7 main::row#1 ] zp[1]:6 [ main::col#3 main::col#7 main::col#1 ] zp[4]:2 [ main::cnt#2 main::cnt#1 ] zp[2]:8 [ main::rnd#2 main::rnd#5 main::rnd#1 ] reg byte a [ main::$18 ] zp[2]:85 [ main::first#0 ]
|
||||
Uplifting [printf_uint] best 223859 combination zp[2]:88 [ printf_uint::uvalue#0 ]
|
||||
Uplifting [textcolor] best 223847 combination reg byte a [ textcolor::color#3 ]
|
||||
Uplifting [printf_ulong] best 223847 combination zp[4]:92 [ printf_ulong::uvalue#0 ]
|
||||
Uplifting [RADIX] best 223847 combination
|
||||
Uplifting [MOS6526_CIA] best 223847 combination
|
||||
Uplifting [MOS6569_VICII] best 223847 combination
|
||||
Uplifting [MOS6581_SID] best 223847 combination
|
||||
Uplifting [cputln] best 223847 combination
|
||||
Uplifting [cscroll] best 223847 combination
|
||||
Uplifting [printf_format_number] best 223847 combination
|
||||
Uplifting [printf_buffer_number] best 223847 combination
|
||||
Uplifting [printf_format_string] best 223847 combination
|
||||
Uplifting [__start] best 223847 combination
|
||||
Attempting to uplift remaining variables inzp[1]:77 [ conio_cursor_y ]
|
||||
Uplifting [] best 223849 combination zp[1]:77 [ conio_cursor_y ]
|
||||
Uplifting [] best 223847 combination zp[1]:77 [ conio_cursor_y ]
|
||||
Attempting to uplift remaining variables inzp[1]:82 [ conio_textcolor ]
|
||||
Uplifting [] best 223849 combination zp[1]:82 [ conio_textcolor ]
|
||||
Uplifting [] best 223847 combination zp[1]:82 [ conio_textcolor ]
|
||||
Attempting to uplift remaining variables inzp[1]:54 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Uplifting [printf_padding] best 223849 combination zp[1]:54 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Uplifting [printf_padding] best 223847 combination zp[1]:54 [ printf_padding::i#2 printf_padding::i#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:76 [ conio_cursor_x ]
|
||||
Uplifting [] best 223849 combination zp[1]:76 [ conio_cursor_x ]
|
||||
Uplifting [] best 223847 combination zp[1]:76 [ conio_cursor_x ]
|
||||
Attempting to uplift remaining variables inzp[1]:24 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Uplifting [utoa] best 223849 combination zp[1]:24 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Uplifting [utoa] best 223847 combination zp[1]:24 [ utoa::digit#2 utoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:52 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Uplifting [printf_padding] best 223849 combination zp[1]:52 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Uplifting [printf_padding] best 223847 combination zp[1]:52 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:53 [ printf_padding::pad#5 ]
|
||||
Uplifting [printf_padding] best 223849 combination zp[1]:53 [ printf_padding::pad#5 ]
|
||||
Uplifting [printf_padding] best 223847 combination zp[1]:53 [ printf_padding::pad#5 ]
|
||||
Attempting to uplift remaining variables inzp[1]:37 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Uplifting [ultoa] best 223849 combination zp[1]:37 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Uplifting [ultoa] best 223847 combination zp[1]:37 [ ultoa::digit#2 ultoa::digit#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Uplifting [printf_number_buffer] best 223849 combination zp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Uplifting [printf_number_buffer] best 223847 combination zp[1]:36 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ]
|
||||
Uplifting [printf_number_buffer] best 223849 combination zp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ]
|
||||
Uplifting [printf_number_buffer] best 223847 combination zp[1]:33 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ]
|
||||
Attempting to uplift remaining variables inzp[1]:32 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Uplifting [printf_number_buffer] best 223849 combination zp[1]:32 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Uplifting [printf_number_buffer] best 223847 combination zp[1]:32 [ printf_number_buffer::format_zero_padding#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:31 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Uplifting [printf_number_buffer] best 223849 combination zp[1]:31 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Uplifting [printf_number_buffer] best 223847 combination zp[1]:31 [ printf_number_buffer::format_justify_left#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 223849 combination zp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Uplifting [printf_number_buffer] best 223847 combination zp[1]:34 [ printf_number_buffer::format_upper_case#10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:7 [ main::row#3 main::row#7 main::row#1 ]
|
||||
Uplifting [main] best 223849 combination zp[1]:7 [ main::row#3 main::row#7 main::row#1 ]
|
||||
Uplifting [main] best 223847 combination zp[1]:7 [ main::row#3 main::row#7 main::row#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:6 [ main::col#3 main::col#7 main::col#1 ]
|
||||
Uplifting [main] best 223849 combination zp[1]:6 [ main::col#3 main::col#7 main::col#1 ]
|
||||
Uplifting [main] best 223847 combination zp[1]:6 [ main::col#3 main::col#7 main::col#1 ]
|
||||
Coalescing zero page register [ zp[4]:2 [ main::cnt#2 main::cnt#1 ] ] with [ zp[4]:92 [ printf_ulong::uvalue#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:8 [ main::rnd#2 main::rnd#5 main::rnd#1 ] ] with [ zp[2]:88 [ printf_uint::uvalue#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:8 [ main::rnd#2 main::rnd#5 main::rnd#1 printf_uint::uvalue#0 ] ] with [ zp[2]:90 [ rand::return#3 ] ] - score: 1
|
||||
@ -8780,8 +8778,7 @@ printf_number_buffer: {
|
||||
// [154] (word~) printf_number_buffer::$19 ← (word) strlen::return#2
|
||||
// [155] (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
|
||||
ldy.z __19
|
||||
// [156] 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
|
||||
@ -10586,7 +10583,7 @@ mem[12] [ printf_buffer ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 189523
|
||||
Score: 189521
|
||||
|
||||
// File Comments
|
||||
// Test the pseudorandom number generator in stdlib.h
|
||||
@ -11477,8 +11474,7 @@ printf_number_buffer: {
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// [155] (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
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
// [156] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@13 -- vbuc1_eq_vbuz1_then_la1
|
||||
lda #0
|
||||
|
@ -346,8 +346,7 @@ printf_number_buffer: {
|
||||
// strlen(buffer.digits)
|
||||
// len = (signed char)strlen(buffer.digits)
|
||||
// There is a minimum length - work out the padding
|
||||
lda.z __19
|
||||
tay
|
||||
ldy.z __19
|
||||
// if(buffer.sign)
|
||||
lda #0
|
||||
cmp.z buffer_sign
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user