mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-05 07:40:39 +00:00
Added MAKEWORD() and MAKELONG(). Removed support for initializer lists for initializing word/dword. Closes #668
This commit is contained in:
parent
ff770cb0d7
commit
1eb61b9c9d
@ -108,7 +108,7 @@ void init_render_index() {
|
||||
// - pixels: The pixel data to set
|
||||
void render(char xcol, char ypos, char pixels) {
|
||||
char ytile = ypos/4;
|
||||
char * render_index_xcol = (char*){ BYTE1(RENDER_INDEX) + xcol, ytile*2 };
|
||||
char * render_index_xcol = (char*)MAKEWORD( BYTE1(RENDER_INDEX) + xcol, ytile*2 );
|
||||
unsigned int canvas_offset = MAKEWORD( render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] );
|
||||
char * canvas1 = SPRITES_1 + canvas_offset;
|
||||
char * canvas2 = SPRITES_2 + canvas_offset;
|
||||
@ -134,7 +134,7 @@ void render(char xcol, char ypos, char pixels) {
|
||||
void render_tiles(char xcol, char ytile, char tile_left, char tile_right) {
|
||||
char * tile_left_pixels = TILES_LEFT + tile_left*4;
|
||||
char * tile_right_pixels = TILES_RIGHT + tile_right*4;
|
||||
char * render_index_xcol = (char*){ BYTE1(RENDER_INDEX) + xcol, ytile*2 };
|
||||
char * render_index_xcol = (char*)MAKEWORD( BYTE1(RENDER_INDEX) + xcol, ytile*2 );
|
||||
unsigned int canvas_offset = MAKEWORD( render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] );
|
||||
char * canvas1 = SPRITES_1 + canvas_offset;
|
||||
char * canvas2 = SPRITES_2 + canvas_offset;
|
||||
|
@ -683,7 +683,7 @@ div32u16u: {
|
||||
jsr divr16u
|
||||
// divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
lda.z quotient_hi+1
|
||||
|
@ -7177,7 +7177,7 @@ div32u16u: {
|
||||
// div32u16u::@2
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// [141] div32u16u::quotient_lo#0 = divr16u::return#3
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
// [142] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
|
@ -720,7 +720,7 @@ div32u16u: {
|
||||
jsr divr16u
|
||||
// divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
lda.z quotient_hi+1
|
||||
|
@ -7551,7 +7551,7 @@ div32u16u: {
|
||||
// div32u16u::@2
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// [150] div32u16u::quotient_lo#0 = divr16u::return#3
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
// [151] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
|
@ -2965,7 +2965,7 @@ form_field_ptr: {
|
||||
.label return = $27
|
||||
// byte y = form_fields_y[field_idx]
|
||||
ldy form_fields_y,x
|
||||
// byte* line = (byte*) { form_line_hi[y], form_line_lo[y] }
|
||||
// MAKEWORD( form_line_hi[y], form_line_lo[y] )
|
||||
lda form_line_hi,y
|
||||
sta.z line+1
|
||||
lda form_line_lo,y
|
||||
@ -3110,10 +3110,10 @@ sgn_u16: {
|
||||
// Plot a single dot in the bitmap
|
||||
// bitmap_plot(word zp($d) x, byte register(X) y)
|
||||
bitmap_plot: {
|
||||
.label __0 = $29
|
||||
.label __1 = $29
|
||||
.label plotter = $27
|
||||
.label x = $d
|
||||
// char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] }
|
||||
// MAKEWORD( bitmap_plot_yhi[y], bitmap_plot_ylo[y] )
|
||||
lda bitmap_plot_yhi,x
|
||||
sta.z plotter+1
|
||||
lda bitmap_plot_ylo,x
|
||||
@ -3121,17 +3121,17 @@ bitmap_plot: {
|
||||
// x & $fff8
|
||||
lda.z x
|
||||
and #<$fff8
|
||||
sta.z __0
|
||||
sta.z __1
|
||||
lda.z x+1
|
||||
and #>$fff8
|
||||
sta.z __0+1
|
||||
sta.z __1+1
|
||||
// plotter += ( x & $fff8 )
|
||||
clc
|
||||
lda.z plotter
|
||||
adc.z __0
|
||||
adc.z __1
|
||||
sta.z plotter
|
||||
lda.z plotter+1
|
||||
adc.z __0+1
|
||||
adc.z __1+1
|
||||
sta.z plotter+1
|
||||
// BYTE0(x)
|
||||
ldx.z x
|
||||
|
@ -1671,10 +1671,10 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li
|
||||
[785] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 )
|
||||
[785] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 )
|
||||
[786] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
|
||||
[787] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
|
||||
[788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
|
||||
[789] bitmap_plot::$1 = byte0 bitmap_plot::x#4
|
||||
[790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
|
||||
[787] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
|
||||
[788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1
|
||||
[789] bitmap_plot::$2 = byte0 bitmap_plot::x#4
|
||||
[790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
|
||||
to:bitmap_plot::@return
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
[791] return
|
||||
|
@ -615,11 +615,12 @@ void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
|
||||
bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 )
|
||||
bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 )
|
||||
bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] }
|
||||
bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
|
||||
bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0
|
||||
bitmap_plot::$1 = byte0 bitmap_plot::x#4
|
||||
*bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
|
||||
bitmap_plot::$0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
|
||||
bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0
|
||||
bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
|
||||
bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$1
|
||||
bitmap_plot::$2 = byte0 bitmap_plot::x#4
|
||||
*bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
|
||||
to:bitmap_plot::@return
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
return
|
||||
@ -2905,10 +2906,11 @@ byte* form_field_ptr(byte form_field_ptr::field_idx)
|
||||
form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@2
|
||||
form_field_ptr::field_idx#2 = phi( form_control/form_field_ptr::field_idx#1, form_render_values::@2/form_field_ptr::field_idx#0 )
|
||||
form_field_ptr::y#0 = form_fields_y[form_field_ptr::field_idx#2]
|
||||
form_field_ptr::line#0 = (byte*){ form_line_hi[form_field_ptr::y#0], form_line_lo[form_field_ptr::y#0] }
|
||||
form_field_ptr::$0 = form_line_hi[form_field_ptr::y#0] w= form_line_lo[form_field_ptr::y#0]
|
||||
form_field_ptr::line#0 = (byte*)form_field_ptr::$0
|
||||
form_field_ptr::x#0 = form_fields_x[form_field_ptr::field_idx#2]
|
||||
form_field_ptr::$0 = form_field_ptr::line#0 + form_field_ptr::x#0
|
||||
form_field_ptr::field#0 = form_field_ptr::$0
|
||||
form_field_ptr::$1 = form_field_ptr::line#0 + form_field_ptr::x#0
|
||||
form_field_ptr::field#0 = form_field_ptr::$1
|
||||
form_field_ptr::return#0 = form_field_ptr::field#0
|
||||
to:form_field_ptr::@return
|
||||
form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr
|
||||
@ -3713,8 +3715,9 @@ word bitmap_line::y2#7
|
||||
word bitmap_line::y2#8
|
||||
word bitmap_line::y2#9
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
number~ bitmap_plot::$0
|
||||
byte~ bitmap_plot::$1
|
||||
word~ bitmap_plot::$0
|
||||
number~ bitmap_plot::$1
|
||||
byte~ bitmap_plot::$2
|
||||
byte* bitmap_plot::plotter
|
||||
byte* bitmap_plot::plotter#0
|
||||
byte* bitmap_plot::plotter#1
|
||||
@ -4034,7 +4037,8 @@ byte form_field_idx#7
|
||||
byte form_field_idx#8
|
||||
byte form_field_idx#9
|
||||
byte* form_field_ptr(byte form_field_ptr::field_idx)
|
||||
byte*~ form_field_ptr::$0
|
||||
word~ form_field_ptr::$0
|
||||
byte*~ form_field_ptr::$1
|
||||
byte* form_field_ptr::field
|
||||
byte* form_field_ptr::field#0
|
||||
byte form_field_ptr::field_idx
|
||||
@ -5547,9 +5551,6 @@ word sgn_u16::w#0
|
||||
word sgn_u16::w#1
|
||||
word sgn_u16::w#2
|
||||
|
||||
Fixing inline constructor with bitmap_plot::$2 = (byte)bitmap_plot_yhi[bitmap_plot::y#4] w= (byte)bitmap_plot_ylo[bitmap_plot::y#4]
|
||||
Fixing inline constructor with form_field_ptr::$1 = (byte)form_line_hi[form_field_ptr::y#0] w= (byte)form_line_lo[form_field_ptr::y#0]
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) 0 in
|
||||
Adding number conversion cast (unumber) 1 in
|
||||
Adding number conversion cast (unumber) 2 in
|
||||
@ -5626,8 +5627,8 @@ Adding number conversion cast (unumber) $10 in bitmap_clear::$0 = bitmap_clear::
|
||||
Adding number conversion cast (unumber) bitmap_clear::$0 in bitmap_clear::$0 = bitmap_clear::fgcol#1 * (unumber)$10
|
||||
Adding number conversion cast (unumber) bitmap_clear::$1 in bitmap_clear::$1 = bitmap_clear::$0 + bitmap_clear::bgcol#1
|
||||
Adding number conversion cast (unumber) 0 in memset::c#2 = 0
|
||||
Adding number conversion cast (unumber) $fff8 in bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
|
||||
Adding number conversion cast (unumber) bitmap_plot::$0 in bitmap_plot::$0 = bitmap_plot::x#4 & (unumber)$fff8
|
||||
Adding number conversion cast (unumber) $fff8 in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
|
||||
Adding number conversion cast (unumber) bitmap_plot::$1 in bitmap_plot::$1 = bitmap_plot::x#4 & (unumber)$fff8
|
||||
Adding number conversion cast (unumber) 0 in bitmap_line::$4 = bitmap_line::dx#1 == 0
|
||||
Adding number conversion cast (unumber) 0 in bitmap_line::$5 = bitmap_line::dy#0 == 0
|
||||
Adding number conversion cast (unumber) 2 in bitmap_line::$20 = bitmap_line::dy#2 / 2
|
||||
@ -6001,8 +6002,6 @@ Simplifying constant integer cast 7
|
||||
Simplifying constant integer cast 7
|
||||
Simplifying constant integer cast $10
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast bitmap_plot_yhi[bitmap_plot::y#4]
|
||||
Simplifying constant integer cast bitmap_plot_ylo[bitmap_plot::y#4]
|
||||
Simplifying constant integer cast $fff8
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 0
|
||||
@ -6170,8 +6169,6 @@ Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast $ff
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast $28
|
||||
Simplifying constant integer cast form_line_hi[form_field_ptr::y#0]
|
||||
Simplifying constant integer cast form_line_lo[form_field_ptr::y#0]
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast FORM_CURSOR_BLINK/(snumber)2
|
||||
Simplifying constant integer cast 2
|
||||
@ -6433,7 +6430,7 @@ Inferred type updated to byte in bitmap_init::$5 = bitmap_init::$3 | bitmap_init
|
||||
Inferred type updated to byte in bitmap_init::$7 = bitmap_init::y#2 & 7
|
||||
Inferred type updated to byte in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10
|
||||
Inferred type updated to byte in bitmap_clear::$1 = bitmap_clear::$0 + bitmap_clear::bgcol#1
|
||||
Inferred type updated to word in bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
|
||||
Inferred type updated to word in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
|
||||
Inferred type updated to word in bitmap_line::$20 = bitmap_line::dy#2 / 2
|
||||
Inferred type updated to word in bitmap_line::$15 = bitmap_line::dx#3 / 2
|
||||
Inferred type updated to byte in abs_u16::$1 = abs_u16::$0 & $80
|
||||
@ -6865,7 +6862,7 @@ Alias form_field_idx#15 = form_field_idx#3
|
||||
Alias form_mode::preset_current#1 = form_mode::preset_current#8 form_mode::preset_current#7
|
||||
Alias form_set_screen::line#0 = form_set_screen::screen#1
|
||||
Alias form_set_screen::line#1 = form_set_screen::$2
|
||||
Alias form_field_ptr::return#0 = form_field_ptr::field#0 form_field_ptr::$0 form_field_ptr::return#4 form_field_ptr::return#1
|
||||
Alias form_field_ptr::return#0 = form_field_ptr::field#0 form_field_ptr::$1 form_field_ptr::return#4 form_field_ptr::return#1
|
||||
Alias form_render_values::idx#2 = form_render_values::idx#3 form_render_values::idx#4
|
||||
Alias form_field_ptr::return#2 = form_field_ptr::return#5
|
||||
Alias form_render_values::field#0 = form_render_values::$1
|
||||
@ -7751,10 +7748,10 @@ Successful SSA optimization Pass2ConstantIdentification
|
||||
Inlining Noop Cast [38] memset::$4 = (byte*)memset::str#4 keeping memset::str#4
|
||||
Inlining Noop Cast [40] memset::dst#0 = (byte*)memset::str#4 keeping memset::str#4
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Inlining Noop Cast [140] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0
|
||||
Inlining Noop Cast [140] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 keeping bitmap_plot::plotter#0
|
||||
Inlining Noop Cast [353] gfx_mode::$76 = (word)gfx_mode::$40 keeping gfx_mode::$76
|
||||
Inlining Noop Cast [360] gfx_mode::$77 = (word)gfx_mode::$43 keeping gfx_mode::$77
|
||||
Inlining Noop Cast [670] form_field_ptr::line#0 = (byte*)form_field_ptr::$1 keeping form_field_ptr::line#0
|
||||
Inlining Noop Cast [670] form_field_ptr::line#0 = (byte*)form_field_ptr::$0 keeping form_field_ptr::line#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Rewriting division to use shift [168] bitmap_line::e1#0 = bitmap_line::dy#0 / 2
|
||||
Rewriting division to use shift [169] bitmap_line::e#0 = bitmap_line::dx#0 / 2
|
||||
@ -10690,10 +10687,10 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li
|
||||
[785] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 )
|
||||
[785] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 )
|
||||
[786] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
|
||||
[787] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8
|
||||
[788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
|
||||
[789] bitmap_plot::$1 = byte0 bitmap_plot::x#4
|
||||
[790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
|
||||
[787] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
|
||||
[788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1
|
||||
[789] bitmap_plot::$2 = byte0 bitmap_plot::x#4
|
||||
[790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
|
||||
to:bitmap_plot::@return
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
[791] return
|
||||
@ -10791,8 +10788,8 @@ word bitmap_line::y1#0 1640.2
|
||||
word bitmap_line::y2
|
||||
word bitmap_line::y2#0 31906.375
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
word~ bitmap_plot::$0 2.0000002E7
|
||||
byte~ bitmap_plot::$1 2.0000002E7
|
||||
word~ bitmap_plot::$1 2.0000002E7
|
||||
byte~ bitmap_plot::$2 2.0000002E7
|
||||
byte* bitmap_plot::plotter
|
||||
word bitmap_plot::plotter#0 5000000.5
|
||||
byte* bitmap_plot::plotter#1 1.50000015E7
|
||||
@ -11579,9 +11576,9 @@ Added variable abs_u16::$1 to live range equivalence class [ abs_u16::$1 ]
|
||||
Added variable sgn_u16::$0 to live range equivalence class [ sgn_u16::$0 ]
|
||||
Added variable sgn_u16::$1 to live range equivalence class [ sgn_u16::$1 ]
|
||||
Added variable bitmap_plot::plotter#0 to live range equivalence class [ bitmap_plot::plotter#0 ]
|
||||
Added variable bitmap_plot::$0 to live range equivalence class [ bitmap_plot::$0 ]
|
||||
Added variable bitmap_plot::plotter#1 to live range equivalence class [ bitmap_plot::plotter#1 ]
|
||||
Added variable bitmap_plot::$1 to live range equivalence class [ bitmap_plot::$1 ]
|
||||
Added variable bitmap_plot::plotter#1 to live range equivalence class [ bitmap_plot::plotter#1 ]
|
||||
Added variable bitmap_plot::$2 to live range equivalence class [ bitmap_plot::$2 ]
|
||||
Complete equivalence classes
|
||||
[ form_mode::i#2 form_mode::i#1 ]
|
||||
[ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ]
|
||||
@ -11819,9 +11816,9 @@ Complete equivalence classes
|
||||
[ sgn_u16::$0 ]
|
||||
[ sgn_u16::$1 ]
|
||||
[ bitmap_plot::plotter#0 ]
|
||||
[ bitmap_plot::$0 ]
|
||||
[ bitmap_plot::plotter#1 ]
|
||||
[ bitmap_plot::$1 ]
|
||||
[ bitmap_plot::plotter#1 ]
|
||||
[ bitmap_plot::$2 ]
|
||||
Allocated zp[1]:2 [ form_mode::i#2 form_mode::i#1 ]
|
||||
Allocated zp[1]:3 [ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ]
|
||||
Allocated zp[1]:4 [ form_field_idx#30 form_field_idx#1 form_field_idx#19 form_field_idx#33 form_field_idx#5 form_field_idx#4 ]
|
||||
@ -12058,9 +12055,9 @@ Allocated zp[1]:327 [ abs_u16::$1 ]
|
||||
Allocated zp[1]:328 [ sgn_u16::$0 ]
|
||||
Allocated zp[1]:329 [ sgn_u16::$1 ]
|
||||
Allocated zp[2]:330 [ bitmap_plot::plotter#0 ]
|
||||
Allocated zp[2]:332 [ bitmap_plot::$0 ]
|
||||
Allocated zp[2]:332 [ bitmap_plot::$1 ]
|
||||
Allocated zp[2]:334 [ bitmap_plot::plotter#1 ]
|
||||
Allocated zp[1]:336 [ bitmap_plot::$1 ]
|
||||
Allocated zp[1]:336 [ bitmap_plot::$2 ]
|
||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Equivalence Class zp[1]:285 [ bitmap_init::$4 ] has ALU potential.
|
||||
Statement [1] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
@ -12365,9 +12362,9 @@ Removing always clobbered register reg byte a as potential for zp[1]:323 [ keybo
|
||||
Statement [769] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] [ keyboard_event_pressed::return#10 ] ( gfx_mode:11::keyboard_event_scan:219::keyboard_event_pressed:584 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:489::keyboard_event_pressed:584 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:219::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:489::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:219::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:489::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:219::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:489::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a
|
||||
Statement [775] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::abs_u16:659 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::abs_u16:663 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a
|
||||
Statement [786] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [787] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] [ ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y
|
||||
Statement [787] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y
|
||||
Removing always clobbered register reg byte y as potential for zp[1]:43 [ gfx_init_VICII_bitmap::l#2 gfx_init_VICII_bitmap::l#1 ]
|
||||
Statement [1] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [2] *PROCPORT = PROCPORT_RAM_IO [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
@ -12582,9 +12579,9 @@ Statement [768] keyboard_event_pressed::$1 = keyboard_event_pressed::keycode#4 &
|
||||
Statement [769] keyboard_event_pressed::return#10 = keyboard_event_pressed::row_bits#0 & keyboard_matrix_col_bitmask[keyboard_event_pressed::$1] [ keyboard_event_pressed::return#10 ] ( gfx_mode:11::keyboard_event_scan:219::keyboard_event_pressed:584 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:489::keyboard_event_pressed:584 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#0 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:219::keyboard_event_pressed:590 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } form_mode:9::form_control:86::keyboard_event_scan:489::keyboard_event_pressed:590 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#19 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#1 = keyboard_event_pressed::return#10 } } gfx_mode:11::keyboard_event_scan:219::keyboard_event_pressed:596 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } form_mode:9::form_control:86::keyboard_event_scan:489::keyboard_event_pressed:596 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#20 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#2 } } gfx_mode:11::keyboard_event_scan:219::keyboard_event_pressed:602 [ form_cursor_count#17 form_field_idx#19 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { keyboard_events_size#25 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } form_mode:9::form_control:86::keyboard_event_scan:489::keyboard_event_pressed:602 [ form_mode::preset_current#6 form_field_idx#30 form_control::field#0 form_cursor_count#16 keyboard_events_size#100 keyboard_modifiers#21 keyboard_event_pressed::return#10 ] { { form_control::return#0 = form_control::return#2 } { keyboard_events_size#49 = keyboard_events_size#98 } { keyboard_event_pressed::return#10 = keyboard_event_pressed::return#3 } } ) always clobbers reg byte a
|
||||
Statement [775] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::abs_u16:659 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::abs_u16:663 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a
|
||||
Statement [786] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [787] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] [ ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y
|
||||
Statement [787] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a
|
||||
Statement [790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:681 [ gfx_init_VICII_bitmap::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:692 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:698 [ gfx_init_VICII_bitmap::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } gfx_init:6::gfx_init_VICII_bitmap:28::bitmap_line:318::bitmap_plot:708 [ gfx_init_VICII_bitmap::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y
|
||||
Potential registers zp[1]:2 [ form_mode::i#2 form_mode::i#1 ] : zp[1]:2 , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:3 [ form_cursor_count#23 form_cursor_count#1 form_cursor_count#17 form_cursor_count#16 form_cursor_count#4 ] : zp[1]:3 , reg byte x ,
|
||||
Potential registers zp[1]:4 [ form_field_idx#30 form_field_idx#1 form_field_idx#19 form_field_idx#33 form_field_idx#5 form_field_idx#4 ] : zp[1]:4 , reg byte x ,
|
||||
@ -12821,9 +12818,9 @@ Potential registers zp[1]:327 [ abs_u16::$1 ] : zp[1]:327 , reg byte a , reg byt
|
||||
Potential registers zp[1]:328 [ sgn_u16::$0 ] : zp[1]:328 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:329 [ sgn_u16::$1 ] : zp[1]:329 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:330 [ bitmap_plot::plotter#0 ] : zp[2]:330 ,
|
||||
Potential registers zp[2]:332 [ bitmap_plot::$0 ] : zp[2]:332 ,
|
||||
Potential registers zp[2]:332 [ bitmap_plot::$1 ] : zp[2]:332 ,
|
||||
Potential registers zp[2]:334 [ bitmap_plot::plotter#1 ] : zp[2]:334 ,
|
||||
Potential registers zp[1]:336 [ bitmap_plot::$1 ] : zp[1]:336 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:336 [ bitmap_plot::$2 ] : zp[1]:336 , reg byte a , reg byte x , reg byte y ,
|
||||
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [keyboard_event_scan] 2,000,000,000,002: zp[1]:280 [ keyboard_event_scan::$15 ] 2,000,000,000,002: zp[1]:281 [ keyboard_event_scan::$16 ] 2,000,000,000,002: zp[1]:282 [ keyboard_event_scan::event_type#0 ] 2,000,000,000,002: zp[1]:283 [ keyboard_event_scan::$23 ] 1,785,714,285,716.07: zp[1]:101 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 1,190,384,615,389.25: zp[1]:102 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] 210,000,000,001.74: zp[1]:99 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 127,777,777,778.06: zp[1]:271 [ keyboard_event_scan::row_scan#0 ] 20,000,002: zp[1]:273 [ keyboard_event_scan::$0 ] 20,000,002: zp[1]:275 [ keyboard_event_scan::$3 ] 20,000,002: zp[1]:277 [ keyboard_event_scan::$6 ] 20,000,002: zp[1]:279 [ keyboard_event_scan::$9 ]
|
||||
@ -12834,7 +12831,7 @@ Uplift Scope [form_field_ptr] 3,000,000,003: zp[1]:315 [ form_field_ptr::y#0 ] 9
|
||||
Uplift Scope [keyboard_event_pressed] 200,000,002: zp[1]:322 [ keyboard_event_pressed::$0 ] 200,000,002: zp[1]:324 [ keyboard_event_pressed::$1 ] 100,000,001: zp[1]:323 [ keyboard_event_pressed::row_bits#0 ] 66,666,667.33: zp[1]:142 [ keyboard_event_pressed::keycode#4 ] 23,333,334.17: zp[1]:325 [ keyboard_event_pressed::return#10 ] 20,000,002: zp[1]:272 [ keyboard_event_pressed::return#0 ] 20,000,002: zp[1]:274 [ keyboard_event_pressed::return#1 ] 20,000,002: zp[1]:276 [ keyboard_event_pressed::return#2 ] 20,000,002: zp[1]:278 [ keyboard_event_pressed::return#3 ]
|
||||
Uplift Scope [apply_preset] 366,666,670.33: zp[1]:88 [ apply_preset::i#2 apply_preset::i#1 ] 20,000,000.2: zp[2]:86 [ apply_preset::preset#15 ] 100,910.18: zp[1]:154 [ apply_preset::idx#0 ]
|
||||
Uplift Scope [form_render_values] 300,000,003: zp[1]:81 [ form_render_values::idx#2 form_render_values::idx#1 ]
|
||||
Uplift Scope [bitmap_plot] 26,060,014: zp[1]:149 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 20,000,002: zp[2]:332 [ bitmap_plot::$0 ] 20,000,002: zp[1]:336 [ bitmap_plot::$1 ] 15,000,001.5: zp[2]:334 [ bitmap_plot::plotter#1 ] 7,525,005.5: zp[2]:150 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 5,000,000.5: zp[2]:330 [ bitmap_plot::plotter#0 ]
|
||||
Uplift Scope [bitmap_plot] 26,060,014: zp[1]:149 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 20,000,002: zp[2]:332 [ bitmap_plot::$1 ] 20,000,002: zp[1]:336 [ bitmap_plot::$2 ] 15,000,001.5: zp[2]:334 [ bitmap_plot::plotter#1 ] 7,525,005.5: zp[2]:150 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 5,000,000.5: zp[2]:330 [ bitmap_plot::plotter#0 ]
|
||||
Uplift Scope [keyboard_event_get] 22,752,502.75: zp[1]:104 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] 2,000,002: zp[1]:263 [ keyboard_event_get::return#4 ] 20,002: zp[1]:226 [ keyboard_event_get::return#3 ]
|
||||
Uplift Scope [bitmap_line] 6,908,834.24: zp[2]:112 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] 5,505,574.66: zp[2]:114 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] 5,255,340.77: zp[2]:110 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 5,255,340.77: zp[2]:116 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 84,444.64: zp[2]:294 [ bitmap_line::dy#0 ] 77,307.81: zp[2]:302 [ bitmap_line::sy#0 ] 76,000.18: zp[2]:290 [ bitmap_line::dx#0 ] 67,000.1: zp[2]:298 [ bitmap_line::sx#0 ] 31,906.38: zp[2]:245 [ bitmap_line::y2#0 ] 30,939.52: zp[2]:243 [ bitmap_line::x2#0 ]
|
||||
Uplift Scope [form_control] 2,000,002: zp[1]:262 [ form_control::$12 ] 2,000,002: zp[1]:265 [ form_control::$14 ] 2,000,002: zp[1]:266 [ form_control::$15 ] 2,000,002: zp[1]:267 [ form_control::$22 ] 2,000,002: zp[1]:268 [ form_control::$13 ] 1,333,334.67: zp[1]:264 [ form_control::key_event#0 ] 296,296.59: zp[2]:260 [ form_control::field#0 ] 200,002: zp[1]:152 [ form_control::return#0 ] 33,333.67: zp[1]:85 [ form_control::return#2 ]
|
||||
@ -12892,7 +12889,7 @@ Uplifting [keyboard_event_pressed] best 15159428 combination reg byte a [ keyboa
|
||||
Limited combination testing to 20 combinations of 147456 possible.
|
||||
Uplifting [apply_preset] best 15147097 combination reg byte y [ apply_preset::i#2 apply_preset::i#1 ] zp[2]:86 [ apply_preset::preset#15 ] reg byte a [ apply_preset::idx#0 ]
|
||||
Uplifting [form_render_values] best 15132097 combination reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ]
|
||||
Uplifting [bitmap_plot] best 15131482 combination reg byte x [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] zp[2]:332 [ bitmap_plot::$0 ] reg byte x [ bitmap_plot::$1 ] zp[2]:334 [ bitmap_plot::plotter#1 ] zp[2]:150 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] zp[2]:330 [ bitmap_plot::plotter#0 ]
|
||||
Uplifting [bitmap_plot] best 15131482 combination reg byte x [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] zp[2]:332 [ bitmap_plot::$1 ] reg byte x [ bitmap_plot::$2 ] zp[2]:334 [ bitmap_plot::plotter#1 ] zp[2]:150 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] zp[2]:330 [ bitmap_plot::plotter#0 ]
|
||||
Uplifting [keyboard_event_get] best 15130573 combination reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] zp[1]:263 [ keyboard_event_get::return#4 ] reg byte a [ keyboard_event_get::return#3 ]
|
||||
Limited combination testing to 20 combinations of 64 possible.
|
||||
Uplifting [bitmap_line] best 15130573 combination zp[2]:112 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] zp[2]:114 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] zp[2]:110 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] zp[2]:116 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] zp[2]:294 [ bitmap_line::dy#0 ] zp[2]:302 [ bitmap_line::sy#0 ] zp[2]:290 [ bitmap_line::dx#0 ] zp[2]:298 [ bitmap_line::sx#0 ] zp[2]:245 [ bitmap_line::y2#0 ] zp[2]:243 [ bitmap_line::x2#0 ]
|
||||
@ -13262,7 +13259,7 @@ Allocated (was zp[2]:316) zp[2]:35 [ form_field_ptr::line#0 sgn_u16::return#4 sg
|
||||
Allocated (was zp[1]:318) zp[1]:37 [ form_field_ptr::x#0 bitmap_init::$7 keyboard_event_scan::row_scan#0 gfx_init_screen3::$1 ]
|
||||
Allocated (was zp[1]:323) zp[1]:38 [ keyboard_event_pressed::row_bits#0 ]
|
||||
Allocated (was zp[2]:330) zp[2]:39 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ]
|
||||
Allocated (was zp[2]:332) zp[2]:41 [ bitmap_plot::$0 ]
|
||||
Allocated (was zp[2]:332) zp[2]:41 [ bitmap_plot::$1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
// File Comments
|
||||
@ -18322,7 +18319,7 @@ sgn_u16: {
|
||||
// Plot a single dot in the bitmap
|
||||
// bitmap_plot(word zp($d) x, byte register(X) y)
|
||||
bitmap_plot: {
|
||||
.label __0 = $29
|
||||
.label __1 = $29
|
||||
.label plotter = $27
|
||||
.label x = $d
|
||||
// [786] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
||||
@ -18330,24 +18327,24 @@ bitmap_plot: {
|
||||
sta.z plotter+1
|
||||
lda bitmap_plot_ylo,x
|
||||
sta.z plotter
|
||||
// [787] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
||||
// [787] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
||||
lda.z x
|
||||
and #<$fff8
|
||||
sta.z __0
|
||||
sta.z __1
|
||||
lda.z x+1
|
||||
and #>$fff8
|
||||
sta.z __0+1
|
||||
// [788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 -- pbuz1=pbuz1_plus_vwuz2
|
||||
sta.z __1+1
|
||||
// [788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2
|
||||
clc
|
||||
lda.z plotter
|
||||
adc.z __0
|
||||
adc.z __1
|
||||
sta.z plotter
|
||||
lda.z plotter+1
|
||||
adc.z __0+1
|
||||
adc.z __1+1
|
||||
sta.z plotter+1
|
||||
// [789] bitmap_plot::$1 = byte0 bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1
|
||||
// [789] bitmap_plot::$2 = byte0 bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1
|
||||
ldx.z x
|
||||
// [790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
||||
// [790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
||||
lda bitmap_plot_bit,x
|
||||
ldy #0
|
||||
ora (plotter),y
|
||||
@ -19645,8 +19642,8 @@ word bitmap_line::y1#0 y1 zp[2]:15 1640.2
|
||||
word bitmap_line::y2
|
||||
word bitmap_line::y2#0 y2 zp[2]:23 31906.375
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
word~ bitmap_plot::$0 zp[2]:41 2.0000002E7
|
||||
byte~ bitmap_plot::$1 reg byte x 2.0000002E7
|
||||
word~ bitmap_plot::$1 zp[2]:41 2.0000002E7
|
||||
byte~ bitmap_plot::$2 reg byte x 2.0000002E7
|
||||
byte* bitmap_plot::plotter
|
||||
word bitmap_plot::plotter#0 plotter zp[2]:39 5000000.5
|
||||
byte* bitmap_plot::plotter#1 plotter zp[2]:39 1.50000015E7
|
||||
@ -20426,8 +20423,8 @@ reg byte a [ abs_u16::$1 ]
|
||||
reg byte a [ sgn_u16::$0 ]
|
||||
reg byte a [ sgn_u16::$1 ]
|
||||
zp[2]:39 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ]
|
||||
zp[2]:41 [ bitmap_plot::$0 ]
|
||||
reg byte x [ bitmap_plot::$1 ]
|
||||
zp[2]:41 [ bitmap_plot::$1 ]
|
||||
reg byte x [ bitmap_plot::$2 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
@ -24972,7 +24969,7 @@ form_field_ptr: {
|
||||
// byte y = form_fields_y[field_idx]
|
||||
// [750] form_field_ptr::y#0 = form_fields_y[form_field_ptr::field_idx#2] -- vbuyy=pbuc1_derefidx_vbuxx
|
||||
ldy form_fields_y,x
|
||||
// byte* line = (byte*) { form_line_hi[y], form_line_lo[y] }
|
||||
// MAKEWORD( form_line_hi[y], form_line_lo[y] )
|
||||
// [751] form_field_ptr::line#0 = form_line_hi[form_field_ptr::y#0] w= form_line_lo[form_field_ptr::y#0] -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy
|
||||
lda form_line_hi,y
|
||||
sta.z line+1
|
||||
@ -25172,37 +25169,37 @@ sgn_u16: {
|
||||
// Plot a single dot in the bitmap
|
||||
// bitmap_plot(word zp($d) x, byte register(X) y)
|
||||
bitmap_plot: {
|
||||
.label __0 = $29
|
||||
.label __1 = $29
|
||||
.label plotter = $27
|
||||
.label x = $d
|
||||
// char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] }
|
||||
// MAKEWORD( bitmap_plot_yhi[y], bitmap_plot_ylo[y] )
|
||||
// [786] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
||||
lda bitmap_plot_yhi,x
|
||||
sta.z plotter+1
|
||||
lda bitmap_plot_ylo,x
|
||||
sta.z plotter
|
||||
// x & $fff8
|
||||
// [787] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
||||
// [787] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
||||
lda.z x
|
||||
and #<$fff8
|
||||
sta.z __0
|
||||
sta.z __1
|
||||
lda.z x+1
|
||||
and #>$fff8
|
||||
sta.z __0+1
|
||||
sta.z __1+1
|
||||
// plotter += ( x & $fff8 )
|
||||
// [788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 -- pbuz1=pbuz1_plus_vwuz2
|
||||
// [788] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2
|
||||
clc
|
||||
lda.z plotter
|
||||
adc.z __0
|
||||
adc.z __1
|
||||
sta.z plotter
|
||||
lda.z plotter+1
|
||||
adc.z __0+1
|
||||
adc.z __1+1
|
||||
sta.z plotter+1
|
||||
// BYTE0(x)
|
||||
// [789] bitmap_plot::$1 = byte0 bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1
|
||||
// [789] bitmap_plot::$2 = byte0 bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1
|
||||
ldx.z x
|
||||
// *plotter |= bitmap_plot_bit[BYTE0(x)]
|
||||
// [790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
||||
// [790] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
||||
lda bitmap_plot_bit,x
|
||||
ldy #0
|
||||
ora (plotter),y
|
||||
|
@ -184,8 +184,8 @@ word bitmap_line::y1#0 y1 zp[2]:15 1640.2
|
||||
word bitmap_line::y2
|
||||
word bitmap_line::y2#0 y2 zp[2]:23 31906.375
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
word~ bitmap_plot::$0 zp[2]:41 2.0000002E7
|
||||
byte~ bitmap_plot::$1 reg byte x 2.0000002E7
|
||||
word~ bitmap_plot::$1 zp[2]:41 2.0000002E7
|
||||
byte~ bitmap_plot::$2 reg byte x 2.0000002E7
|
||||
byte* bitmap_plot::plotter
|
||||
word bitmap_plot::plotter#0 plotter zp[2]:39 5000000.5
|
||||
byte* bitmap_plot::plotter#1 plotter zp[2]:39 1.50000015E7
|
||||
@ -965,5 +965,5 @@ reg byte a [ abs_u16::$1 ]
|
||||
reg byte a [ sgn_u16::$0 ]
|
||||
reg byte a [ sgn_u16::$1 ]
|
||||
zp[2]:39 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ]
|
||||
zp[2]:41 [ bitmap_plot::$0 ]
|
||||
reg byte x [ bitmap_plot::$1 ]
|
||||
zp[2]:41 [ bitmap_plot::$1 ]
|
||||
reg byte x [ bitmap_plot::$2 ]
|
||||
|
@ -3916,10 +3916,10 @@ render: {
|
||||
// ytile*2
|
||||
tya
|
||||
asl
|
||||
// char * render_index_xcol = (char*){ BYTE1(RENDER_INDEX) + xcol, ytile*2 }
|
||||
// MAKEWORD( BYTE1(RENDER_INDEX) + xcol, ytile*2 )
|
||||
stx.z render_index_xcol+1
|
||||
sta.z render_index_xcol
|
||||
// unsigned int canvas_offset = { render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] }
|
||||
// unsigned int canvas_offset = MAKEWORD( render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] )
|
||||
ldy #RENDER_OFFSET_CANVAS_HI
|
||||
lda (render_index_xcol),y
|
||||
sta.z canvas_offset+1
|
||||
@ -4063,10 +4063,10 @@ render_tiles: {
|
||||
// ytile*2
|
||||
lda.z ytile
|
||||
asl
|
||||
// char * render_index_xcol = (char*){ BYTE1(RENDER_INDEX) + xcol, ytile*2 }
|
||||
// MAKEWORD( BYTE1(RENDER_INDEX) + xcol, ytile*2 )
|
||||
stx.z render_index_xcol+1
|
||||
sta.z render_index_xcol
|
||||
// unsigned int canvas_offset = {render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] }
|
||||
// unsigned int canvas_offset = MAKEWORD( render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] )
|
||||
ldy #RENDER_OFFSET_CANVAS_HI
|
||||
lda (render_index_xcol),y
|
||||
sta.z canvas_offset+1
|
||||
|
@ -452,15 +452,17 @@ render: scope:[render] from done_run::@14 splash_show::@4
|
||||
render::ytile#0 = render::$0
|
||||
render::$1 = byte1 RENDER_INDEX + render::xcol#2
|
||||
render::$2 = render::ytile#0 * 2
|
||||
render::render_index_xcol#0 = (byte*){ render::$1, render::$2 }
|
||||
render::canvas_offset#0 = (word){ render::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI], render::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO] }
|
||||
render::$3 = SPRITES_1 + render::canvas_offset#0
|
||||
render::canvas1#0 = render::$3
|
||||
render::$4 = SPRITES_2 + render::canvas_offset#0
|
||||
render::canvas2#0 = render::$4
|
||||
render::$3 = render::$1 w= render::$2
|
||||
render::render_index_xcol#0 = (byte*)render::$3
|
||||
render::$4 = render::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI] w= render::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
||||
render::canvas_offset#0 = render::$4
|
||||
render::$5 = SPRITES_1 + render::canvas_offset#0
|
||||
render::canvas1#0 = render::$5
|
||||
render::$6 = SPRITES_2 + render::canvas_offset#0
|
||||
render::canvas2#0 = render::$6
|
||||
render::ypos_inc_offset#0 = render::render_index_xcol#0[RENDER_OFFSET_YPOS_INC]
|
||||
render::$5 = render::ypos#2 & 3
|
||||
render::ypix#0 = render::$5
|
||||
render::$7 = render::ypos#2 & 3
|
||||
render::ypix#0 = render::$7
|
||||
render::i#0 = 0
|
||||
to:render::@1
|
||||
render::@1: scope:[render] from render render::@2
|
||||
@ -470,8 +472,8 @@ render::@1: scope:[render] from render render::@2
|
||||
render::canvas1#4 = phi( render/render::canvas1#0, render::@2/render::canvas1#1 )
|
||||
render::ypix#1 = phi( render/render::ypix#0, render::@2/render::ypix#2 )
|
||||
render::i#2 = phi( render/render::i#0, render::@2/render::i#1 )
|
||||
render::$6 = render::i#2 < render::ypix#1
|
||||
if(render::$6) goto render::@2
|
||||
render::$8 = render::i#2 < render::ypix#1
|
||||
if(render::$8) goto render::@2
|
||||
to:render::@3
|
||||
render::@2: scope:[render] from render::@1
|
||||
render::pixels#5 = phi( render::@1/render::pixels#3 )
|
||||
@ -510,12 +512,14 @@ render_tiles: scope:[render_tiles] from level_show::@8
|
||||
render_tiles::tile_right_pixels#0 = render_tiles::$3
|
||||
render_tiles::$4 = byte1 RENDER_INDEX + render_tiles::xcol#1
|
||||
render_tiles::$5 = render_tiles::ytile#1 * 2
|
||||
render_tiles::render_index_xcol#0 = (byte*){ render_tiles::$4, render_tiles::$5 }
|
||||
render_tiles::canvas_offset#0 = (word){ render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI], render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO] }
|
||||
render_tiles::$6 = SPRITES_1 + render_tiles::canvas_offset#0
|
||||
render_tiles::canvas1#0 = render_tiles::$6
|
||||
render_tiles::$7 = SPRITES_2 + render_tiles::canvas_offset#0
|
||||
render_tiles::canvas2#0 = render_tiles::$7
|
||||
render_tiles::$6 = render_tiles::$4 w= render_tiles::$5
|
||||
render_tiles::render_index_xcol#0 = (byte*)render_tiles::$6
|
||||
render_tiles::$7 = render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI] w= render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
||||
render_tiles::canvas_offset#0 = render_tiles::$7
|
||||
render_tiles::$8 = SPRITES_1 + render_tiles::canvas_offset#0
|
||||
render_tiles::canvas1#0 = render_tiles::$8
|
||||
render_tiles::$9 = SPRITES_2 + render_tiles::canvas_offset#0
|
||||
render_tiles::canvas2#0 = render_tiles::$9
|
||||
render_tiles::ypos_inc_offset#0 = render_tiles::render_index_xcol#0[RENDER_OFFSET_YPOS_INC]
|
||||
render_tiles::y#0 = 0
|
||||
to:render_tiles::@1
|
||||
@ -526,8 +530,8 @@ render_tiles::@1: scope:[render_tiles] from render_tiles render_tiles::@2
|
||||
render_tiles::tile_right_pixels#2 = phi( render_tiles/render_tiles::tile_right_pixels#0, render_tiles::@2/render_tiles::tile_right_pixels#1 )
|
||||
render_tiles::tile_left_pixels#2 = phi( render_tiles/render_tiles::tile_left_pixels#0, render_tiles::@2/render_tiles::tile_left_pixels#1 )
|
||||
render_tiles::y#2 = phi( render_tiles/render_tiles::y#0, render_tiles::@2/render_tiles::y#1 )
|
||||
render_tiles::$8 = render_tiles::y#2 < 4
|
||||
if(render_tiles::$8) goto render_tiles::@2
|
||||
render_tiles::$10 = render_tiles::y#2 < 4
|
||||
if(render_tiles::$10) goto render_tiles::@2
|
||||
to:render_tiles::@return
|
||||
render_tiles::@2: scope:[render_tiles] from render_tiles::@1
|
||||
render_tiles::ypos_inc_offset#2 = phi( render_tiles::@1/render_tiles::ypos_inc_offset#3 )
|
||||
@ -536,8 +540,8 @@ render_tiles::@2: scope:[render_tiles] from render_tiles::@1
|
||||
render_tiles::tile_right_pixels#1 = phi( render_tiles::@1/render_tiles::tile_right_pixels#2 )
|
||||
render_tiles::y#3 = phi( render_tiles::@1/render_tiles::y#2 )
|
||||
render_tiles::tile_left_pixels#1 = phi( render_tiles::@1/render_tiles::tile_left_pixels#2 )
|
||||
render_tiles::$9 = render_tiles::tile_left_pixels#1[render_tiles::y#3] | render_tiles::tile_right_pixels#1[render_tiles::y#3]
|
||||
render_tiles::pixels#0 = render_tiles::$9
|
||||
render_tiles::$11 = render_tiles::tile_left_pixels#1[render_tiles::y#3] | render_tiles::tile_right_pixels#1[render_tiles::y#3]
|
||||
render_tiles::pixels#0 = render_tiles::$11
|
||||
*render_tiles::canvas1#2 = render_tiles::pixels#0
|
||||
*render_tiles::canvas2#2 = render_tiles::pixels#0
|
||||
render_tiles::canvas1#1 = render_tiles::canvas1#2 + RENDER_YPOS_INC[render_tiles::ypos_inc_offset#2]
|
||||
@ -5134,10 +5138,12 @@ void render(byte render::xcol , byte render::ypos , byte render::pixels)
|
||||
number~ render::$0
|
||||
byte~ render::$1
|
||||
number~ render::$2
|
||||
byte*~ render::$3
|
||||
byte*~ render::$4
|
||||
number~ render::$5
|
||||
bool~ render::$6
|
||||
word~ render::$3
|
||||
word~ render::$4
|
||||
byte*~ render::$5
|
||||
byte*~ render::$6
|
||||
number~ render::$7
|
||||
bool~ render::$8
|
||||
byte* render::canvas1
|
||||
byte* render::canvas1#0
|
||||
byte* render::canvas1#1
|
||||
@ -5188,14 +5194,16 @@ byte render::ytile#0
|
||||
void render_tiles(byte render_tiles::xcol , byte render_tiles::ytile , byte render_tiles::tile_left , byte render_tiles::tile_right)
|
||||
number~ render_tiles::$0
|
||||
byte*~ render_tiles::$1
|
||||
bool~ render_tiles::$10
|
||||
byte~ render_tiles::$11
|
||||
number~ render_tiles::$2
|
||||
byte*~ render_tiles::$3
|
||||
byte~ render_tiles::$4
|
||||
number~ render_tiles::$5
|
||||
byte*~ render_tiles::$6
|
||||
byte*~ render_tiles::$7
|
||||
bool~ render_tiles::$8
|
||||
byte~ render_tiles::$9
|
||||
word~ render_tiles::$6
|
||||
word~ render_tiles::$7
|
||||
byte*~ render_tiles::$8
|
||||
byte*~ render_tiles::$9
|
||||
byte* render_tiles::canvas1
|
||||
byte* render_tiles::canvas1#0
|
||||
byte* render_tiles::canvas1#1
|
||||
@ -5363,11 +5371,6 @@ byte splash_show::ypos#4
|
||||
volatile byte top_sprites_color loadstore
|
||||
volatile byte top_sprites_mc loadstore
|
||||
|
||||
Fixing inline constructor with render::$7 = (byte)render::$1 w= (byte)render::$2
|
||||
Fixing inline constructor with render::$8 = (byte)render::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI] w= (byte)render::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
||||
Fixing inline constructor with render_tiles::$10 = (byte)render_tiles::$4 w= (byte)render_tiles::$5
|
||||
Fixing inline constructor with render_tiles::$11 = (byte)render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI] w= (byte)render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) $a00 in
|
||||
Adding number conversion cast (unumber) $a80 in
|
||||
Adding number conversion cast (unumber) $b00 in
|
||||
@ -5419,15 +5422,15 @@ Adding number conversion cast (unumber) 4 in render::$0 = render::ypos#2 / 4
|
||||
Adding number conversion cast (unumber) render::$0 in render::$0 = render::ypos#2 / (unumber)4
|
||||
Adding number conversion cast (unumber) 2 in render::$2 = render::ytile#0 * 2
|
||||
Adding number conversion cast (unumber) render::$2 in render::$2 = render::ytile#0 * (unumber)2
|
||||
Adding number conversion cast (unumber) 3 in render::$5 = render::ypos#2 & 3
|
||||
Adding number conversion cast (unumber) render::$5 in render::$5 = render::ypos#2 & (unumber)3
|
||||
Adding number conversion cast (unumber) 3 in render::$7 = render::ypos#2 & 3
|
||||
Adding number conversion cast (unumber) render::$7 in render::$7 = render::ypos#2 & (unumber)3
|
||||
Adding number conversion cast (unumber) 4 in render_tiles::$0 = render_tiles::tile_left#1 * 4
|
||||
Adding number conversion cast (unumber) render_tiles::$0 in render_tiles::$0 = render_tiles::tile_left#1 * (unumber)4
|
||||
Adding number conversion cast (unumber) 4 in render_tiles::$2 = render_tiles::tile_right#1 * 4
|
||||
Adding number conversion cast (unumber) render_tiles::$2 in render_tiles::$2 = render_tiles::tile_right#1 * (unumber)4
|
||||
Adding number conversion cast (unumber) 2 in render_tiles::$5 = render_tiles::ytile#1 * 2
|
||||
Adding number conversion cast (unumber) render_tiles::$5 in render_tiles::$5 = render_tiles::ytile#1 * (unumber)2
|
||||
Adding number conversion cast (unumber) 4 in render_tiles::$8 = render_tiles::y#2 < 4
|
||||
Adding number conversion cast (unumber) 4 in render_tiles::$10 = render_tiles::y#2 < 4
|
||||
Adding number conversion cast (unumber) NUM_BOBS*2 in init_bobs_restore::$0 = init_bobs_restore::bob#2 < NUM_BOBS*2
|
||||
Adding number conversion cast (unumber) 2 in init_bobs_restore::$0 = init_bobs_restore::bob#2 < (unumber)NUM_BOBS*2
|
||||
Adding number conversion cast (unumber) $c in logic_tile_ptr = LEVEL_TILES+$40*$12+$c
|
||||
@ -6124,16 +6127,10 @@ Simplifying constant integer cast 2
|
||||
Simplifying constant integer cast $15
|
||||
Simplifying constant integer cast 4
|
||||
Simplifying constant integer cast 2
|
||||
Simplifying constant integer cast render::$1
|
||||
Simplifying constant integer cast render::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI]
|
||||
Simplifying constant integer cast render::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
||||
Simplifying constant integer cast 3
|
||||
Simplifying constant integer cast 4
|
||||
Simplifying constant integer cast 4
|
||||
Simplifying constant integer cast 2
|
||||
Simplifying constant integer cast render_tiles::$4
|
||||
Simplifying constant integer cast render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_HI]
|
||||
Simplifying constant integer cast render_tiles::render_index_xcol#0[RENDER_OFFSET_CANVAS_LO]
|
||||
Simplifying constant integer cast 4
|
||||
Simplifying constant integer cast NUM_BOBS*(unumber)2
|
||||
Simplifying constant integer cast 2
|
||||
@ -6891,7 +6888,7 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||
Inferred type updated to byte in merge_code::$5 = merge_code::cycle_budget#5 - 1
|
||||
Inferred type updated to byte in render::$0 = render::ypos#2 / 4
|
||||
Inferred type updated to byte in render::$2 = render::ytile#0 * 2
|
||||
Inferred type updated to byte in render::$5 = render::ypos#2 & 3
|
||||
Inferred type updated to byte in render::$7 = render::ypos#2 & 3
|
||||
Inferred type updated to byte in render_tiles::$0 = render_tiles::tile_left#1 * 4
|
||||
Inferred type updated to byte in render_tiles::$2 = render_tiles::tile_right#1 * 4
|
||||
Inferred type updated to byte in render_tiles::$5 = render_tiles::ytile#1 * 2
|
||||
@ -7092,10 +7089,10 @@ Alias init_render_index::x_col#10 = init_render_index::x_col#9 init_render_index
|
||||
Alias init_render_index::canvas#0 = init_render_index::$4
|
||||
Alias init_render_index::ypos_inc_offset#2 = init_render_index::ypos_inc_offset#5
|
||||
Alias render::ytile#0 = render::$0
|
||||
Alias render::canvas_offset#0 = render::$8
|
||||
Alias render::canvas1#0 = render::$3
|
||||
Alias render::canvas2#0 = render::$4
|
||||
Alias render::ypix#0 = render::$5
|
||||
Alias render::canvas_offset#0 = render::$4
|
||||
Alias render::canvas1#0 = render::$5
|
||||
Alias render::canvas2#0 = render::$6
|
||||
Alias render::ypix#0 = render::$7
|
||||
Alias render::canvas1#2 = render::canvas1#4 render::canvas1#3
|
||||
Alias render::ypos_inc_offset#2 = render::ypos_inc_offset#3
|
||||
Alias render::canvas2#2 = render::canvas2#4 render::canvas2#3
|
||||
@ -7104,16 +7101,16 @@ Alias render::ypix#1 = render::ypix#2
|
||||
Alias render::pixels#2 = render::pixels#5 render::pixels#3
|
||||
Alias render_tiles::tile_left_pixels#0 = render_tiles::$1
|
||||
Alias render_tiles::tile_right_pixels#0 = render_tiles::$3
|
||||
Alias render_tiles::canvas_offset#0 = render_tiles::$11
|
||||
Alias render_tiles::canvas1#0 = render_tiles::$6
|
||||
Alias render_tiles::canvas2#0 = render_tiles::$7
|
||||
Alias render_tiles::canvas_offset#0 = render_tiles::$7
|
||||
Alias render_tiles::canvas1#0 = render_tiles::$8
|
||||
Alias render_tiles::canvas2#0 = render_tiles::$9
|
||||
Alias render_tiles::tile_left_pixels#1 = render_tiles::tile_left_pixels#2
|
||||
Alias render_tiles::y#2 = render_tiles::y#3
|
||||
Alias render_tiles::tile_right_pixels#1 = render_tiles::tile_right_pixels#2
|
||||
Alias render_tiles::canvas1#2 = render_tiles::canvas1#3
|
||||
Alias render_tiles::canvas2#2 = render_tiles::canvas2#3
|
||||
Alias render_tiles::ypos_inc_offset#2 = render_tiles::ypos_inc_offset#3
|
||||
Alias render_tiles::pixels#0 = render_tiles::$9
|
||||
Alias render_tiles::pixels#0 = render_tiles::$11
|
||||
Alias init_bobs_restore::bob_restore#5 = init_bobs_restore::bob_restore#6
|
||||
Alias init_bobs_restore::bob#2 = init_bobs_restore::bob#5
|
||||
Alias init_bobs_restore::bob_restore#2 = init_bobs_restore::bob_restore#4 init_bobs_restore::bob_restore#3
|
||||
@ -7415,8 +7412,8 @@ Simple Condition init_render_index::$0 [109] if(init_render_index::x_col#2<$1a)
|
||||
Simple Condition init_render_index::$2 [113] if(init_render_index::x_col#2<$18) goto init_render_index::@4
|
||||
Simple Condition init_render_index::$3 [124] if(init_render_index::y_pos#2<$94) goto init_render_index::@6
|
||||
Simple Condition init_render_index::$8 [135] if(init_render_index::ypos_inc_offset#2<$17) goto init_render_index::@8
|
||||
Simple Condition render::$6 [157] if(render::i#2<render::ypix#0) goto render::@2
|
||||
Simple Condition render_tiles::$8 [181] if(render_tiles::y#2<4) goto render_tiles::@2
|
||||
Simple Condition render::$8 [157] if(render::i#2<render::ypix#0) goto render::@2
|
||||
Simple Condition render_tiles::$10 [181] if(render_tiles::y#2<4) goto render_tiles::@2
|
||||
Simple Condition init_bobs_restore::$0 [194] if(init_bobs_restore::bob#2<NUM_BOBS*2) goto init_bobs_restore::@2
|
||||
Simple Condition init_bobs_restore::$1 [201] if(init_bobs_restore::i#2<SIZE_BOB_RESTORE) goto init_bobs_restore::@5
|
||||
Simple Condition done_run::$1 [224] if(done_run::i#2<$2f) goto done_run::@4
|
||||
@ -7810,8 +7807,6 @@ Simplifying constant integer cast $1c0
|
||||
Simplifying constant integer cast $240
|
||||
Simplifying constant integer cast $2c0
|
||||
Simplifying constant integer cast $340
|
||||
Simplifying constant integer cast render::$2
|
||||
Simplifying constant integer cast render_tiles::$5
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast $32+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
@ -8099,8 +8094,8 @@ Alias candidate removed (volatile)ghost1_direction = game_logic::$182
|
||||
Inlining Noop Cast [8] memset::$4 = (byte*)memset::str#6 keeping memset::str#6
|
||||
Inlining Noop Cast [10] memset::dst#0 = (byte*)memset::str#6 keeping memset::str#6
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Inlining Noop Cast [110] render::render_index_xcol#0 = (byte*)render::$7 keeping render::render_index_xcol#0
|
||||
Inlining Noop Cast [132] render_tiles::render_index_xcol#0 = (byte*)render_tiles::$10 keeping render_tiles::render_index_xcol#0
|
||||
Inlining Noop Cast [110] render::render_index_xcol#0 = (byte*)render::$3 keeping render::render_index_xcol#0
|
||||
Inlining Noop Cast [132] render_tiles::render_index_xcol#0 = (byte*)render_tiles::$6 keeping render_tiles::render_index_xcol#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Rewriting multiplication to use shift [83] init_render_index::$9 = init_render_index::x_col#2 * SIZEOF_POINTER
|
||||
Rewriting multiplication to use shift [88] init_render_index::$10 = init_render_index::$11 * SIZEOF_WORD
|
||||
@ -30578,11 +30573,11 @@ render: {
|
||||
// [1000] render::$2 = render::ytile#0 << 1 -- vbuaa=vbuyy_rol_1
|
||||
tya
|
||||
asl
|
||||
// char * render_index_xcol = (char*){ BYTE1(RENDER_INDEX) + xcol, ytile*2 }
|
||||
// MAKEWORD( BYTE1(RENDER_INDEX) + xcol, ytile*2 )
|
||||
// [1001] render::render_index_xcol#0 = render::$1 w= render::$2 -- vwuz1=vbuxx_word_vbuaa
|
||||
stx.z render_index_xcol+1
|
||||
sta.z render_index_xcol
|
||||
// unsigned int canvas_offset = { render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] }
|
||||
// unsigned int canvas_offset = MAKEWORD( render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] )
|
||||
// [1002] render::canvas_offset#0 = ((byte*)render::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((byte*)render::render_index_xcol#0) -- vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2
|
||||
ldy #RENDER_OFFSET_CANVAS_HI
|
||||
lda (render_index_xcol),y
|
||||
@ -30774,11 +30769,11 @@ render_tiles: {
|
||||
// [1029] render_tiles::$5 = render_tiles::ytile#0 << 1 -- vbuaa=vbuz1_rol_1
|
||||
lda.z ytile
|
||||
asl
|
||||
// char * render_index_xcol = (char*){ BYTE1(RENDER_INDEX) + xcol, ytile*2 }
|
||||
// MAKEWORD( BYTE1(RENDER_INDEX) + xcol, ytile*2 )
|
||||
// [1030] render_tiles::render_index_xcol#0 = render_tiles::$4 w= render_tiles::$5 -- vwuz1=vbuxx_word_vbuaa
|
||||
stx.z render_index_xcol+1
|
||||
sta.z render_index_xcol
|
||||
// unsigned int canvas_offset = {render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] }
|
||||
// unsigned int canvas_offset = MAKEWORD( render_index_xcol[RENDER_OFFSET_CANVAS_HI], render_index_xcol[RENDER_OFFSET_CANVAS_LO] )
|
||||
// [1031] render_tiles::canvas_offset#0 = ((byte*)render_tiles::render_index_xcol#0)[RENDER_OFFSET_CANVAS_HI] w= *((byte*)render_tiles::render_index_xcol#0) -- vwuz1=pbuz2_derefidx_vbuc1_word__deref_pbuz2
|
||||
ldy #RENDER_OFFSET_CANVAS_HI
|
||||
lda (render_index_xcol),y
|
||||
|
@ -23,7 +23,7 @@
|
||||
main: {
|
||||
.const toD0181_return = (>(SCREEN&$3fff)*4)|(>CHARSET)/4&$f
|
||||
.label col00 = COLS+$c*$28+$13
|
||||
.label __4 = $f
|
||||
.label __6 = $f
|
||||
.label xw = $17
|
||||
.label yw = $19
|
||||
.label angle_w = $f
|
||||
@ -54,12 +54,12 @@ main: {
|
||||
lda #-$13
|
||||
sta.z x
|
||||
__b2:
|
||||
// signed word xw = (signed word)(word){ (byte)x, 0 }
|
||||
// MAKEWORD( (byte)x, 0 )
|
||||
lda #0
|
||||
ldy.z x
|
||||
sty.z xw+1
|
||||
sta.z xw
|
||||
// signed word yw = (signed word)(word){ (byte)y, 0 }
|
||||
// MAKEWORD( (byte)y, 0 )
|
||||
ldy.z y
|
||||
sty.z yw+1
|
||||
sta.z yw
|
||||
@ -69,13 +69,13 @@ main: {
|
||||
// angle_w+0x0080
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __4
|
||||
sta.z __4
|
||||
adc.z __6
|
||||
sta.z __6
|
||||
bcc !+
|
||||
inc.z __4+1
|
||||
inc.z __6+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
ldx.z __4+1
|
||||
ldx.z __6+1
|
||||
// diff(ang_w, *screen_ref)
|
||||
ldy #0
|
||||
lda (screen_ref),y
|
||||
|
@ -30,18 +30,18 @@ main::@2: scope:[main] from main::@1 main::@8
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@2
|
||||
[12] main::angle_w#0 = atan2_16::return#2
|
||||
[13] main::$4 = main::angle_w#0 + $80
|
||||
[14] main::ang_w#0 = byte1 main::$4
|
||||
[13] main::$6 = main::angle_w#0 + $80
|
||||
[14] main::ang_w#0 = byte1 main::$6
|
||||
[15] diff::bb1#0 = main::ang_w#0
|
||||
[16] diff::bb2#0 = *main::screen_ref#2
|
||||
[17] call diff
|
||||
[18] diff::return#0 = diff::return#1
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@7
|
||||
[19] main::$6 = diff::return#0
|
||||
[20] main::diff_sum#1 = main::diff_sum#2 + main::$6
|
||||
[21] main::$7 = main::ang_w#0 - *main::screen_ref#2
|
||||
[22] *main::screen#2 = main::$7
|
||||
[19] main::$8 = diff::return#0
|
||||
[20] main::diff_sum#1 = main::diff_sum#2 + main::$8
|
||||
[21] main::$9 = main::ang_w#0 - *main::screen_ref#2
|
||||
[22] *main::screen#2 = main::$9
|
||||
[23] main::screen#1 = ++ main::screen#2
|
||||
[24] main::screen_ref#1 = ++ main::screen_ref#2
|
||||
[25] main::x#1 = ++ main::x#2
|
||||
|
@ -408,8 +408,12 @@ main::@2: scope:[main] from main::@1 main::@10
|
||||
main::screen_ref#4 = phi( main::@1/main::screen_ref#5, main::@10/main::screen_ref#1 )
|
||||
main::y#2 = phi( main::@1/main::y#4, main::@10/main::y#5 )
|
||||
main::x#2 = phi( main::@1/main::x#0, main::@10/main::x#1 )
|
||||
main::xw#0 = (signed word)(word){ (byte)main::x#2, 0 }
|
||||
main::yw#0 = (signed word)(word){ (byte)main::y#2, 0 }
|
||||
main::$13 = (byte)main::x#2
|
||||
main::$3 = main::$13 w= 0
|
||||
main::xw#0 = (signed word)main::$3
|
||||
main::$14 = (byte)main::y#2
|
||||
main::$4 = main::$14 w= 0
|
||||
main::yw#0 = (signed word)main::$4
|
||||
atan2_16::x#0 = main::xw#0
|
||||
atan2_16::y#0 = main::yw#0
|
||||
call atan2_16
|
||||
@ -423,11 +427,11 @@ main::@9: scope:[main] from main::@2
|
||||
main::diff_sum#4 = phi( main::@2/main::diff_sum#6 )
|
||||
main::screen_ref#2 = phi( main::@2/main::screen_ref#4 )
|
||||
atan2_16::return#4 = phi( main::@2/atan2_16::return#2 )
|
||||
main::$3 = atan2_16::return#4
|
||||
main::angle_w#0 = main::$3
|
||||
main::$4 = main::angle_w#0 + $80
|
||||
main::$5 = byte1 main::$4
|
||||
main::ang_w#0 = main::$5
|
||||
main::$5 = atan2_16::return#4
|
||||
main::angle_w#0 = main::$5
|
||||
main::$6 = main::angle_w#0 + $80
|
||||
main::$7 = byte1 main::$6
|
||||
main::ang_w#0 = main::$7
|
||||
diff::bb1#0 = main::ang_w#0
|
||||
diff::bb2#0 = *main::screen_ref#2
|
||||
call diff
|
||||
@ -442,15 +446,15 @@ main::@10: scope:[main] from main::@9
|
||||
main::ang_w#1 = phi( main::@9/main::ang_w#0 )
|
||||
main::diff_sum#2 = phi( main::@9/main::diff_sum#4 )
|
||||
diff::return#3 = phi( main::@9/diff::return#0 )
|
||||
main::$6 = diff::return#3
|
||||
main::diff_sum#1 = main::diff_sum#2 + main::$6
|
||||
main::$7 = main::ang_w#1 - *main::screen_ref#3
|
||||
*main::screen#2 = main::$7
|
||||
main::$8 = diff::return#3
|
||||
main::diff_sum#1 = main::diff_sum#2 + main::$8
|
||||
main::$9 = main::ang_w#1 - *main::screen_ref#3
|
||||
*main::screen#2 = main::$9
|
||||
main::screen#1 = ++ main::screen#2
|
||||
main::screen_ref#1 = ++ main::screen_ref#3
|
||||
main::x#1 = main::x#3 + rangenext(-$13,$14)
|
||||
main::$8 = main::x#1 != rangelast(-$13,$14)
|
||||
if(main::$8) goto main::@2
|
||||
main::$10 = main::x#1 != rangelast(-$13,$14)
|
||||
if(main::$10) goto main::@2
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@10
|
||||
main::screen#6 = phi( main::@10/main::screen#1 )
|
||||
@ -459,8 +463,8 @@ main::@3: scope:[main] from main::@10
|
||||
main::diff_sum#5 = phi( main::@10/main::diff_sum#1 )
|
||||
main::y#3 = phi( main::@10/main::y#5 )
|
||||
main::y#1 = main::y#3 + rangenext(-$c,$c)
|
||||
main::$9 = main::y#1 != rangelast(-$c,$c)
|
||||
if(main::$9) goto main::@1
|
||||
main::$11 = main::y#1 != rangelast(-$c,$c)
|
||||
if(main::$11) goto main::@1
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
print_char_cursor#27 = phi( main::@3/print_char_cursor#30 )
|
||||
@ -814,13 +818,17 @@ byte* init_font_hex::proto_lo#3
|
||||
byte* init_font_hex::proto_lo#4
|
||||
void main()
|
||||
byte~ main::$1
|
||||
bool~ main::$10
|
||||
bool~ main::$11
|
||||
byte~ main::$13
|
||||
byte~ main::$14
|
||||
word~ main::$3
|
||||
number~ main::$4
|
||||
byte~ main::$5
|
||||
byte~ main::$6
|
||||
word~ main::$4
|
||||
word~ main::$5
|
||||
number~ main::$6
|
||||
byte~ main::$7
|
||||
bool~ main::$8
|
||||
bool~ main::$9
|
||||
byte~ main::$8
|
||||
byte~ main::$9
|
||||
byte main::ang_w
|
||||
byte main::ang_w#0
|
||||
byte main::ang_w#1
|
||||
@ -965,9 +973,6 @@ word print_uint::w#0
|
||||
word print_uint::w#1
|
||||
word print_uint::w#2
|
||||
|
||||
Fixing inline constructor with main::$11 = (byte)(byte)main::x#2 w= (byte)0
|
||||
Fixing inline constructor with main::$12 = (byte)(byte)main::y#2 w= (byte)0
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) $13 in
|
||||
Adding number conversion cast (unumber) $c*$28 in
|
||||
Adding number conversion cast (unumber) 0 in init_font_hex::charset#2[init_font_hex::idx#0] = 0
|
||||
@ -1007,8 +1012,10 @@ Adding number conversion cast (unumber) main::toD0181_$4 in main::toD0181_$4 = m
|
||||
Adding number conversion cast (unumber) $f in main::toD0181_$5 = main::toD0181_$4 & $f
|
||||
Adding number conversion cast (unumber) main::toD0181_$5 in main::toD0181_$5 = main::toD0181_$4 & (unumber)$f
|
||||
Adding number conversion cast (unumber) main::toD0181_$6 in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5
|
||||
Adding number conversion cast (unumber) $80 in main::$4 = main::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) main::$4 in main::$4 = main::angle_w#0 + (unumber)$80
|
||||
Adding number conversion cast (unumber) 0 in main::$3 = main::$13 w= 0
|
||||
Adding number conversion cast (unumber) 0 in main::$4 = main::$14 w= 0
|
||||
Adding number conversion cast (unumber) $80 in main::$6 = main::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) main::$6 in main::$6 = main::angle_w#0 + (unumber)$80
|
||||
Successful SSA optimization PassNAddNumberTypeConversions
|
||||
Inlining cast init_font_hex::charset#2[init_font_hex::idx#0] = (unumber)0
|
||||
Inlining cast init_font_hex::charset#4[init_font_hex::idx#6] = (unumber)0
|
||||
@ -1049,9 +1056,7 @@ Simplifying constant integer cast $3fff
|
||||
Simplifying constant integer cast 4
|
||||
Simplifying constant integer cast 4
|
||||
Simplifying constant integer cast $f
|
||||
Simplifying constant integer cast (byte)main::x#2
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast (byte)main::y#2
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast $80
|
||||
Simplifying constant pointer cast (byte*) 1024
|
||||
@ -1087,6 +1092,8 @@ Finalized unsigned number type (word) $3fff
|
||||
Finalized unsigned number type (byte) 4
|
||||
Finalized unsigned number type (byte) 4
|
||||
Finalized unsigned number type (byte) $f
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) $80
|
||||
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
||||
Inferred type updated to word in atan2_16::$12 = $8000 - atan2_16::angle#9
|
||||
@ -1096,7 +1103,7 @@ Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4
|
||||
Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4
|
||||
Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f
|
||||
Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5
|
||||
Inferred type updated to word in main::$4 = main::angle_w#0 + $80
|
||||
Inferred type updated to word in main::$6 = main::angle_w#0 + $80
|
||||
Inversing boolean not [59] atan2_16::$17 = atan2_16::yi#3 != 0 from [58] atan2_16::$16 = atan2_16::yi#3 == 0
|
||||
Inversing boolean not [68] atan2_16::$11 = atan2_16::x#4 >= 0 from [67] atan2_16::$10 = atan2_16::x#4 < 0
|
||||
Inversing boolean not [79] atan2_16::$19 = 0 == atan2_16::shift#4 from [78] atan2_16::$24 = 0 != atan2_16::shift#4
|
||||
@ -1166,8 +1173,8 @@ Alias main::screen#2 = main::screen#3 main::screen#4
|
||||
Alias main::x#2 = main::x#4 main::x#3
|
||||
Alias main::y#2 = main::y#6 main::y#5 main::y#3
|
||||
Alias print_char_cursor#27 = print_char_cursor#33 print_char_cursor#34 print_char_cursor#32 print_char_cursor#30
|
||||
Alias main::angle_w#0 = main::$3
|
||||
Alias main::ang_w#0 = main::$5 main::ang_w#1
|
||||
Alias main::angle_w#0 = main::$5
|
||||
Alias main::ang_w#0 = main::$7 main::ang_w#1
|
||||
Alias diff::return#0 = diff::return#3
|
||||
Alias main::diff_sum#1 = main::diff_sum#5 main::diff_sum#3
|
||||
Alias main::screen_ref#1 = main::screen_ref#6
|
||||
@ -1242,9 +1249,9 @@ Simple Condition atan2_16::$19 [59] if(0==atan2_16::shift#2) goto atan2_16::@17
|
||||
Simple Condition atan2_16::$20 [62] if(atan2_16::yi#3>=0) goto atan2_16::@18
|
||||
Simple Condition atan2_16::$21 [76] if(atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@10
|
||||
Simple Condition atan2_16::$14 [79] if(atan2_16::y#0>=0) goto atan2_16::@8
|
||||
Simple Condition main::$8 [150] if(main::x#1!=rangelast(-$13,$14)) goto main::@2
|
||||
Simple Condition main::$9 [153] if(main::y#1!=rangelast(-$c,$c)) goto main::@1
|
||||
Simple Condition diff::$0 [163] if(diff::bb1#0<diff::bb2#0) goto diff::@1
|
||||
Simple Condition main::$10 [152] if(main::x#1!=rangelast(-$13,$14)) goto main::@2
|
||||
Simple Condition main::$11 [155] if(main::y#1!=rangelast(-$c,$c)) goto main::@1
|
||||
Simple Condition diff::$0 [165] if(diff::bb1#0<diff::bb2#0) goto diff::@1
|
||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||
Negating conditional jump and destination [76] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@12
|
||||
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
|
||||
@ -1270,7 +1277,7 @@ Constant main::toD0181_$7 = (word)main::toD0181_screen#0
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant value identified (word)main::toD0181_gfx#0 in [115] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0
|
||||
Successful SSA optimization Pass2ConstantValues
|
||||
if() condition always true - replacing block destination [158] if(true) goto main::@6
|
||||
if() condition always true - replacing block destination [160] if(true) goto main::@6
|
||||
Successful SSA optimization Pass2ConstantIfs
|
||||
Resolved ranged next value [17] init_font_hex::i#1 = ++ init_font_hex::i#2 to ++
|
||||
Resolved ranged comparison value [19] if(init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3 to 5
|
||||
@ -1280,10 +1287,10 @@ Resolved ranged next value [30] init_font_hex::c#1 = ++ init_font_hex::c#6 to ++
|
||||
Resolved ranged comparison value [32] if(init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1 to $10
|
||||
Resolved ranged next value [74] atan2_16::i#1 = ++ atan2_16::i#2 to ++
|
||||
Resolved ranged comparison value [76] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@12 to CORDIC_ITERATIONS_16-1+1
|
||||
Resolved ranged next value [148] main::x#1 = ++ main::x#2 to ++
|
||||
Resolved ranged comparison value [150] if(main::x#1!=rangelast(-$13,$14)) goto main::@2 to $15
|
||||
Resolved ranged next value [151] main::y#1 = ++ main::y#4 to ++
|
||||
Resolved ranged comparison value [153] if(main::y#1!=rangelast(-$c,$c)) goto main::@1 to $d
|
||||
Resolved ranged next value [150] main::x#1 = ++ main::x#2 to ++
|
||||
Resolved ranged comparison value [152] if(main::x#1!=rangelast(-$13,$14)) goto main::@2 to $15
|
||||
Resolved ranged next value [153] main::y#1 = ++ main::y#4 to ++
|
||||
Resolved ranged comparison value [155] if(main::y#1!=rangelast(-$c,$c)) goto main::@1 to $d
|
||||
Simplifying expression containing zero init_font_hex::charset#2 in [8] init_font_hex::charset#2[init_font_hex::idx#0] = 0
|
||||
Successful SSA optimization PassNSimplifyExpressionWithZero
|
||||
Removing unused block main::@return
|
||||
@ -1302,8 +1309,8 @@ Adding number conversion cast (unumber) $10 in [18] if(init_font_hex::c1#1!=$10)
|
||||
Adding number conversion cast (unumber) $10 in [21] if(init_font_hex::c#1!=$10) goto init_font_hex::@1
|
||||
Adding number conversion cast (unumber) CORDIC_ITERATIONS_16-1+1 in [54] if(atan2_16::i#1==CORDIC_ITERATIONS_16-1+1) goto atan2_16::@12
|
||||
Adding number conversion cast (unumber) 1 in [54] if(atan2_16::i#1==(unumber)CORDIC_ITERATIONS_16-1+1) goto atan2_16::@12
|
||||
Adding number conversion cast (snumber) $15 in [111] if(main::x#1!=$15) goto main::@2
|
||||
Adding number conversion cast (snumber) $d in [113] if(main::y#1!=$d) goto main::@1
|
||||
Adding number conversion cast (snumber) $15 in [113] if(main::x#1!=$15) goto main::@2
|
||||
Adding number conversion cast (snumber) $d in [115] if(main::y#1!=$d) goto main::@1
|
||||
Successful SSA optimization PassNAddNumberTypeConversions
|
||||
Simplifying constant integer cast 5
|
||||
Simplifying constant integer cast $10
|
||||
@ -1344,8 +1351,11 @@ Constant right-side identified [78] main::toD0181_return#0 = main::toD0181_$2 |
|
||||
Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||
Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Inlining Noop Cast [82] main::xw#0 = (signed word)main::$11 keeping main::xw#0
|
||||
Inlining Noop Cast [84] main::yw#0 = (signed word)main::$12 keeping main::yw#0
|
||||
Inlining Noop Cast [81] main::$13 = (byte)main::x#2 keeping main::x#2
|
||||
Inlining Noop Cast [84] main::$14 = (byte)main::y#4 keeping main::y#4
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Inlining Noop Cast [83] main::xw#0 = (signed word)main::$3 keeping main::xw#0
|
||||
Inlining Noop Cast [86] main::yw#0 = (signed word)main::$4 keeping main::yw#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Rewriting division to use shift [31] atan2_16::angle#1 = atan2_16::angle#6 / 2
|
||||
Rewriting multiplication to use shift [45] atan2_16::$22 = atan2_16::i#2 * SIZEOF_WORD
|
||||
@ -1549,18 +1559,18 @@ main::@2: scope:[main] from main::@1 main::@8
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@2
|
||||
[12] main::angle_w#0 = atan2_16::return#2
|
||||
[13] main::$4 = main::angle_w#0 + $80
|
||||
[14] main::ang_w#0 = byte1 main::$4
|
||||
[13] main::$6 = main::angle_w#0 + $80
|
||||
[14] main::ang_w#0 = byte1 main::$6
|
||||
[15] diff::bb1#0 = main::ang_w#0
|
||||
[16] diff::bb2#0 = *main::screen_ref#2
|
||||
[17] call diff
|
||||
[18] diff::return#0 = diff::return#1
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@7
|
||||
[19] main::$6 = diff::return#0
|
||||
[20] main::diff_sum#1 = main::diff_sum#2 + main::$6
|
||||
[21] main::$7 = main::ang_w#0 - *main::screen_ref#2
|
||||
[22] *main::screen#2 = main::$7
|
||||
[19] main::$8 = diff::return#0
|
||||
[20] main::diff_sum#1 = main::diff_sum#2 + main::$8
|
||||
[21] main::$9 = main::ang_w#0 - *main::screen_ref#2
|
||||
[22] *main::screen#2 = main::$9
|
||||
[23] main::screen#1 = ++ main::screen#2
|
||||
[24] main::screen_ref#1 = ++ main::screen_ref#2
|
||||
[25] main::x#1 = ++ main::x#2
|
||||
@ -1874,9 +1884,9 @@ byte* init_font_hex::proto_lo
|
||||
byte* init_font_hex::proto_lo#1 500.5
|
||||
byte* init_font_hex::proto_lo#4 923.3076923076923
|
||||
void main()
|
||||
word~ main::$4 202.0
|
||||
byte~ main::$6 202.0
|
||||
byte~ main::$7 202.0
|
||||
word~ main::$6 202.0
|
||||
byte~ main::$8 202.0
|
||||
byte~ main::$9 202.0
|
||||
byte main::ang_w
|
||||
byte main::ang_w#0 43.285714285714285
|
||||
word main::angle_w
|
||||
@ -1959,13 +1969,13 @@ Added variable atan2_16::x#0 to live range equivalence class [ atan2_16::x#0 ]
|
||||
Added variable atan2_16::y#0 to live range equivalence class [ atan2_16::y#0 ]
|
||||
Added variable atan2_16::return#2 to live range equivalence class [ atan2_16::return#2 ]
|
||||
Added variable main::angle_w#0 to live range equivalence class [ main::angle_w#0 ]
|
||||
Added variable main::$4 to live range equivalence class [ main::$4 ]
|
||||
Added variable main::$6 to live range equivalence class [ main::$6 ]
|
||||
Added variable main::ang_w#0 to live range equivalence class [ main::ang_w#0 ]
|
||||
Added variable diff::bb1#0 to live range equivalence class [ diff::bb1#0 ]
|
||||
Added variable diff::bb2#0 to live range equivalence class [ diff::bb2#0 ]
|
||||
Added variable diff::return#0 to live range equivalence class [ diff::return#0 ]
|
||||
Added variable main::$6 to live range equivalence class [ main::$6 ]
|
||||
Added variable main::$7 to live range equivalence class [ main::$7 ]
|
||||
Added variable main::$8 to live range equivalence class [ main::$8 ]
|
||||
Added variable main::$9 to live range equivalence class [ main::$9 ]
|
||||
Added variable print_uint::w#0 to live range equivalence class [ print_uint::w#0 ]
|
||||
Added variable init_font_hex::$0 to live range equivalence class [ init_font_hex::$0 ]
|
||||
Added variable init_font_hex::$1 to live range equivalence class [ init_font_hex::$1 ]
|
||||
@ -2006,13 +2016,13 @@ Complete equivalence classes
|
||||
[ atan2_16::y#0 ]
|
||||
[ atan2_16::return#2 ]
|
||||
[ main::angle_w#0 ]
|
||||
[ main::$4 ]
|
||||
[ main::$6 ]
|
||||
[ main::ang_w#0 ]
|
||||
[ diff::bb1#0 ]
|
||||
[ diff::bb2#0 ]
|
||||
[ diff::return#0 ]
|
||||
[ main::$6 ]
|
||||
[ main::$7 ]
|
||||
[ main::$8 ]
|
||||
[ main::$9 ]
|
||||
[ print_uint::w#0 ]
|
||||
[ init_font_hex::$0 ]
|
||||
[ init_font_hex::$1 ]
|
||||
@ -2052,13 +2062,13 @@ Allocated zp[2]:43 [ atan2_16::x#0 ]
|
||||
Allocated zp[2]:45 [ atan2_16::y#0 ]
|
||||
Allocated zp[2]:47 [ atan2_16::return#2 ]
|
||||
Allocated zp[2]:49 [ main::angle_w#0 ]
|
||||
Allocated zp[2]:51 [ main::$4 ]
|
||||
Allocated zp[2]:51 [ main::$6 ]
|
||||
Allocated zp[1]:53 [ main::ang_w#0 ]
|
||||
Allocated zp[1]:54 [ diff::bb1#0 ]
|
||||
Allocated zp[1]:55 [ diff::bb2#0 ]
|
||||
Allocated zp[1]:56 [ diff::return#0 ]
|
||||
Allocated zp[1]:57 [ main::$6 ]
|
||||
Allocated zp[1]:58 [ main::$7 ]
|
||||
Allocated zp[1]:57 [ main::$8 ]
|
||||
Allocated zp[1]:58 [ main::$9 ]
|
||||
Allocated zp[2]:59 [ print_uint::w#0 ]
|
||||
Allocated zp[1]:61 [ init_font_hex::$0 ]
|
||||
Allocated zp[1]:62 [ init_font_hex::$1 ]
|
||||
@ -2076,7 +2086,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::x
|
||||
Statement [9] atan2_16::y#0 = (signed word)main::yw#0 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [11] atan2_16::return#2 = atan2_16::return#0 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 atan2_16::return#2 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [12] main::angle_w#0 = atan2_16::return#2 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::angle_w#0 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::angle_w#0 ] { { diff::bb1#0 = main::ang_w#0 } { diff::return#0 = diff::return#1 } } ) always clobbers reg byte a
|
||||
Statement [13] main::$4 = main::angle_w#0 + $80 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::$4 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::$4 ] { { diff::bb1#0 = main::ang_w#0 } { diff::return#0 = diff::return#1 } } ) always clobbers reg byte a
|
||||
Statement [13] main::$6 = main::angle_w#0 + $80 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::$6 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::$6 ] { { diff::bb1#0 = main::ang_w#0 } { diff::return#0 = diff::return#1 } } ) always clobbers reg byte a
|
||||
Statement [16] diff::bb2#0 = *main::screen_ref#2 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::ang_w#0 diff::bb1#0 diff::bb2#0 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::ang_w#0 diff::bb1#0 diff::bb2#0 ] { { diff::bb1#0 = main::ang_w#0 } { diff::return#0 = diff::return#1 } } ) always clobbers reg byte a reg byte y
|
||||
Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::y#4 main::y#1 ]
|
||||
Removing always clobbered register reg byte y as potential for zp[1]:3 [ main::x#2 main::x#1 ]
|
||||
@ -2084,9 +2094,9 @@ Removing always clobbered register reg byte a as potential for zp[1]:53 [ main::
|
||||
Removing always clobbered register reg byte y as potential for zp[1]:53 [ main::ang_w#0 ]
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:54 [ diff::bb1#0 ]
|
||||
Removing always clobbered register reg byte y as potential for zp[1]:54 [ diff::bb1#0 ]
|
||||
Statement [20] main::diff_sum#1 = main::diff_sum#2 + main::$6 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::ang_w#0 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [21] main::$7 = main::ang_w#0 - *main::screen_ref#2 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::$7 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::$7 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [22] *main::screen#2 = main::$7 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 ] { } ) always clobbers reg byte y
|
||||
Statement [20] main::diff_sum#1 = main::diff_sum#2 + main::$8 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::ang_w#0 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [21] main::$9 = main::ang_w#0 - *main::screen_ref#2 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::$9 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::$9 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [22] *main::screen#2 = main::$9 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 ] { } ) always clobbers reg byte y
|
||||
Statement [29] print_uint::w#0 = main::diff_sum#1 [ print_uint::w#0 ] ( [ print_uint::w#0 ] { { print_uint::w#0 = main::diff_sum#1 } } ) always clobbers reg byte a
|
||||
Statement [35] *init_font_hex::charset#2 = 0 [ init_font_hex::proto_hi#6 init_font_hex::c#6 init_font_hex::charset#2 init_font_hex::proto_lo#4 init_font_hex::c1#4 ] ( init_font_hex:1 [ init_font_hex::proto_hi#6 init_font_hex::c#6 init_font_hex::charset#2 init_font_hex::proto_lo#4 init_font_hex::c1#4 ] { } ) always clobbers reg byte a reg byte y
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:12 [ init_font_hex::c#6 init_font_hex::c#1 ]
|
||||
@ -2146,11 +2156,11 @@ Statement [8] atan2_16::x#0 = (signed word)main::xw#0 [ main::y#4 main::x#2 main
|
||||
Statement [9] atan2_16::y#0 = (signed word)main::yw#0 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [11] atan2_16::return#2 = atan2_16::return#0 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 atan2_16::return#2 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [12] main::angle_w#0 = atan2_16::return#2 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::angle_w#0 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::angle_w#0 ] { { diff::bb1#0 = main::ang_w#0 } { diff::return#0 = diff::return#1 } } ) always clobbers reg byte a
|
||||
Statement [13] main::$4 = main::angle_w#0 + $80 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::$4 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::$4 ] { { diff::bb1#0 = main::ang_w#0 } { diff::return#0 = diff::return#1 } } ) always clobbers reg byte a
|
||||
Statement [13] main::$6 = main::angle_w#0 + $80 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::$6 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::$6 ] { { diff::bb1#0 = main::ang_w#0 } { diff::return#0 = diff::return#1 } } ) always clobbers reg byte a
|
||||
Statement [16] diff::bb2#0 = *main::screen_ref#2 [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::ang_w#0 diff::bb1#0 diff::bb2#0 ] ( [ main::y#4 main::x#2 main::screen_ref#2 main::diff_sum#2 main::screen#2 main::ang_w#0 diff::bb1#0 diff::bb2#0 ] { { diff::bb1#0 = main::ang_w#0 } { diff::return#0 = diff::return#1 } } ) always clobbers reg byte a reg byte y
|
||||
Statement [20] main::diff_sum#1 = main::diff_sum#2 + main::$6 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::ang_w#0 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [21] main::$7 = main::ang_w#0 - *main::screen_ref#2 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::$7 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::$7 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [22] *main::screen#2 = main::$7 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 ] { } ) always clobbers reg byte y
|
||||
Statement [20] main::diff_sum#1 = main::diff_sum#2 + main::$8 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::ang_w#0 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [21] main::$9 = main::ang_w#0 - *main::screen_ref#2 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::$9 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 main::$9 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [22] *main::screen#2 = main::$9 [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 ] ( [ main::y#4 main::diff_sum#1 main::x#2 main::screen_ref#2 main::screen#2 ] { } ) always clobbers reg byte y
|
||||
Statement [29] print_uint::w#0 = main::diff_sum#1 [ print_uint::w#0 ] ( [ print_uint::w#0 ] { { print_uint::w#0 = main::diff_sum#1 } } ) always clobbers reg byte a
|
||||
Statement [35] *init_font_hex::charset#2 = 0 [ init_font_hex::proto_hi#6 init_font_hex::c#6 init_font_hex::charset#2 init_font_hex::proto_lo#4 init_font_hex::c1#4 ] ( init_font_hex:1 [ init_font_hex::proto_hi#6 init_font_hex::c#6 init_font_hex::charset#2 init_font_hex::proto_lo#4 init_font_hex::c1#4 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [37] init_font_hex::$0 = init_font_hex::proto_hi#6[init_font_hex::i#2] << 4 [ init_font_hex::proto_hi#6 init_font_hex::c#6 init_font_hex::charset#2 init_font_hex::proto_lo#4 init_font_hex::c1#4 init_font_hex::i#2 init_font_hex::idx#5 init_font_hex::$0 ] ( init_font_hex:1 [ init_font_hex::proto_hi#6 init_font_hex::c#6 init_font_hex::charset#2 init_font_hex::proto_lo#4 init_font_hex::c1#4 init_font_hex::i#2 init_font_hex::idx#5 init_font_hex::$0 ] { } ) always clobbers reg byte a
|
||||
@ -2222,13 +2232,13 @@ Potential registers zp[2]:43 [ atan2_16::x#0 ] : zp[2]:43 ,
|
||||
Potential registers zp[2]:45 [ atan2_16::y#0 ] : zp[2]:45 ,
|
||||
Potential registers zp[2]:47 [ atan2_16::return#2 ] : zp[2]:47 ,
|
||||
Potential registers zp[2]:49 [ main::angle_w#0 ] : zp[2]:49 ,
|
||||
Potential registers zp[2]:51 [ main::$4 ] : zp[2]:51 ,
|
||||
Potential registers zp[2]:51 [ main::$6 ] : zp[2]:51 ,
|
||||
Potential registers zp[1]:53 [ main::ang_w#0 ] : zp[1]:53 , reg byte x ,
|
||||
Potential registers zp[1]:54 [ diff::bb1#0 ] : zp[1]:54 , reg byte x ,
|
||||
Potential registers zp[1]:55 [ diff::bb2#0 ] : zp[1]:55 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:56 [ diff::return#0 ] : zp[1]:56 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:57 [ main::$6 ] : zp[1]:57 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:58 [ main::$7 ] : zp[1]:58 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:57 [ main::$8 ] : zp[1]:57 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:58 [ main::$9 ] : zp[1]:58 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:59 [ print_uint::w#0 ] : zp[2]:59 ,
|
||||
Potential registers zp[1]:61 [ init_font_hex::$0 ] : zp[1]:61 , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:62 [ init_font_hex::$1 ] : zp[1]:62 , reg byte a , reg byte x , reg byte y ,
|
||||
@ -2244,7 +2254,7 @@ Uplift Scope [atan2_16] 28,666,670.58: zp[1]:29 [ atan2_16::shift#2 atan2_16::sh
|
||||
Uplift Scope [init_font_hex] 21,668.83: zp[1]:18 [ init_font_hex::i#2 init_font_hex::i#1 ] 20,002: zp[1]:62 [ init_font_hex::$1 ] 20,002: zp[1]:63 [ init_font_hex::$2 ] 11,501.6: zp[1]:19 [ init_font_hex::idx#5 init_font_hex::idx#2 ] 10,001: zp[1]:61 [ init_font_hex::$0 ] 2,002: zp[1]:64 [ init_font_hex::idx#3 ] 1,634.97: zp[1]:17 [ init_font_hex::c1#4 init_font_hex::c1#1 ] 1,631.57: zp[2]:13 [ init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ] 1,423.81: zp[2]:15 [ init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ] 634.17: zp[2]:10 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ] 162.13: zp[1]:12 [ init_font_hex::c#6 init_font_hex::c#1 ]
|
||||
Uplift Scope [diff] 4,705: zp[1]:34 [ diff::return#1 diff::$4 diff::$2 ] 1,552: zp[1]:55 [ diff::bb2#0 ] 1,034.67: zp[1]:54 [ diff::bb1#0 ] 202: zp[1]:56 [ diff::return#0 ]
|
||||
Uplift Scope [print_char] 1,607: zp[1]:36 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
||||
Uplift Scope [main] 202: zp[2]:49 [ main::angle_w#0 ] 202: zp[2]:51 [ main::$4 ] 202: zp[1]:57 [ main::$6 ] 202: zp[1]:58 [ main::$7 ] 161.6: zp[1]:3 [ main::x#2 main::x#1 ] 86.44: zp[2]:4 [ main::screen_ref#2 main::screen_ref#5 main::screen_ref#1 ] 74.94: zp[2]:8 [ main::screen#2 main::screen#5 main::screen#1 ] 60.09: zp[2]:6 [ main::diff_sum#2 main::diff_sum#7 main::diff_sum#1 ] 50.5: zp[2]:39 [ main::xw#0 ] 50.5: zp[2]:41 [ main::yw#0 ] 43.29: zp[1]:53 [ main::ang_w#0 ] 17.46: zp[1]:2 [ main::y#4 main::y#1 ]
|
||||
Uplift Scope [main] 202: zp[2]:49 [ main::angle_w#0 ] 202: zp[2]:51 [ main::$6 ] 202: zp[1]:57 [ main::$8 ] 202: zp[1]:58 [ main::$9 ] 161.6: zp[1]:3 [ main::x#2 main::x#1 ] 86.44: zp[2]:4 [ main::screen_ref#2 main::screen_ref#5 main::screen_ref#1 ] 74.94: zp[2]:8 [ main::screen#2 main::screen#5 main::screen#1 ] 60.09: zp[2]:6 [ main::diff_sum#2 main::diff_sum#7 main::diff_sum#1 ] 50.5: zp[2]:39 [ main::xw#0 ] 50.5: zp[2]:41 [ main::yw#0 ] 43.29: zp[1]:53 [ main::ang_w#0 ] 17.46: zp[1]:2 [ main::y#4 main::y#1 ]
|
||||
Uplift Scope [] 1,263: zp[2]:37 [ print_char_cursor#19 print_char_cursor#26 print_char_cursor#20 ]
|
||||
Uplift Scope [print_uchar] 202: zp[1]:67 [ print_uchar::$0 ] 202: zp[1]:68 [ print_uchar::$2 ] 100: zp[1]:35 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ]
|
||||
Uplift Scope [print_uint] 8: zp[2]:59 [ print_uint::w#0 ]
|
||||
@ -2260,7 +2270,7 @@ Limited combination testing to 100 combinations of 6912 possible.
|
||||
Uplifting [diff] best 1135633 combination reg byte a [ diff::return#1 diff::$4 diff::$2 ] reg byte a [ diff::bb2#0 ] reg byte x [ diff::bb1#0 ] reg byte a [ diff::return#0 ]
|
||||
Limited combination testing to 100 combinations of 128 possible.
|
||||
Uplifting [print_char] best 1135624 combination reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
||||
Uplifting [main] best 1133724 combination zp[2]:49 [ main::angle_w#0 ] zp[2]:51 [ main::$4 ] reg byte a [ main::$6 ] reg byte a [ main::$7 ] zp[1]:3 [ main::x#2 main::x#1 ] zp[2]:4 [ main::screen_ref#2 main::screen_ref#5 main::screen_ref#1 ] zp[2]:8 [ main::screen#2 main::screen#5 main::screen#1 ] zp[2]:6 [ main::diff_sum#2 main::diff_sum#7 main::diff_sum#1 ] zp[2]:39 [ main::xw#0 ] zp[2]:41 [ main::yw#0 ] reg byte x [ main::ang_w#0 ] zp[1]:2 [ main::y#4 main::y#1 ]
|
||||
Uplifting [main] best 1133724 combination zp[2]:49 [ main::angle_w#0 ] zp[2]:51 [ main::$6 ] reg byte a [ main::$8 ] reg byte a [ main::$9 ] zp[1]:3 [ main::x#2 main::x#1 ] zp[2]:4 [ main::screen_ref#2 main::screen_ref#5 main::screen_ref#1 ] zp[2]:8 [ main::screen#2 main::screen#5 main::screen#1 ] zp[2]:6 [ main::diff_sum#2 main::diff_sum#7 main::diff_sum#1 ] zp[2]:39 [ main::xw#0 ] zp[2]:41 [ main::yw#0 ] reg byte x [ main::ang_w#0 ] zp[1]:2 [ main::y#4 main::y#1 ]
|
||||
Limited combination testing to 100 combinations of 128 possible.
|
||||
Uplifting [] best 1133724 combination zp[2]:37 [ print_char_cursor#19 print_char_cursor#26 print_char_cursor#20 ]
|
||||
Uplifting [print_uchar] best 1133706 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ]
|
||||
@ -2289,10 +2299,10 @@ Coalescing zero page register [ zp[2]:39 [ main::xw#0 ] ] with [ zp[2]:43 [ atan
|
||||
Coalescing zero page register [ zp[2]:41 [ main::yw#0 ] ] with [ zp[2]:45 [ atan2_16::y#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:47 [ atan2_16::return#2 ] ] with [ zp[2]:49 [ main::angle_w#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:25 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] ] with [ zp[2]:47 [ atan2_16::return#2 main::angle_w#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:25 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 ] ] with [ zp[2]:51 [ main::$4 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:25 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 ] ] with [ zp[2]:51 [ main::$6 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:20 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] ] with [ zp[2]:10 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:22 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] ] with [ zp[2]:13 [ init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ] ]
|
||||
Coalescing zero page register [ zp[2]:25 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 main::$4 ] ] with [ zp[2]:15 [ init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:25 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 main::$6 ] ] with [ zp[2]:15 [ init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:37 [ print_char_cursor#19 print_char_cursor#26 print_char_cursor#20 ] ] with [ zp[2]:4 [ main::screen_ref#2 main::screen_ref#5 main::screen_ref#1 ] ]
|
||||
Allocated (was zp[2]:6) zp[2]:4 [ main::diff_sum#2 main::diff_sum#7 main::diff_sum#1 print_uint::w#0 ]
|
||||
Allocated (was zp[2]:8) zp[2]:6 [ main::screen#2 main::screen#5 main::screen#1 ]
|
||||
@ -2301,7 +2311,7 @@ Allocated (was zp[1]:17) zp[1]:9 [ init_font_hex::c1#4 init_font_hex::c1#1 ]
|
||||
Allocated (was zp[1]:19) zp[1]:10 [ init_font_hex::idx#5 init_font_hex::idx#2 ]
|
||||
Allocated (was zp[2]:20) zp[2]:11 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ]
|
||||
Allocated (was zp[2]:22) zp[2]:13 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ]
|
||||
Allocated (was zp[2]:25) zp[2]:15 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 main::$4 init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ]
|
||||
Allocated (was zp[2]:25) zp[2]:15 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 main::$6 init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ]
|
||||
Allocated (was zp[2]:30) zp[2]:17 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
||||
Allocated (was zp[2]:32) zp[2]:19 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
||||
Allocated (was zp[2]:37) zp[2]:21 [ print_char_cursor#19 print_char_cursor#26 print_char_cursor#20 main::screen_ref#2 main::screen_ref#5 main::screen_ref#1 ]
|
||||
@ -2339,7 +2349,7 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
main: {
|
||||
.const toD0181_return = (>(SCREEN&$3fff)*4)|(>CHARSET)/4&$f
|
||||
.label col00 = COLS+$c*$28+$13
|
||||
.label __4 = $f
|
||||
.label __6 = $f
|
||||
.label xw = $17
|
||||
.label yw = $19
|
||||
.label angle_w = $f
|
||||
@ -2430,16 +2440,16 @@ main: {
|
||||
// main::@7
|
||||
__b7:
|
||||
// [12] main::angle_w#0 = atan2_16::return#2
|
||||
// [13] main::$4 = main::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [13] main::$6 = main::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __4
|
||||
sta.z __4
|
||||
adc.z __6
|
||||
sta.z __6
|
||||
bcc !+
|
||||
inc.z __4+1
|
||||
inc.z __6+1
|
||||
!:
|
||||
// [14] main::ang_w#0 = byte1 main::$4 -- vbuxx=_byte1_vwuz1
|
||||
ldx.z __4+1
|
||||
// [14] main::ang_w#0 = byte1 main::$6 -- vbuxx=_byte1_vwuz1
|
||||
ldx.z __6+1
|
||||
// [15] diff::bb1#0 = main::ang_w#0
|
||||
// [16] diff::bb2#0 = *main::screen_ref#2 -- vbuaa=_deref_pbuz1
|
||||
ldy #0
|
||||
@ -2450,8 +2460,8 @@ main: {
|
||||
jmp __b8
|
||||
// main::@8
|
||||
__b8:
|
||||
// [19] main::$6 = diff::return#0
|
||||
// [20] main::diff_sum#1 = main::diff_sum#2 + main::$6 -- vwuz1=vwuz1_plus_vbuaa
|
||||
// [19] main::$8 = diff::return#0
|
||||
// [20] main::diff_sum#1 = main::diff_sum#2 + main::$8 -- vwuz1=vwuz1_plus_vbuaa
|
||||
//*screen = (>angle_w)-angle_b;
|
||||
//*screen = >angle_w;
|
||||
clc
|
||||
@ -2460,12 +2470,12 @@ main: {
|
||||
bcc !+
|
||||
inc.z diff_sum+1
|
||||
!:
|
||||
// [21] main::$7 = main::ang_w#0 - *main::screen_ref#2 -- vbuaa=vbuxx_minus__deref_pbuz1
|
||||
// [21] main::$9 = main::ang_w#0 - *main::screen_ref#2 -- vbuaa=vbuxx_minus__deref_pbuz1
|
||||
txa
|
||||
sec
|
||||
ldy #0
|
||||
sbc (screen_ref),y
|
||||
// [22] *main::screen#2 = main::$7 -- _deref_pbuz1=vbuaa
|
||||
// [22] *main::screen#2 = main::$9 -- _deref_pbuz1=vbuaa
|
||||
ldy #0
|
||||
sta (screen),y
|
||||
// [23] main::screen#1 = ++ main::screen#2 -- pbuz1=_inc_pbuz1
|
||||
@ -3373,9 +3383,9 @@ byte* init_font_hex::proto_lo
|
||||
byte* init_font_hex::proto_lo#1 proto_lo zp[2]:15 500.5
|
||||
byte* init_font_hex::proto_lo#4 proto_lo zp[2]:15 923.3076923076923
|
||||
void main()
|
||||
word~ main::$4 zp[2]:15 202.0
|
||||
byte~ main::$6 reg byte a 202.0
|
||||
byte~ main::$7 reg byte a 202.0
|
||||
word~ main::$6 zp[2]:15 202.0
|
||||
byte~ main::$8 reg byte a 202.0
|
||||
byte~ main::$9 reg byte a 202.0
|
||||
byte main::ang_w
|
||||
byte main::ang_w#0 reg byte x 43.285714285714285
|
||||
word main::angle_w
|
||||
@ -3442,7 +3452,7 @@ zp[1]:10 [ init_font_hex::idx#5 init_font_hex::idx#2 ]
|
||||
zp[2]:11 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ]
|
||||
zp[2]:13 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ]
|
||||
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
||||
zp[2]:15 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 main::$4 init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ]
|
||||
zp[2]:15 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 main::$6 init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ]
|
||||
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
||||
zp[2]:17 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
||||
zp[2]:19 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
||||
@ -3456,8 +3466,8 @@ reg byte x [ main::ang_w#0 ]
|
||||
reg byte x [ diff::bb1#0 ]
|
||||
reg byte a [ diff::bb2#0 ]
|
||||
reg byte a [ diff::return#0 ]
|
||||
reg byte a [ main::$6 ]
|
||||
reg byte a [ main::$7 ]
|
||||
reg byte a [ main::$8 ]
|
||||
reg byte a [ main::$9 ]
|
||||
zp[1]:27 [ init_font_hex::$0 ]
|
||||
reg byte a [ init_font_hex::$1 ]
|
||||
reg byte a [ init_font_hex::$2 ]
|
||||
@ -3500,7 +3510,7 @@ Score: 1041603
|
||||
main: {
|
||||
.const toD0181_return = (>(SCREEN&$3fff)*4)|(>CHARSET)/4&$f
|
||||
.label col00 = COLS+$c*$28+$13
|
||||
.label __4 = $f
|
||||
.label __6 = $f
|
||||
.label xw = $17
|
||||
.label yw = $19
|
||||
.label angle_w = $f
|
||||
@ -3559,13 +3569,13 @@ main: {
|
||||
// [5] phi main::x#2 = main::x#1 [phi:main::@8->main::@2#3] -- register_copy
|
||||
// main::@2
|
||||
__b2:
|
||||
// signed word xw = (signed word)(word){ (byte)x, 0 }
|
||||
// MAKEWORD( (byte)x, 0 )
|
||||
// [6] main::xw#0 = (byte)main::x#2 w= 0 -- vwuz1=vbuz2_word_vbuc1
|
||||
lda #0
|
||||
ldy.z x
|
||||
sty.z xw+1
|
||||
sta.z xw
|
||||
// signed word yw = (signed word)(word){ (byte)y, 0 }
|
||||
// MAKEWORD( (byte)y, 0 )
|
||||
// [7] main::yw#0 = (byte)main::y#4 w= 0 -- vwuz1=vbuz2_word_vbuc1
|
||||
ldy.z y
|
||||
sty.z yw+1
|
||||
@ -3580,17 +3590,17 @@ main: {
|
||||
// word angle_w = atan2_16(xw, yw)
|
||||
// [12] main::angle_w#0 = atan2_16::return#2
|
||||
// angle_w+0x0080
|
||||
// [13] main::$4 = main::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [13] main::$6 = main::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __4
|
||||
sta.z __4
|
||||
adc.z __6
|
||||
sta.z __6
|
||||
bcc !+
|
||||
inc.z __4+1
|
||||
inc.z __6+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
// [14] main::ang_w#0 = byte1 main::$4 -- vbuxx=_byte1_vwuz1
|
||||
ldx.z __4+1
|
||||
// [14] main::ang_w#0 = byte1 main::$6 -- vbuxx=_byte1_vwuz1
|
||||
ldx.z __6+1
|
||||
// diff(ang_w, *screen_ref)
|
||||
// [15] diff::bb1#0 = main::ang_w#0
|
||||
// [16] diff::bb2#0 = *main::screen_ref#2 -- vbuaa=_deref_pbuz1
|
||||
@ -3600,9 +3610,9 @@ main: {
|
||||
jsr diff
|
||||
// [18] diff::return#0 = diff::return#1
|
||||
// main::@8
|
||||
// [19] main::$6 = diff::return#0
|
||||
// [19] main::$8 = diff::return#0
|
||||
// diff_sum += diff(ang_w, *screen_ref)
|
||||
// [20] main::diff_sum#1 = main::diff_sum#2 + main::$6 -- vwuz1=vwuz1_plus_vbuaa
|
||||
// [20] main::diff_sum#1 = main::diff_sum#2 + main::$8 -- vwuz1=vwuz1_plus_vbuaa
|
||||
//*screen = (>angle_w)-angle_b;
|
||||
//*screen = >angle_w;
|
||||
clc
|
||||
@ -3612,13 +3622,13 @@ main: {
|
||||
inc.z diff_sum+1
|
||||
!:
|
||||
// ang_w - *screen_ref
|
||||
// [21] main::$7 = main::ang_w#0 - *main::screen_ref#2 -- vbuaa=vbuxx_minus__deref_pbuz1
|
||||
// [21] main::$9 = main::ang_w#0 - *main::screen_ref#2 -- vbuaa=vbuxx_minus__deref_pbuz1
|
||||
txa
|
||||
sec
|
||||
ldy #0
|
||||
sbc (screen_ref),y
|
||||
// *screen = ang_w - *screen_ref
|
||||
// [22] *main::screen#2 = main::$7 -- _deref_pbuz1=vbuaa
|
||||
// [22] *main::screen#2 = main::$9 -- _deref_pbuz1=vbuaa
|
||||
sta (screen),y
|
||||
// screen++;
|
||||
// [23] main::screen#1 = ++ main::screen#2 -- pbuz1=_inc_pbuz1
|
||||
|
@ -108,9 +108,9 @@ byte* init_font_hex::proto_lo
|
||||
byte* init_font_hex::proto_lo#1 proto_lo zp[2]:15 500.5
|
||||
byte* init_font_hex::proto_lo#4 proto_lo zp[2]:15 923.3076923076923
|
||||
void main()
|
||||
word~ main::$4 zp[2]:15 202.0
|
||||
byte~ main::$6 reg byte a 202.0
|
||||
byte~ main::$7 reg byte a 202.0
|
||||
word~ main::$6 zp[2]:15 202.0
|
||||
byte~ main::$8 reg byte a 202.0
|
||||
byte~ main::$9 reg byte a 202.0
|
||||
byte main::ang_w
|
||||
byte main::ang_w#0 reg byte x 43.285714285714285
|
||||
word main::angle_w
|
||||
@ -177,7 +177,7 @@ zp[1]:10 [ init_font_hex::idx#5 init_font_hex::idx#2 ]
|
||||
zp[2]:11 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ]
|
||||
zp[2]:13 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ]
|
||||
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
||||
zp[2]:15 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 main::$4 init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ]
|
||||
zp[2]:15 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 main::angle_w#0 main::$6 init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ]
|
||||
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
||||
zp[2]:17 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
||||
zp[2]:19 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
||||
@ -191,8 +191,8 @@ reg byte x [ main::ang_w#0 ]
|
||||
reg byte x [ diff::bb1#0 ]
|
||||
reg byte a [ diff::bb2#0 ]
|
||||
reg byte a [ diff::return#0 ]
|
||||
reg byte a [ main::$6 ]
|
||||
reg byte a [ main::$7 ]
|
||||
reg byte a [ main::$8 ]
|
||||
reg byte a [ main::$9 ]
|
||||
zp[1]:27 [ init_font_hex::$0 ]
|
||||
reg byte a [ init_font_hex::$1 ]
|
||||
reg byte a [ init_font_hex::$2 ]
|
||||
|
@ -537,7 +537,7 @@ mulf8u_prepared: {
|
||||
sm4:
|
||||
sbc mulf_sqr2_hi,x
|
||||
sta memB
|
||||
// return { *memB, *resL };
|
||||
// MAKEWORD( *memB, *resL )
|
||||
sta.z return+1
|
||||
lda resL
|
||||
sta.z return
|
||||
|
@ -124,7 +124,8 @@ mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared
|
||||
mulf8u_prepared::b#1 = phi( mulf8s_prepared/mulf8u_prepared::b#0 )
|
||||
*mulf8u_prepared::memB = mulf8u_prepared::b#1
|
||||
asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB }
|
||||
mulf8u_prepared::return#0 = ((word)) { *mulf8u_prepared::memB, *mulf8u_prepared::resL }
|
||||
mulf8u_prepared::$0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL
|
||||
mulf8u_prepared::return#0 = mulf8u_prepared::$0
|
||||
to:mulf8u_prepared::@return
|
||||
mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared
|
||||
mulf8u_prepared::return#3 = phi( mulf8u_prepared/mulf8u_prepared::return#0 )
|
||||
@ -852,6 +853,7 @@ byte mulf8u_prepare::a#1
|
||||
byte mulf8u_prepare::a#2
|
||||
constant byte* const mulf8u_prepare::memA = (byte*)$fd
|
||||
word mulf8u_prepared(byte mulf8u_prepared::b)
|
||||
word~ mulf8u_prepared::$0
|
||||
byte mulf8u_prepared::b
|
||||
byte mulf8u_prepared::b#0
|
||||
byte mulf8u_prepared::b#1
|
||||
@ -995,8 +997,6 @@ dword print_ulong_at::dw#2
|
||||
constant signed byte* xs[8] = { -$46, -$46, -$46, 0, 0, $46, $46, $46 }
|
||||
constant signed byte* ys[8] = { -$46, 0, $46, -$46, $46, -$46, 0, $46 }
|
||||
|
||||
Fixing inline constructor with mulf8u_prepared::$0 = (byte)*mulf8u_prepared::memB w= (byte)*mulf8u_prepared::resL
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) $40 in
|
||||
Adding number conversion cast (unumber) 1 in mulf_init::sqr1_hi#0 = mulf_sqr1_hi+1
|
||||
Adding number conversion cast (unumber) 1 in mulf_init::sqr1_lo#0 = mulf_sqr1_lo+1
|
||||
@ -1078,8 +1078,6 @@ Simplifying constant integer cast $1ff
|
||||
Simplifying constant integer cast $100
|
||||
Simplifying constant integer cast $1ff
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast *mulf8u_prepared::memB
|
||||
Simplifying constant integer cast *mulf8u_prepared::resL
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast $ffffffff
|
||||
@ -4660,7 +4658,7 @@ mulf8u_prepared: {
|
||||
sm4:
|
||||
sbc mulf_sqr2_hi,x
|
||||
sta memB
|
||||
// return { *memB, *resL };
|
||||
// MAKEWORD( *memB, *resL )
|
||||
// [132] mulf8u_prepared::return#0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL -- vwuz1=_deref_pbuc1_word__deref_pbuc2
|
||||
sta.z return+1
|
||||
lda resL
|
||||
|
@ -323,7 +323,7 @@ div32u16u: {
|
||||
jsr divr16u
|
||||
// divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
lda.z quotient_hi+1
|
||||
|
@ -6784,7 +6784,7 @@ div32u16u: {
|
||||
// div32u16u::@2
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// [68] div32u16u::quotient_lo#0 = divr16u::return#3
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
// [69] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
|
@ -472,7 +472,7 @@ div32u16u: {
|
||||
jsr divr16u
|
||||
// divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
lda.z quotient_hi+1
|
||||
|
@ -6712,7 +6712,7 @@ div32u16u: {
|
||||
// div32u16u::@2
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// [108] div32u16u::quotient_lo#0 = divr16u::return#3
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
// [109] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
|
@ -175,7 +175,7 @@ bitmap_init: {
|
||||
bitmap_clear: {
|
||||
.label bitmap = 3
|
||||
.label y = 9
|
||||
// byte* bitmap = (byte*) { bitmap_plot_yhi[0], bitmap_plot_ylo[0] }
|
||||
// MAKEWORD( bitmap_plot_yhi[0], bitmap_plot_ylo[0] )
|
||||
lda bitmap_plot_yhi
|
||||
sta.z bitmap+1
|
||||
lda bitmap_plot_ylo
|
||||
@ -419,10 +419,10 @@ point_init: {
|
||||
// Plot a single dot in the bitmap
|
||||
// bitmap_plot(word zp(7) x, byte register(X) y)
|
||||
bitmap_plot: {
|
||||
.label __0 = $12
|
||||
.label __1 = $12
|
||||
.label x = 7
|
||||
.label plotter = $10
|
||||
// byte* plotter = (byte*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] }
|
||||
// MAKEWORD( bitmap_plot_yhi[y], bitmap_plot_ylo[y] )
|
||||
lda bitmap_plot_yhi,x
|
||||
sta.z plotter+1
|
||||
lda bitmap_plot_ylo,x
|
||||
@ -430,17 +430,17 @@ bitmap_plot: {
|
||||
// x & $fff8
|
||||
lda.z x
|
||||
and #<$fff8
|
||||
sta.z __0
|
||||
sta.z __1
|
||||
lda.z x+1
|
||||
and #>$fff8
|
||||
sta.z __0+1
|
||||
sta.z __1+1
|
||||
// plotter += ( x & $fff8 )
|
||||
clc
|
||||
lda.z plotter
|
||||
adc.z __0
|
||||
adc.z __1
|
||||
sta.z plotter
|
||||
lda.z plotter+1
|
||||
adc.z __0+1
|
||||
adc.z __1+1
|
||||
sta.z plotter+1
|
||||
// BYTE0(x)
|
||||
ldx.z x
|
||||
|
@ -216,10 +216,10 @@ point_init::abs16s1_@1: scope:[point_init] from point_init::abs16s1
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
bitmap_plot: scope:[bitmap_plot] from main::@7
|
||||
[102] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0]
|
||||
[103] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8
|
||||
[104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
|
||||
[105] bitmap_plot::$1 = byte0 bitmap_plot::x#0
|
||||
[106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
|
||||
[103] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8
|
||||
[104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1
|
||||
[105] bitmap_plot::$2 = byte0 bitmap_plot::x#0
|
||||
[106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
|
||||
to:bitmap_plot::@return
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
[107] return
|
||||
|
@ -520,7 +520,8 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
|
||||
|
||||
void bitmap_clear()
|
||||
bitmap_clear: scope:[bitmap_clear] from main::@7
|
||||
bitmap_clear::bitmap#0 = (byte*){ bitmap_plot_yhi[0], bitmap_plot_ylo[0] }
|
||||
bitmap_clear::$0 = bitmap_plot_yhi[0] w= bitmap_plot_ylo[0]
|
||||
bitmap_clear::bitmap#0 = (byte*)bitmap_clear::$0
|
||||
bitmap_clear::y#0 = 0
|
||||
to:bitmap_clear::@1
|
||||
bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3
|
||||
@ -535,15 +536,15 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2
|
||||
*bitmap_clear::bitmap#2 = 0
|
||||
bitmap_clear::bitmap#1 = ++ bitmap_clear::bitmap#2
|
||||
bitmap_clear::x#1 = bitmap_clear::x#2 + rangenext(0,$c7)
|
||||
bitmap_clear::$0 = bitmap_clear::x#1 != rangelast(0,$c7)
|
||||
if(bitmap_clear::$0) goto bitmap_clear::@2
|
||||
bitmap_clear::$1 = bitmap_clear::x#1 != rangelast(0,$c7)
|
||||
if(bitmap_clear::$1) goto bitmap_clear::@2
|
||||
to:bitmap_clear::@3
|
||||
bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
|
||||
bitmap_clear::bitmap#4 = phi( bitmap_clear::@2/bitmap_clear::bitmap#1 )
|
||||
bitmap_clear::y#2 = phi( bitmap_clear::@2/bitmap_clear::y#3 )
|
||||
bitmap_clear::y#1 = bitmap_clear::y#2 + rangenext(0,$27)
|
||||
bitmap_clear::$1 = bitmap_clear::y#1 != rangelast(0,$27)
|
||||
if(bitmap_clear::$1) goto bitmap_clear::@1
|
||||
bitmap_clear::$2 = bitmap_clear::y#1 != rangelast(0,$27)
|
||||
if(bitmap_clear::$2) goto bitmap_clear::@1
|
||||
to:bitmap_clear::@return
|
||||
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
|
||||
return
|
||||
@ -553,11 +554,12 @@ void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
bitmap_plot: scope:[bitmap_plot] from main::@10
|
||||
bitmap_plot::x#1 = phi( main::@10/bitmap_plot::x#0 )
|
||||
bitmap_plot::y#1 = phi( main::@10/bitmap_plot::y#0 )
|
||||
bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#1], bitmap_plot_ylo[bitmap_plot::y#1] }
|
||||
bitmap_plot::$0 = bitmap_plot::x#1 & $fff8
|
||||
bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0
|
||||
bitmap_plot::$1 = byte0 bitmap_plot::x#1
|
||||
*bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
|
||||
bitmap_plot::$0 = bitmap_plot_yhi[bitmap_plot::y#1] w= bitmap_plot_ylo[bitmap_plot::y#1]
|
||||
bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0
|
||||
bitmap_plot::$1 = bitmap_plot::x#1 & $fff8
|
||||
bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$1
|
||||
bitmap_plot::$2 = byte0 bitmap_plot::x#1
|
||||
*bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
|
||||
to:bitmap_plot::@return
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
return
|
||||
@ -599,8 +601,9 @@ constant const byte VICII_DEN = $10
|
||||
constant const byte VICII_RSEL = 8
|
||||
void __start()
|
||||
void bitmap_clear()
|
||||
bool~ bitmap_clear::$0
|
||||
word~ bitmap_clear::$0
|
||||
bool~ bitmap_clear::$1
|
||||
bool~ bitmap_clear::$2
|
||||
byte* bitmap_clear::bitmap
|
||||
byte* bitmap_clear::bitmap#0
|
||||
byte* bitmap_clear::bitmap#1
|
||||
@ -662,8 +665,9 @@ byte* bitmap_init::yoffs#2
|
||||
byte* bitmap_init::yoffs#3
|
||||
byte* bitmap_init::yoffs#4
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
number~ bitmap_plot::$0
|
||||
byte~ bitmap_plot::$1
|
||||
word~ bitmap_plot::$0
|
||||
number~ bitmap_plot::$1
|
||||
byte~ bitmap_plot::$2
|
||||
byte* bitmap_plot::plotter
|
||||
byte* bitmap_plot::plotter#0
|
||||
byte* bitmap_plot::plotter#1
|
||||
@ -994,9 +998,6 @@ constant word* y_cur[SIZE] = { fill( SIZE, 0) }
|
||||
constant byte* y_end[SIZE] = { $14, $14, $a, $14 }
|
||||
constant byte* y_start[SIZE] = { $a, $a, $a, $14 }
|
||||
|
||||
Fixing inline constructor with bitmap_clear::$2 = (byte)bitmap_plot_yhi[0] w= (byte)bitmap_plot_ylo[0]
|
||||
Fixing inline constructor with bitmap_plot::$2 = (byte)bitmap_plot_yhi[bitmap_plot::y#1] w= (byte)bitmap_plot_ylo[bitmap_plot::y#1]
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) 1 in divr16u::$0 = divr16u::rem#4 << 1
|
||||
Adding number conversion cast (unumber) $80 in divr16u::$2 = divr16u::$1 & $80
|
||||
Adding number conversion cast (unumber) divr16u::$2 in divr16u::$2 = divr16u::$1 & (unumber)$80
|
||||
@ -1053,11 +1054,11 @@ Adding number conversion cast (unumber) 7 in bitmap_init::$7 = bitmap_init::y#2
|
||||
Adding number conversion cast (unumber) bitmap_init::$7 in bitmap_init::$7 = bitmap_init::y#2 & (unumber)7
|
||||
Adding number conversion cast (unumber) 7 in bitmap_init::$8 = bitmap_init::$7 == 7
|
||||
Adding number conversion cast (unumber) $28*8 in bitmap_init::$10 = bitmap_init::yoffs#3 + $28*8
|
||||
Adding number conversion cast (unumber) 0 in bitmap_clear::$2 = (byte)bitmap_plot_yhi[0] w= (byte)bitmap_plot_ylo[0]
|
||||
Adding number conversion cast (unumber) 0 in bitmap_clear::$2 = (byte)bitmap_plot_yhi[(unumber)0] w= (byte)bitmap_plot_ylo[0]
|
||||
Adding number conversion cast (unumber) 0 in bitmap_clear::$0 = bitmap_plot_yhi[0] w= bitmap_plot_ylo[0]
|
||||
Adding number conversion cast (unumber) 0 in bitmap_clear::$0 = bitmap_plot_yhi[(unumber)0] w= bitmap_plot_ylo[0]
|
||||
Adding number conversion cast (unumber) 0 in *bitmap_clear::bitmap#2 = 0
|
||||
Adding number conversion cast (unumber) $fff8 in bitmap_plot::$0 = bitmap_plot::x#1 & $fff8
|
||||
Adding number conversion cast (unumber) bitmap_plot::$0 in bitmap_plot::$0 = bitmap_plot::x#1 & (unumber)$fff8
|
||||
Adding number conversion cast (unumber) $fff8 in bitmap_plot::$1 = bitmap_plot::x#1 & $fff8
|
||||
Adding number conversion cast (unumber) bitmap_plot::$1 in bitmap_plot::$1 = bitmap_plot::x#1 & (unumber)$fff8
|
||||
Successful SSA optimization PassNAddNumberTypeConversions
|
||||
Inlining cast divr16s::neg#1 = (unumber)1
|
||||
Inlining cast *D011 = (unumber)VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3
|
||||
@ -1117,13 +1118,9 @@ Simplifying constant integer cast $80
|
||||
Simplifying constant integer cast 7
|
||||
Simplifying constant integer cast 7
|
||||
Simplifying constant integer cast 7
|
||||
Simplifying constant integer cast bitmap_plot_yhi[(unumber)0]
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast bitmap_plot_ylo[(unumber)0]
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast bitmap_plot_yhi[bitmap_plot::y#1]
|
||||
Simplifying constant integer cast bitmap_plot_ylo[bitmap_plot::y#1]
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast $fff8
|
||||
Successful SSA optimization PassNCastSimplification
|
||||
Finalized unsigned number type (byte) 1
|
||||
@ -1185,7 +1182,7 @@ Inferred type updated to byte in point_init::$10 = point_init::$9 / $10
|
||||
Inferred type updated to byte in bitmap_init::$3 = bitmap_init::y#2 & 7
|
||||
Inferred type updated to byte in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4
|
||||
Inferred type updated to byte in bitmap_init::$7 = bitmap_init::y#2 & 7
|
||||
Inferred type updated to word in bitmap_plot::$0 = bitmap_plot::x#1 & $fff8
|
||||
Inferred type updated to word in bitmap_plot::$1 = bitmap_plot::x#1 & $fff8
|
||||
Inversing boolean not [9] divr16u::$4 = divr16u::$2 == 0 from [8] divr16u::$3 = divr16u::$2 != 0
|
||||
Inversing boolean not [17] divr16u::$9 = divr16u::rem#5 < divr16u::divisor#1 from [16] divr16u::$8 = divr16u::rem#5 >= divr16u::divisor#1
|
||||
Inversing boolean not [231] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [230] bitmap_init::$0 = bitmap_init::bits#1 == 0
|
||||
@ -1308,8 +1305,8 @@ Simple Condition bitmap_init::$1 [167] if(bitmap_init::bits#1!=0) goto bitmap_in
|
||||
Simple Condition bitmap_init::$2 [171] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
|
||||
Simple Condition bitmap_init::$9 [183] if(bitmap_init::$7!=7) goto bitmap_init::@6
|
||||
Simple Condition bitmap_init::$11 [187] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
|
||||
Simple Condition bitmap_clear::$0 [200] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
|
||||
Simple Condition bitmap_clear::$1 [203] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1
|
||||
Simple Condition bitmap_clear::$1 [200] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
|
||||
Simple Condition bitmap_clear::$2 [203] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1
|
||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||
Rewriting || if()-condition to two if()s [28] divr16s::$2 = divr16s::$0 || divr16s::$1
|
||||
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
||||
@ -1364,8 +1361,8 @@ Resolved ranged comparison value [203] if(bitmap_clear::y#1!=rangelast(0,$27)) g
|
||||
Simplifying constant evaluating to zero (word)divr16s::dividend#0 in
|
||||
Successful SSA optimization PassNSimplifyConstantZero
|
||||
Simplifying expression containing zero (byte*)CIA2 in [67] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::vicSelectGfxBank1_toDd001_return#0
|
||||
Simplifying expression containing zero bitmap_plot_yhi in [190] bitmap_clear::$2 = bitmap_plot_yhi[0] w= bitmap_plot_ylo[0]
|
||||
Simplifying expression containing zero bitmap_plot_ylo in [190] bitmap_clear::$2 = *bitmap_plot_yhi w= bitmap_plot_ylo[0]
|
||||
Simplifying expression containing zero bitmap_plot_yhi in [190] bitmap_clear::$0 = bitmap_plot_yhi[0] w= bitmap_plot_ylo[0]
|
||||
Simplifying expression containing zero bitmap_plot_ylo in [190] bitmap_clear::$0 = *bitmap_plot_yhi w= bitmap_plot_ylo[0]
|
||||
Successful SSA optimization PassNSimplifyExpressionWithZero
|
||||
Removing unused block main::@return
|
||||
Successful SSA optimization Pass2EliminateUnusedBlocks
|
||||
@ -1460,8 +1457,8 @@ Inlining Noop Cast [17] divr16s::remu#1 = (word)divr16s::$7 keeping divr16s::rem
|
||||
Inlining Noop Cast [22] divr16s::divisoru#1 = (word)divr16s::$8 keeping divr16s::divisoru#1
|
||||
Inlining Noop Cast [67] point_init::abs16s1_return#0 = (word)point_init::abs16s1_$1 keeping point_init::abs16s1_return#0
|
||||
Inlining Noop Cast [72] point_init::abs16s2_return#0 = (word)point_init::abs16s2_$1 keeping point_init::abs16s2_return#0
|
||||
Inlining Noop Cast [125] bitmap_clear::bitmap#0 = (byte*)bitmap_clear::$2 keeping bitmap_clear::bitmap#0
|
||||
Inlining Noop Cast [136] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$2 keeping bitmap_plot::plotter#0
|
||||
Inlining Noop Cast [125] bitmap_clear::bitmap#0 = (byte*)bitmap_clear::$0 keeping bitmap_clear::bitmap#0
|
||||
Inlining Noop Cast [136] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 keeping bitmap_plot::plotter#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Inlining Noop Cast [18] divr16s::remu#2 = (word)divr16s::rem#0 keeping divr16s::rem#0
|
||||
Inlining Noop Cast [24] divr16s::divisoru#2 = (word)divr16s::divisor#0 keeping divr16s::divisor#0
|
||||
@ -1875,10 +1872,10 @@ point_init::abs16s1_@1: scope:[point_init] from point_init::abs16s1
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
bitmap_plot: scope:[bitmap_plot] from main::@7
|
||||
[102] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0]
|
||||
[103] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8
|
||||
[104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
|
||||
[105] bitmap_plot::$1 = byte0 bitmap_plot::x#0
|
||||
[106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
|
||||
[103] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8
|
||||
[104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1
|
||||
[105] bitmap_plot::$2 = byte0 bitmap_plot::x#0
|
||||
[106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
|
||||
to:bitmap_plot::@return
|
||||
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
||||
[107] return
|
||||
@ -2007,8 +2004,8 @@ byte* bitmap_init::yoffs#1 202.0
|
||||
byte* bitmap_init::yoffs#2 63.125
|
||||
byte* bitmap_init::yoffs#4 101.0
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
word~ bitmap_plot::$0 202.0
|
||||
byte~ bitmap_plot::$1 202.0
|
||||
word~ bitmap_plot::$1 202.0
|
||||
byte~ bitmap_plot::$2 202.0
|
||||
byte* bitmap_plot::plotter
|
||||
word bitmap_plot::plotter#0 50.5
|
||||
byte* bitmap_plot::plotter#1 151.5
|
||||
@ -2171,9 +2168,9 @@ Added variable point_init::$10 to live range equivalence class [ point_init::$10
|
||||
Added variable point_init::abs16s2_return#0 to live range equivalence class [ point_init::abs16s2_return#0 ]
|
||||
Added variable point_init::abs16s1_return#0 to live range equivalence class [ point_init::abs16s1_return#0 ]
|
||||
Added variable bitmap_plot::plotter#0 to live range equivalence class [ bitmap_plot::plotter#0 ]
|
||||
Added variable bitmap_plot::$0 to live range equivalence class [ bitmap_plot::$0 ]
|
||||
Added variable bitmap_plot::plotter#1 to live range equivalence class [ bitmap_plot::plotter#1 ]
|
||||
Added variable bitmap_plot::$1 to live range equivalence class [ bitmap_plot::$1 ]
|
||||
Added variable bitmap_plot::plotter#1 to live range equivalence class [ bitmap_plot::plotter#1 ]
|
||||
Added variable bitmap_plot::$2 to live range equivalence class [ bitmap_plot::$2 ]
|
||||
Added variable divr16u::divisor#0 to live range equivalence class [ divr16u::divisor#0 ]
|
||||
Added variable divr16u::return#2 to live range equivalence class [ divr16u::return#2 ]
|
||||
Added variable divr16s::resultu#0 to live range equivalence class [ divr16s::resultu#0 ]
|
||||
@ -2229,9 +2226,9 @@ Complete equivalence classes
|
||||
[ point_init::abs16s2_return#0 ]
|
||||
[ point_init::abs16s1_return#0 ]
|
||||
[ bitmap_plot::plotter#0 ]
|
||||
[ bitmap_plot::$0 ]
|
||||
[ bitmap_plot::plotter#1 ]
|
||||
[ bitmap_plot::$1 ]
|
||||
[ bitmap_plot::plotter#1 ]
|
||||
[ bitmap_plot::$2 ]
|
||||
[ divr16u::divisor#0 ]
|
||||
[ divr16u::return#2 ]
|
||||
[ divr16s::resultu#0 ]
|
||||
@ -2286,9 +2283,9 @@ Allocated zp[1]:69 [ point_init::$10 ]
|
||||
Allocated zp[2]:70 [ point_init::abs16s2_return#0 ]
|
||||
Allocated zp[2]:72 [ point_init::abs16s1_return#0 ]
|
||||
Allocated zp[2]:74 [ bitmap_plot::plotter#0 ]
|
||||
Allocated zp[2]:76 [ bitmap_plot::$0 ]
|
||||
Allocated zp[2]:76 [ bitmap_plot::$1 ]
|
||||
Allocated zp[2]:78 [ bitmap_plot::plotter#1 ]
|
||||
Allocated zp[1]:80 [ bitmap_plot::$1 ]
|
||||
Allocated zp[1]:80 [ bitmap_plot::$2 ]
|
||||
Allocated zp[2]:81 [ divr16u::divisor#0 ]
|
||||
Allocated zp[2]:83 [ divr16u::return#2 ]
|
||||
Allocated zp[2]:85 [ divr16s::resultu#0 ]
|
||||
@ -2353,9 +2350,9 @@ Statement [99] point_init::abs16s2_return#5 = (word)point_init::abs16s2_return#0
|
||||
Statement [100] point_init::abs16s1_return#0 = - point_init::x_diff#1 [ point_init::point_idx#0 point_init::$13 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#0 ] ( point_init:16 [ main::i#2 point_init::point_idx#0 point_init::$13 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#0 ] { { point_init::point_idx#0 = main::i#2 } } ) always clobbers reg byte a
|
||||
Statement [101] point_init::abs16s1_return#5 = (word)point_init::abs16s1_return#0 [ point_init::point_idx#0 point_init::$13 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#5 ] ( point_init:16 [ main::i#2 point_init::point_idx#0 point_init::$13 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#5 ] { { point_init::point_idx#0 = main::i#2 } } ) always clobbers reg byte a
|
||||
Statement [102] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [ bitmap_plot::x#0 bitmap_plot::plotter#0 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#0 ] { } ) always clobbers reg byte a
|
||||
Statement [103] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] { } ) always clobbers reg byte a
|
||||
Statement [104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#1 ] { } ) always clobbers reg byte a
|
||||
Statement [106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] [ ] ( bitmap_plot:20 [ main::i#2 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [103] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$1 ] { } ) always clobbers reg byte a
|
||||
Statement [104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#1 ] { } ) always clobbers reg byte a
|
||||
Statement [106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_plot:20 [ main::i#2 ] { } ) always clobbers reg byte a reg byte y
|
||||
Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ]
|
||||
Statement [109] if(divr16s::rem#0<0) goto divr16s::@1 [ divr16s::divisor#0 divr16s::rem#0 ] ( point_init:16::divr16s:91 [ main::i#2 point_init::point_idx#0 point_init::$13 divr16s::divisor#0 divr16s::rem#0 ] { { point_init::point_idx#0 = main::i#2 } { divr16s::divisor#0 = point_init::x_diff#1 } { divr16s::rem#0 = point_init::y_diff#0 } { divr16s::return#2 = divr16s::return#3 } } ) always clobbers reg byte a
|
||||
Statement [110] divr16s::remu#8 = (word)divr16s::rem#0 [ divr16s::divisor#0 divr16s::remu#8 ] ( point_init:16::divr16s:91 [ main::i#2 point_init::point_idx#0 point_init::$13 divr16s::divisor#0 divr16s::remu#8 ] { { point_init::point_idx#0 = main::i#2 } { divr16s::divisor#0 = point_init::x_diff#1 } { divr16s::rem#0 = point_init::y_diff#0 } { divr16s::return#2 = divr16s::return#3 } } ) always clobbers reg byte a
|
||||
@ -2421,9 +2418,9 @@ Statement [99] point_init::abs16s2_return#5 = (word)point_init::abs16s2_return#0
|
||||
Statement [100] point_init::abs16s1_return#0 = - point_init::x_diff#1 [ point_init::point_idx#0 point_init::$13 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#0 ] ( point_init:16 [ main::i#2 point_init::point_idx#0 point_init::$13 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#0 ] { { point_init::point_idx#0 = main::i#2 } } ) always clobbers reg byte a
|
||||
Statement [101] point_init::abs16s1_return#5 = (word)point_init::abs16s1_return#0 [ point_init::point_idx#0 point_init::$13 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#5 ] ( point_init:16 [ main::i#2 point_init::point_idx#0 point_init::$13 point_init::x_diff#1 point_init::y_diff#0 point_init::abs16s1_return#5 ] { { point_init::point_idx#0 = main::i#2 } } ) always clobbers reg byte a
|
||||
Statement [102] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [ bitmap_plot::x#0 bitmap_plot::plotter#0 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#0 ] { } ) always clobbers reg byte a
|
||||
Statement [103] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] { } ) always clobbers reg byte a
|
||||
Statement [104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#1 ] { } ) always clobbers reg byte a
|
||||
Statement [106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] [ ] ( bitmap_plot:20 [ main::i#2 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [103] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$1 ] { } ) always clobbers reg byte a
|
||||
Statement [104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( bitmap_plot:20 [ main::i#2 bitmap_plot::x#0 bitmap_plot::plotter#1 ] { } ) always clobbers reg byte a
|
||||
Statement [106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_plot:20 [ main::i#2 ] { } ) always clobbers reg byte a reg byte y
|
||||
Statement [109] if(divr16s::rem#0<0) goto divr16s::@1 [ divr16s::divisor#0 divr16s::rem#0 ] ( point_init:16::divr16s:91 [ main::i#2 point_init::point_idx#0 point_init::$13 divr16s::divisor#0 divr16s::rem#0 ] { { point_init::point_idx#0 = main::i#2 } { divr16s::divisor#0 = point_init::x_diff#1 } { divr16s::rem#0 = point_init::y_diff#0 } { divr16s::return#2 = divr16s::return#3 } } ) always clobbers reg byte a
|
||||
Statement [110] divr16s::remu#8 = (word)divr16s::rem#0 [ divr16s::divisor#0 divr16s::remu#8 ] ( point_init:16::divr16s:91 [ main::i#2 point_init::point_idx#0 point_init::$13 divr16s::divisor#0 divr16s::remu#8 ] { { point_init::point_idx#0 = main::i#2 } { divr16s::divisor#0 = point_init::x_diff#1 } { divr16s::rem#0 = point_init::y_diff#0 } { divr16s::return#2 = divr16s::return#3 } } ) always clobbers reg byte a
|
||||
Statement [112] if(divr16s::divisor#0<0) goto divr16s::@3 [ divr16s::divisor#0 divr16s::neg#3 divr16s::remu#3 ] ( point_init:16::divr16s:91 [ main::i#2 point_init::point_idx#0 point_init::$13 divr16s::divisor#0 divr16s::neg#3 divr16s::remu#3 ] { { point_init::point_idx#0 = main::i#2 } { divr16s::divisor#0 = point_init::x_diff#1 } { divr16s::rem#0 = point_init::y_diff#0 } { divr16s::return#2 = divr16s::return#3 } } ) always clobbers reg byte a
|
||||
@ -2489,9 +2486,9 @@ Potential registers zp[1]:69 [ point_init::$10 ] : zp[1]:69 , reg byte a , reg b
|
||||
Potential registers zp[2]:70 [ point_init::abs16s2_return#0 ] : zp[2]:70 ,
|
||||
Potential registers zp[2]:72 [ point_init::abs16s1_return#0 ] : zp[2]:72 ,
|
||||
Potential registers zp[2]:74 [ bitmap_plot::plotter#0 ] : zp[2]:74 ,
|
||||
Potential registers zp[2]:76 [ bitmap_plot::$0 ] : zp[2]:76 ,
|
||||
Potential registers zp[2]:76 [ bitmap_plot::$1 ] : zp[2]:76 ,
|
||||
Potential registers zp[2]:78 [ bitmap_plot::plotter#1 ] : zp[2]:78 ,
|
||||
Potential registers zp[1]:80 [ bitmap_plot::$1 ] : zp[1]:80 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:80 [ bitmap_plot::$2 ] : zp[1]:80 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:81 [ divr16u::divisor#0 ] : zp[2]:81 ,
|
||||
Potential registers zp[2]:83 [ divr16u::return#2 ] : zp[2]:83 ,
|
||||
Potential registers zp[2]:85 [ divr16s::resultu#0 ] : zp[2]:85 ,
|
||||
@ -2507,7 +2504,7 @@ Uplift Scope [bitmap_clear] 2,207.6: zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_cle
|
||||
Uplift Scope [screen_fill] 2,174.6: zp[2]:13 [ screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 ] 2,168.83: zp[1]:15 [ screen_fill::x#2 screen_fill::x#1 ] 185.17: zp[1]:12 [ screen_fill::y#4 screen_fill::y#1 ]
|
||||
Uplift Scope [point_init] 707: zp[2]:18 [ point_init::abs16s2_return#2 point_init::abs16s2_return#5 point_init::abs16s2_return#6 ] 454.5: zp[2]:16 [ point_init::abs16s1_return#2 point_init::abs16s1_return#5 point_init::abs16s1_return#6 ] 202: zp[2]:50 [ point_init::$18 ] 202: zp[2]:54 [ point_init::$5 ] 202: zp[2]:56 [ point_init::$19 ] 202: zp[2]:58 [ point_init::$6 ] 202: zp[2]:66 [ point_init::x_stepf#0 ] 202: zp[1]:68 [ point_init::$9 ] 101: zp[2]:48 [ point_init::$17 ] 101: zp[1]:69 [ point_init::$10 ] 101: zp[2]:70 [ point_init::abs16s2_return#0 ] 101: zp[2]:72 [ point_init::abs16s1_return#0 ] 28.06: zp[2]:46 [ point_init::x_diff#1 ] 25.25: zp[2]:52 [ point_init::y_diff#0 ] 15.64: zp[1]:34 [ point_init::point_idx#0 ] 13.03: zp[1]:45 [ point_init::$13 ]
|
||||
Uplift Scope [bitmap_init] 366.12: zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 319.83: zp[1]:3 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 202: zp[1]:4 [ bitmap_init::x#2 bitmap_init::x#1 ] 202: zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ] 202: zp[1]:40 [ bitmap_init::$4 ] 202: zp[1]:41 [ bitmap_init::$5 ] 202: zp[1]:42 [ bitmap_init::$6 ] 50.5: zp[1]:39 [ bitmap_init::$7 ]
|
||||
Uplift Scope [bitmap_plot] 213: zp[1]:38 [ bitmap_plot::y#0 ] 202: zp[2]:76 [ bitmap_plot::$0 ] 202: zp[1]:80 [ bitmap_plot::$1 ] 151.5: zp[2]:78 [ bitmap_plot::plotter#1 ] 50.5: zp[2]:74 [ bitmap_plot::plotter#0 ] 42.6: zp[2]:36 [ bitmap_plot::x#0 ]
|
||||
Uplift Scope [bitmap_plot] 213: zp[1]:38 [ bitmap_plot::y#0 ] 202: zp[2]:76 [ bitmap_plot::$1 ] 202: zp[1]:80 [ bitmap_plot::$2 ] 151.5: zp[2]:78 [ bitmap_plot::plotter#1 ] 50.5: zp[2]:74 [ bitmap_plot::plotter#0 ] 42.6: zp[2]:36 [ bitmap_plot::x#0 ]
|
||||
Uplift Scope [main] 24.36: zp[1]:2 [ main::i#2 main::i#1 ] 22: zp[1]:35 [ main::$10 ]
|
||||
Uplift Scope [MOS6526_CIA]
|
||||
Uplift Scope [MOS6569_VICII]
|
||||
@ -2522,7 +2519,7 @@ Uplifting [point_init] best 28526 combination zp[2]:18 [ point_init::abs16s2_ret
|
||||
Limited combination testing to 100 combinations of 144 possible.
|
||||
Uplifting [bitmap_init] best 28076 combination zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte a [ bitmap_init::$4 ] zp[1]:41 [ bitmap_init::$5 ] zp[1]:42 [ bitmap_init::$6 ] zp[1]:39 [ bitmap_init::$7 ]
|
||||
Limited combination testing to 100 combinations of 15360 possible.
|
||||
Uplifting [bitmap_plot] best 28037 combination reg byte x [ bitmap_plot::y#0 ] zp[2]:76 [ bitmap_plot::$0 ] reg byte x [ bitmap_plot::$1 ] zp[2]:78 [ bitmap_plot::plotter#1 ] zp[2]:74 [ bitmap_plot::plotter#0 ] zp[2]:36 [ bitmap_plot::x#0 ]
|
||||
Uplifting [bitmap_plot] best 28037 combination reg byte x [ bitmap_plot::y#0 ] zp[2]:76 [ bitmap_plot::$1 ] reg byte x [ bitmap_plot::$2 ] zp[2]:78 [ bitmap_plot::plotter#1 ] zp[2]:74 [ bitmap_plot::plotter#0 ] zp[2]:36 [ bitmap_plot::x#0 ]
|
||||
Uplifting [main] best 27997 combination zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$10 ]
|
||||
Uplifting [MOS6526_CIA] best 27997 combination
|
||||
Uplifting [MOS6569_VICII] best 27997 combination
|
||||
@ -2571,7 +2568,7 @@ Coalescing zero page register [ zp[2]:36 [ bitmap_plot::x#0 ] ] with [ zp[2]:18
|
||||
Coalescing zero page register [ zp[1]:45 [ point_init::$13 ] ] with [ zp[1]:39 [ bitmap_init::$7 ] ]
|
||||
Coalescing zero page register [ zp[2]:50 [ point_init::$18 ] ] with [ zp[2]:29 [ divr16u::dividend#2 divr16u::dividend#0 ] ]
|
||||
Coalescing zero page register [ zp[2]:74 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 ] ] with [ zp[2]:20 [ divr16s::remu#3 divr16s::remu#7 divr16s::remu#8 divr16u::rem#4 divr16u::rem#3 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 divr16s::rem#0 divr16s::remu#1 point_init::$17 point_init::y_diff#0 ] ]
|
||||
Coalescing zero page register [ zp[2]:76 [ bitmap_plot::$0 ] ] with [ zp[2]:22 [ divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 point_init::x_diff#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:76 [ bitmap_plot::$1 ] ] with [ zp[2]:22 [ divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 point_init::x_diff#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:16 [ point_init::abs16s1_return#2 point_init::abs16s1_return#5 point_init::abs16s1_return#6 point_init::abs16s1_return#0 screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 ] ] with [ zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] ]
|
||||
Coalescing zero page register [ zp[1]:45 [ point_init::$13 bitmap_init::$7 ] ] with [ zp[1]:12 [ screen_fill::y#4 screen_fill::y#1 bitmap_clear::y#4 bitmap_clear::y#1 ] ]
|
||||
Allocated (was zp[2]:16) zp[2]:3 [ point_init::abs16s1_return#2 point_init::abs16s1_return#5 point_init::abs16s1_return#6 point_init::abs16s1_return#0 screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
||||
@ -2582,7 +2579,7 @@ Allocated (was zp[2]:50) zp[2]:10 [ point_init::$18 divr16u::dividend#2 divr16u:
|
||||
Allocated (was zp[2]:54) zp[2]:12 [ point_init::$5 ]
|
||||
Allocated (was zp[2]:56) zp[2]:14 [ point_init::$19 point_init::$6 ]
|
||||
Allocated (was zp[2]:74) zp[2]:16 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 divr16s::remu#3 divr16s::remu#7 divr16s::remu#8 divr16u::rem#4 divr16u::rem#3 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 divr16s::rem#0 divr16s::remu#1 point_init::$17 point_init::y_diff#0 ]
|
||||
Allocated (was zp[2]:76) zp[2]:18 [ bitmap_plot::$0 divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 point_init::x_diff#1 ]
|
||||
Allocated (was zp[2]:76) zp[2]:18 [ bitmap_plot::$1 divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 point_init::x_diff#1 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
// File Comments
|
||||
@ -3237,7 +3234,7 @@ point_init: {
|
||||
// Plot a single dot in the bitmap
|
||||
// bitmap_plot(word zp(7) x, byte register(X) y)
|
||||
bitmap_plot: {
|
||||
.label __0 = $12
|
||||
.label __1 = $12
|
||||
.label x = 7
|
||||
.label plotter = $10
|
||||
// [102] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
||||
@ -3245,24 +3242,24 @@ bitmap_plot: {
|
||||
sta.z plotter+1
|
||||
lda bitmap_plot_ylo,x
|
||||
sta.z plotter
|
||||
// [103] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
||||
// [103] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
||||
lda.z x
|
||||
and #<$fff8
|
||||
sta.z __0
|
||||
sta.z __1
|
||||
lda.z x+1
|
||||
and #>$fff8
|
||||
sta.z __0+1
|
||||
// [104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 -- pbuz1=pbuz1_plus_vwuz2
|
||||
sta.z __1+1
|
||||
// [104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2
|
||||
clc
|
||||
lda.z plotter
|
||||
adc.z __0
|
||||
adc.z __1
|
||||
sta.z plotter
|
||||
lda.z plotter+1
|
||||
adc.z __0+1
|
||||
adc.z __1+1
|
||||
sta.z plotter+1
|
||||
// [105] bitmap_plot::$1 = byte0 bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1
|
||||
// [105] bitmap_plot::$2 = byte0 bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1
|
||||
ldx.z x
|
||||
// [106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
||||
// [106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
||||
lda bitmap_plot_bit,x
|
||||
ldy #0
|
||||
ora (plotter),y
|
||||
@ -3758,8 +3755,8 @@ byte* bitmap_init::yoffs#1 yoffs zp[2]:3 202.0
|
||||
byte* bitmap_init::yoffs#2 yoffs zp[2]:3 63.125
|
||||
byte* bitmap_init::yoffs#4 yoffs zp[2]:3 101.0
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
word~ bitmap_plot::$0 zp[2]:18 202.0
|
||||
byte~ bitmap_plot::$1 reg byte x 202.0
|
||||
word~ bitmap_plot::$1 zp[2]:18 202.0
|
||||
byte~ bitmap_plot::$2 reg byte x 202.0
|
||||
byte* bitmap_plot::plotter
|
||||
word bitmap_plot::plotter#0 plotter zp[2]:16 50.5
|
||||
byte* bitmap_plot::plotter#1 plotter zp[2]:16 151.5
|
||||
@ -3912,8 +3909,8 @@ zp[2]:14 [ point_init::$19 point_init::$6 ]
|
||||
reg byte a [ point_init::$9 ]
|
||||
reg byte a [ point_init::$10 ]
|
||||
zp[2]:16 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 divr16s::remu#3 divr16s::remu#7 divr16s::remu#8 divr16u::rem#4 divr16u::rem#3 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 divr16s::rem#0 divr16s::remu#1 point_init::$17 point_init::y_diff#0 ]
|
||||
zp[2]:18 [ bitmap_plot::$0 divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 point_init::x_diff#1 ]
|
||||
reg byte x [ bitmap_plot::$1 ]
|
||||
zp[2]:18 [ bitmap_plot::$1 divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 point_init::x_diff#1 ]
|
||||
reg byte x [ bitmap_plot::$2 ]
|
||||
reg byte a [ divr16u::$1 ]
|
||||
reg byte a [ divr16u::$2 ]
|
||||
|
||||
@ -4188,7 +4185,7 @@ bitmap_init: {
|
||||
bitmap_clear: {
|
||||
.label bitmap = 3
|
||||
.label y = 9
|
||||
// byte* bitmap = (byte*) { bitmap_plot_yhi[0], bitmap_plot_ylo[0] }
|
||||
// MAKEWORD( bitmap_plot_yhi[0], bitmap_plot_ylo[0] )
|
||||
// [47] bitmap_clear::bitmap#0 = *bitmap_plot_yhi w= *bitmap_plot_ylo -- vwuz1=_deref_pbuc1_word__deref_pbuc2
|
||||
lda bitmap_plot_yhi
|
||||
sta.z bitmap+1
|
||||
@ -4536,37 +4533,37 @@ point_init: {
|
||||
// Plot a single dot in the bitmap
|
||||
// bitmap_plot(word zp(7) x, byte register(X) y)
|
||||
bitmap_plot: {
|
||||
.label __0 = $12
|
||||
.label __1 = $12
|
||||
.label x = 7
|
||||
.label plotter = $10
|
||||
// byte* plotter = (byte*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] }
|
||||
// MAKEWORD( bitmap_plot_yhi[y], bitmap_plot_ylo[y] )
|
||||
// [102] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
||||
lda bitmap_plot_yhi,x
|
||||
sta.z plotter+1
|
||||
lda bitmap_plot_ylo,x
|
||||
sta.z plotter
|
||||
// x & $fff8
|
||||
// [103] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
||||
// [103] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8 -- vwuz1=vwuz2_band_vwuc1
|
||||
lda.z x
|
||||
and #<$fff8
|
||||
sta.z __0
|
||||
sta.z __1
|
||||
lda.z x+1
|
||||
and #>$fff8
|
||||
sta.z __0+1
|
||||
sta.z __1+1
|
||||
// plotter += ( x & $fff8 )
|
||||
// [104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 -- pbuz1=pbuz1_plus_vwuz2
|
||||
// [104] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2
|
||||
clc
|
||||
lda.z plotter
|
||||
adc.z __0
|
||||
adc.z __1
|
||||
sta.z plotter
|
||||
lda.z plotter+1
|
||||
adc.z __0+1
|
||||
adc.z __1+1
|
||||
sta.z plotter+1
|
||||
// BYTE0(x)
|
||||
// [105] bitmap_plot::$1 = byte0 bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1
|
||||
// [105] bitmap_plot::$2 = byte0 bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1
|
||||
ldx.z x
|
||||
// *plotter |= bitmap_plot_bit[BYTE0(x)]
|
||||
// [106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
||||
// [106] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
||||
lda bitmap_plot_bit,x
|
||||
ldy #0
|
||||
ora (plotter),y
|
||||
|
@ -49,8 +49,8 @@ byte* bitmap_init::yoffs#1 yoffs zp[2]:3 202.0
|
||||
byte* bitmap_init::yoffs#2 yoffs zp[2]:3 63.125
|
||||
byte* bitmap_init::yoffs#4 yoffs zp[2]:3 101.0
|
||||
void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y)
|
||||
word~ bitmap_plot::$0 zp[2]:18 202.0
|
||||
byte~ bitmap_plot::$1 reg byte x 202.0
|
||||
word~ bitmap_plot::$1 zp[2]:18 202.0
|
||||
byte~ bitmap_plot::$2 reg byte x 202.0
|
||||
byte* bitmap_plot::plotter
|
||||
word bitmap_plot::plotter#0 plotter zp[2]:16 50.5
|
||||
byte* bitmap_plot::plotter#1 plotter zp[2]:16 151.5
|
||||
@ -203,7 +203,7 @@ zp[2]:14 [ point_init::$19 point_init::$6 ]
|
||||
reg byte a [ point_init::$9 ]
|
||||
reg byte a [ point_init::$10 ]
|
||||
zp[2]:16 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 divr16s::remu#3 divr16s::remu#7 divr16s::remu#8 divr16u::rem#4 divr16u::rem#3 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 divr16s::rem#0 divr16s::remu#1 point_init::$17 point_init::y_diff#0 ]
|
||||
zp[2]:18 [ bitmap_plot::$0 divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 point_init::x_diff#1 ]
|
||||
reg byte x [ bitmap_plot::$1 ]
|
||||
zp[2]:18 [ bitmap_plot::$1 divr16s::divisoru#3 divr16s::divisoru#4 divr16s::divisoru#5 divr16s::divisor#0 divr16u::divisor#0 divr16s::divisoru#1 point_init::x_diff#1 ]
|
||||
reg byte x [ bitmap_plot::$2 ]
|
||||
reg byte a [ divr16u::$1 ]
|
||||
reg byte a [ divr16u::$2 ]
|
||||
|
@ -280,7 +280,7 @@ init_dist_screen: {
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp(4) screen)
|
||||
init_angle_screen: {
|
||||
.label __7 = $11
|
||||
.label __9 = $11
|
||||
.label screen = 4
|
||||
.label screen_bottomline = 4
|
||||
.label xw = $16
|
||||
@ -346,14 +346,14 @@ init_angle_screen: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc #$27
|
||||
// signed word xw = (signed word)(word){ 39-x*2, 0 }
|
||||
// MAKEWORD( 39-x*2, 0 )
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// y*2
|
||||
lda.z y
|
||||
asl
|
||||
// signed word yw = (signed word)(word){ y*2, 0 }
|
||||
// MAKEWORD( y*2, 0 )
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
// atan2_16(xw, yw)
|
||||
@ -362,13 +362,13 @@ init_angle_screen: {
|
||||
// angle_w+0x0080
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
lda.z __7+1
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// screen_bottomline[xb] = ang_w
|
||||
ldy.z xb
|
||||
|
@ -177,8 +177,8 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[79] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
||||
[80] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
[81] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
||||
[82] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
||||
[83] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
||||
[82] init_angle_screen::$6 = init_angle_screen::y#5 << 1
|
||||
[83] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0
|
||||
[84] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
||||
[85] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
||||
[86] call atan2_16
|
||||
@ -186,15 +186,15 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
to:init_angle_screen::@5
|
||||
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[88] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
[89] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
[90] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7
|
||||
[89] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
[90] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9
|
||||
[91] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
[92] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
[93] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
[94] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
[95] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
||||
[96] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
[97] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
||||
[92] init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
[93] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
[94] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
[95] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12
|
||||
[96] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
[97] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13
|
||||
[98] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
||||
[99] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
|
@ -843,9 +843,11 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
init_angle_screen::x#3 = phi( init_angle_screen::@2/init_angle_screen::x#2 )
|
||||
init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
||||
init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
init_angle_screen::xw#0 = (signed word)(word){ init_angle_screen::$4, 0 }
|
||||
init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
init_angle_screen::yw#0 = (signed word)(word){ init_angle_screen::$5, 0 }
|
||||
init_angle_screen::$5 = init_angle_screen::$4 w= 0
|
||||
init_angle_screen::xw#0 = (signed word)init_angle_screen::$5
|
||||
init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
init_angle_screen::$7 = init_angle_screen::$6 w= 0
|
||||
init_angle_screen::yw#0 = (signed word)init_angle_screen::$7
|
||||
atan2_16::x#0 = init_angle_screen::xw#0
|
||||
atan2_16::y#0 = init_angle_screen::yw#0
|
||||
call atan2_16
|
||||
@ -858,18 +860,18 @@ init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
init_angle_screen::xb#2 = phi( init_angle_screen::@3/init_angle_screen::xb#3 )
|
||||
init_angle_screen::screen_bottomline#2 = phi( init_angle_screen::@3/init_angle_screen::screen_bottomline#4 )
|
||||
atan2_16::return#4 = phi( init_angle_screen::@3/atan2_16::return#2 )
|
||||
init_angle_screen::$6 = atan2_16::return#4
|
||||
init_angle_screen::angle_w#0 = init_angle_screen::$6
|
||||
init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
init_angle_screen::$8 = byte1 init_angle_screen::$7
|
||||
init_angle_screen::ang_w#0 = init_angle_screen::$8
|
||||
init_angle_screen::$8 = atan2_16::return#4
|
||||
init_angle_screen::angle_w#0 = init_angle_screen::$8
|
||||
init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
init_angle_screen::$10 = byte1 init_angle_screen::$9
|
||||
init_angle_screen::ang_w#0 = init_angle_screen::$10
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::x#4] = init_angle_screen::$10
|
||||
init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::x#4] = init_angle_screen::$11
|
||||
init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::x#4] = init_angle_screen::$12
|
||||
init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::x#4] = init_angle_screen::$13
|
||||
init_angle_screen::x#1 = ++ init_angle_screen::x#4
|
||||
init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
@ -880,8 +882,8 @@ init_angle_screen::@4: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
||||
init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
||||
init_angle_screen::y#1 = init_angle_screen::y#3 + rangenext(0,$c)
|
||||
init_angle_screen::$12 = init_angle_screen::y#1 != rangelast(0,$c)
|
||||
if(init_angle_screen::$12) goto init_angle_screen::@1
|
||||
init_angle_screen::$14 = init_angle_screen::y#1 != rangelast(0,$c)
|
||||
if(init_angle_screen::$14) goto init_angle_screen::@1
|
||||
to:init_angle_screen::@return
|
||||
init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@4
|
||||
return
|
||||
@ -1909,17 +1911,19 @@ byte* heap_head#9
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte*~ init_angle_screen::$0
|
||||
byte*~ init_angle_screen::$1
|
||||
number~ init_angle_screen::$10
|
||||
number~ init_angle_screen::$11
|
||||
bool~ init_angle_screen::$12
|
||||
byte~ init_angle_screen::$10
|
||||
byte~ init_angle_screen::$11
|
||||
number~ init_angle_screen::$12
|
||||
number~ init_angle_screen::$13
|
||||
bool~ init_angle_screen::$14
|
||||
bool~ init_angle_screen::$2
|
||||
number~ init_angle_screen::$3
|
||||
number~ init_angle_screen::$4
|
||||
number~ init_angle_screen::$5
|
||||
word~ init_angle_screen::$6
|
||||
number~ init_angle_screen::$7
|
||||
byte~ init_angle_screen::$8
|
||||
byte~ init_angle_screen::$9
|
||||
word~ init_angle_screen::$5
|
||||
number~ init_angle_screen::$6
|
||||
word~ init_angle_screen::$7
|
||||
word~ init_angle_screen::$8
|
||||
number~ init_angle_screen::$9
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0
|
||||
word init_angle_screen::angle_w
|
||||
@ -2541,9 +2545,6 @@ word sqrt::val
|
||||
word sqrt::val#0
|
||||
word sqrt::val#1
|
||||
|
||||
Fixing inline constructor with init_angle_screen::$13 = (byte)init_angle_screen::$4 w= (byte)0
|
||||
Fixing inline constructor with init_angle_screen::$14 = (byte)init_angle_screen::$5 w= (byte)0
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0
|
||||
Adding number conversion cast (unumber) 0 in bsearch16u::$5 = bsearch16u::num#3 > 0
|
||||
Adding number conversion cast (unumber) 1 in bsearch16u::$6 = bsearch16u::num#4 >> 1
|
||||
@ -2607,14 +2608,16 @@ Adding number conversion cast (unumber) 2 in init_angle_screen::$3 = init_angle_
|
||||
Adding number conversion cast (unumber) init_angle_screen::$3 in init_angle_screen::$3 = init_angle_screen::x#3 * (unumber)2
|
||||
Adding number conversion cast (unumber) $27 in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
Adding number conversion cast (unumber) init_angle_screen::$4 in init_angle_screen::$4 = (unumber)$27 - init_angle_screen::$3
|
||||
Adding number conversion cast (unumber) 2 in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
Adding number conversion cast (unumber) init_angle_screen::$5 in init_angle_screen::$5 = init_angle_screen::y#2 * (unumber)2
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) init_angle_screen::$7 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + (unumber)$80
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$10 in init_angle_screen::$10 = (unumber)$80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$11 in init_angle_screen::$11 = (unumber)$80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) 0 in init_angle_screen::$5 = init_angle_screen::$4 w= 0
|
||||
Adding number conversion cast (unumber) 2 in init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
Adding number conversion cast (unumber) init_angle_screen::$6 in init_angle_screen::$6 = init_angle_screen::y#2 * (unumber)2
|
||||
Adding number conversion cast (unumber) 0 in init_angle_screen::$7 = init_angle_screen::$6 w= 0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) init_angle_screen::$9 in init_angle_screen::$9 = init_angle_screen::angle_w#0 + (unumber)$80
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$12 in init_angle_screen::$12 = (unumber)$80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$13 in init_angle_screen::$13 = (unumber)$80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
||||
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
||||
Adding number conversion cast (unumber) $30 in NUM_SQUARES#2 = $30
|
||||
@ -2811,7 +2814,9 @@ Finalized unsigned number type (byte) 7
|
||||
Finalized unsigned number type (byte) $13
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) $27
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) $80
|
||||
Finalized unsigned number type (byte) $80
|
||||
Finalized unsigned number type (byte) $80
|
||||
@ -2857,10 +2862,10 @@ Inferred type updated to byte in main::toD0182_$5 = main::toD0182_$4 & $f
|
||||
Inferred type updated to byte in main::toD0182_$6 = main::toD0182_$2 | main::toD0182_$5
|
||||
Inferred type updated to byte in init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
||||
Inferred type updated to byte in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
Inferred type updated to byte in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
Inferred type updated to word in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
Inferred type updated to byte in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
Inferred type updated to word in init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
Inferred type updated to byte in init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_dist_screen::$2 = init_dist_screen::y#2 * 2
|
||||
Inferred type updated to byte in init_dist_screen::$6 = init_dist_screen::y2#1 - $18
|
||||
Inferred type updated to byte in init_dist_screen::$7 = init_dist_screen::$6
|
||||
@ -3013,8 +3018,8 @@ Alias init_angle_screen::screen_bottomline#2 = init_angle_screen::screen_bottoml
|
||||
Alias init_angle_screen::xb#2 = init_angle_screen::xb#3 init_angle_screen::xb#4
|
||||
Alias init_angle_screen::screen_topline#2 = init_angle_screen::screen_topline#4 init_angle_screen::screen_topline#5 init_angle_screen::screen_topline#3
|
||||
Alias atan2_16::return#2 = atan2_16::return#4
|
||||
Alias init_angle_screen::angle_w#0 = init_angle_screen::$6
|
||||
Alias init_angle_screen::ang_w#0 = init_angle_screen::$8
|
||||
Alias init_angle_screen::angle_w#0 = init_angle_screen::$8
|
||||
Alias init_angle_screen::ang_w#0 = init_angle_screen::$10
|
||||
Alias init_dist_screen::screen#1 = init_dist_screen::screen#2 init_dist_screen::screen_topline#0
|
||||
Alias NUM_SQUARES#2 = NUM_SQUARES#44
|
||||
Alias heap_head#19 = heap_head#6
|
||||
@ -3292,7 +3297,7 @@ Simple Condition atan2_16::$14 [124] if(atan2_16::y#0>=0) goto atan2_16::@8
|
||||
Simple Condition doplasma::$3 [198] if(doplasma::x#1!=rangelast(0,$27)) goto doplasma::@2
|
||||
Simple Condition doplasma::$4 [204] if(doplasma::y#1!=rangelast(0,$19)) goto doplasma::@1
|
||||
Simple Condition init_angle_screen::$2 [217] if(init_angle_screen::x#2<=$13) goto init_angle_screen::@3
|
||||
Simple Condition init_angle_screen::$12 [245] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
|
||||
Simple Condition init_angle_screen::$14 [245] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
|
||||
Simple Condition init_dist_screen::$3 [256] if(init_dist_screen::y2#0>=$18) goto init_dist_screen::@2
|
||||
Simple Condition init_dist_screen::$10 [268] if(init_dist_screen::x#2<=$13) goto init_dist_screen::@6
|
||||
Simple Condition init_dist_screen::$12 [271] if(init_dist_screen::x2#0>=$27) goto init_dist_screen::@8
|
||||
@ -3397,8 +3402,6 @@ Simplifying constant integer cast $28
|
||||
Simplifying constant integer cast $1a
|
||||
Simplifying constant integer cast $13+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast init_angle_screen::$4
|
||||
Simplifying constant integer cast init_angle_screen::$5
|
||||
Simplifying constant integer cast $d
|
||||
Simplifying constant integer cast $13+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
@ -3463,8 +3466,8 @@ Inlining Noop Cast [234] malloc::return#3 = (void*)malloc::mem#0 keeping malloc:
|
||||
Inlining Noop Cast [238] malloc::return#4 = (void*)malloc::mem#0 keeping malloc::mem#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Inlining Noop Cast [37] SQUARES#0 = (word*)init_squares::$1 keeping SQUARES#0
|
||||
Inlining Noop Cast [141] init_angle_screen::xw#0 = (signed word)init_angle_screen::$13 keeping init_angle_screen::xw#0
|
||||
Inlining Noop Cast [144] init_angle_screen::yw#0 = (signed word)init_angle_screen::$14 keeping init_angle_screen::yw#0
|
||||
Inlining Noop Cast [141] init_angle_screen::xw#0 = (signed word)init_angle_screen::$5 keeping init_angle_screen::xw#0
|
||||
Inlining Noop Cast [144] init_angle_screen::yw#0 = (signed word)init_angle_screen::$7 keeping init_angle_screen::yw#0
|
||||
Inlining Noop Cast [236] SCREEN_DIST#0 = (byte*)__start::__init1_$0 keeping SCREEN_DIST#0
|
||||
Inlining Noop Cast [240] SCREEN_ANGLE#0 = (byte*)__start::__init1_$1 keeping SCREEN_ANGLE#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
@ -3476,7 +3479,7 @@ Rewriting division to use shift [70] atan2_16::angle#1 = atan2_16::angle#6 / 2
|
||||
Rewriting multiplication to use shift [84] atan2_16::$22 = atan2_16::i#2 * SIZEOF_WORD
|
||||
Rewriting multiplication to use shift [88] atan2_16::$23 = atan2_16::i#2 * SIZEOF_WORD
|
||||
Rewriting multiplication to use shift [138] init_angle_screen::$3 = init_angle_screen::x#2 * 2
|
||||
Rewriting multiplication to use shift [142] init_angle_screen::$5 = init_angle_screen::y#5 * 2
|
||||
Rewriting multiplication to use shift [142] init_angle_screen::$6 = init_angle_screen::y#5 * 2
|
||||
Rewriting multiplication to use shift [169] init_dist_screen::y2#0 = init_dist_screen::y#10 * 2
|
||||
Rewriting multiplication to use shift [180] init_dist_screen::x2#0 = init_dist_screen::x#2 * 2
|
||||
Rewriting multiplication to use shift [221] make_plasma_charset::$10 = make_plasma_charset::c#2 * 8
|
||||
@ -3965,8 +3968,8 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[79] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
||||
[80] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
[81] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
||||
[82] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
||||
[83] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
||||
[82] init_angle_screen::$6 = init_angle_screen::y#5 << 1
|
||||
[83] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0
|
||||
[84] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
||||
[85] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
||||
[86] call atan2_16
|
||||
@ -3974,15 +3977,15 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
to:init_angle_screen::@5
|
||||
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[88] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
[89] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
[90] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7
|
||||
[89] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
[90] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9
|
||||
[91] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
[92] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
[93] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
[94] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
[95] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
||||
[96] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
[97] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
||||
[92] init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
[93] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
[94] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
[95] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12
|
||||
[96] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
[97] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13
|
||||
[98] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
||||
[99] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
@ -4447,13 +4450,13 @@ byte* heap_head
|
||||
byte* heap_head#0 1100.4
|
||||
byte* heap_head#13 11004.0
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 20002.0
|
||||
byte~ init_angle_screen::$11 20002.0
|
||||
byte~ init_angle_screen::$12 20002.0
|
||||
byte~ init_angle_screen::$13 20002.0
|
||||
byte~ init_angle_screen::$3 20002.0
|
||||
byte~ init_angle_screen::$4 20002.0
|
||||
byte~ init_angle_screen::$5 20002.0
|
||||
word~ init_angle_screen::$7 20002.0
|
||||
byte~ init_angle_screen::$9 20002.0
|
||||
byte~ init_angle_screen::$6 20002.0
|
||||
word~ init_angle_screen::$9 20002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 8334.166666666666
|
||||
word init_angle_screen::angle_w
|
||||
@ -4684,17 +4687,17 @@ Added variable init_dist_screen::d#0 to live range equivalence class [ init_dist
|
||||
Added variable init_angle_screen::$3 to live range equivalence class [ init_angle_screen::$3 ]
|
||||
Added variable init_angle_screen::$4 to live range equivalence class [ init_angle_screen::$4 ]
|
||||
Added variable init_angle_screen::xw#0 to live range equivalence class [ init_angle_screen::xw#0 ]
|
||||
Added variable init_angle_screen::$5 to live range equivalence class [ init_angle_screen::$5 ]
|
||||
Added variable init_angle_screen::$6 to live range equivalence class [ init_angle_screen::$6 ]
|
||||
Added variable init_angle_screen::yw#0 to live range equivalence class [ init_angle_screen::yw#0 ]
|
||||
Added variable atan2_16::x#0 to live range equivalence class [ atan2_16::x#0 ]
|
||||
Added variable atan2_16::y#0 to live range equivalence class [ atan2_16::y#0 ]
|
||||
Added variable atan2_16::return#2 to live range equivalence class [ atan2_16::return#2 ]
|
||||
Added variable init_angle_screen::angle_w#0 to live range equivalence class [ init_angle_screen::angle_w#0 ]
|
||||
Added variable init_angle_screen::$7 to live range equivalence class [ init_angle_screen::$7 ]
|
||||
Added variable init_angle_screen::ang_w#0 to live range equivalence class [ init_angle_screen::ang_w#0 ]
|
||||
Added variable init_angle_screen::$9 to live range equivalence class [ init_angle_screen::$9 ]
|
||||
Added variable init_angle_screen::$10 to live range equivalence class [ init_angle_screen::$10 ]
|
||||
Added variable init_angle_screen::ang_w#0 to live range equivalence class [ init_angle_screen::ang_w#0 ]
|
||||
Added variable init_angle_screen::$11 to live range equivalence class [ init_angle_screen::$11 ]
|
||||
Added variable init_angle_screen::$12 to live range equivalence class [ init_angle_screen::$12 ]
|
||||
Added variable init_angle_screen::$13 to live range equivalence class [ init_angle_screen::$13 ]
|
||||
Added variable make_plasma_charset::$3 to live range equivalence class [ make_plasma_charset::$3 ]
|
||||
Added variable make_plasma_charset::s#0 to live range equivalence class [ make_plasma_charset::s#0 ]
|
||||
Added variable make_plasma_charset::$12 to live range equivalence class [ make_plasma_charset::$12 ]
|
||||
@ -4785,17 +4788,17 @@ Complete equivalence classes
|
||||
[ init_angle_screen::$3 ]
|
||||
[ init_angle_screen::$4 ]
|
||||
[ init_angle_screen::xw#0 ]
|
||||
[ init_angle_screen::$5 ]
|
||||
[ init_angle_screen::$6 ]
|
||||
[ init_angle_screen::yw#0 ]
|
||||
[ atan2_16::x#0 ]
|
||||
[ atan2_16::y#0 ]
|
||||
[ atan2_16::return#2 ]
|
||||
[ init_angle_screen::angle_w#0 ]
|
||||
[ init_angle_screen::$7 ]
|
||||
[ init_angle_screen::ang_w#0 ]
|
||||
[ init_angle_screen::$9 ]
|
||||
[ init_angle_screen::$10 ]
|
||||
[ init_angle_screen::ang_w#0 ]
|
||||
[ init_angle_screen::$11 ]
|
||||
[ init_angle_screen::$12 ]
|
||||
[ init_angle_screen::$13 ]
|
||||
[ make_plasma_charset::$3 ]
|
||||
[ make_plasma_charset::s#0 ]
|
||||
[ make_plasma_charset::$12 ]
|
||||
@ -4885,17 +4888,17 @@ Allocated zp[1]:90 [ init_dist_screen::d#0 ]
|
||||
Allocated zp[1]:91 [ init_angle_screen::$3 ]
|
||||
Allocated zp[1]:92 [ init_angle_screen::$4 ]
|
||||
Allocated zp[2]:93 [ init_angle_screen::xw#0 ]
|
||||
Allocated zp[1]:95 [ init_angle_screen::$5 ]
|
||||
Allocated zp[1]:95 [ init_angle_screen::$6 ]
|
||||
Allocated zp[2]:96 [ init_angle_screen::yw#0 ]
|
||||
Allocated zp[2]:98 [ atan2_16::x#0 ]
|
||||
Allocated zp[2]:100 [ atan2_16::y#0 ]
|
||||
Allocated zp[2]:102 [ atan2_16::return#2 ]
|
||||
Allocated zp[2]:104 [ init_angle_screen::angle_w#0 ]
|
||||
Allocated zp[2]:106 [ init_angle_screen::$7 ]
|
||||
Allocated zp[2]:106 [ init_angle_screen::$9 ]
|
||||
Allocated zp[1]:108 [ init_angle_screen::ang_w#0 ]
|
||||
Allocated zp[1]:109 [ init_angle_screen::$9 ]
|
||||
Allocated zp[1]:110 [ init_angle_screen::$10 ]
|
||||
Allocated zp[1]:111 [ init_angle_screen::$11 ]
|
||||
Allocated zp[1]:109 [ init_angle_screen::$11 ]
|
||||
Allocated zp[1]:110 [ init_angle_screen::$12 ]
|
||||
Allocated zp[1]:111 [ init_angle_screen::$13 ]
|
||||
Allocated zp[1]:112 [ make_plasma_charset::$3 ]
|
||||
Allocated zp[1]:113 [ make_plasma_charset::s#0 ]
|
||||
Allocated zp[1]:114 [ make_plasma_charset::$12 ]
|
||||
@ -4961,16 +4964,16 @@ Statement [79] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:20 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:21 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Statement [80] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [82] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [82] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [84] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [85] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [87] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [88] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [89] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [92] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [89] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [92] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:108 [ init_angle_screen::ang_w#0 ]
|
||||
Statement [94] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [96] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [94] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [96] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [101] *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff [ ] ( main:7::make_plasma_charset:18 [ SCREEN_DIST#0 SCREEN_ANGLE#0 ] { } ) always clobbers reg byte a
|
||||
Statement [102] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE [ ] ( main:7::make_plasma_charset:18 [ SCREEN_DIST#0 SCREEN_ANGLE#0 ] { } ) always clobbers reg byte a
|
||||
Statement [106] if(make_plasma_charset::c#2<$100) goto make_plasma_charset::@2 [ make_plasma_charset::c#2 print_char_cursor#19 ] ( main:7::make_plasma_charset:18 [ SCREEN_DIST#0 SCREEN_ANGLE#0 make_plasma_charset::c#2 print_char_cursor#19 ] { } ) always clobbers reg byte a
|
||||
@ -5104,16 +5107,16 @@ Statement [74] init_angle_screen::screen_topline#1 = init_angle_screen::screen_t
|
||||
Statement [75] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] { } ) always clobbers reg byte a
|
||||
Statement [79] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [80] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [82] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [82] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [84] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [85] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [87] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [88] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [89] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [89] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [91] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [92] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [94] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [96] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [92] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [94] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [96] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [101] *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff [ ] ( main:7::make_plasma_charset:18 [ SCREEN_DIST#0 SCREEN_ANGLE#0 ] { } ) always clobbers reg byte a
|
||||
Statement [102] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE [ ] ( main:7::make_plasma_charset:18 [ SCREEN_DIST#0 SCREEN_ANGLE#0 ] { } ) always clobbers reg byte a
|
||||
Statement [106] if(make_plasma_charset::c#2<$100) goto make_plasma_charset::@2 [ make_plasma_charset::c#2 print_char_cursor#19 ] ( main:7::make_plasma_charset:18 [ SCREEN_DIST#0 SCREEN_ANGLE#0 make_plasma_charset::c#2 print_char_cursor#19 ] { } ) always clobbers reg byte a
|
||||
@ -5221,16 +5224,16 @@ Statement [74] init_angle_screen::screen_topline#1 = init_angle_screen::screen_t
|
||||
Statement [75] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] { } ) always clobbers reg byte a
|
||||
Statement [79] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [80] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [82] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [82] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [84] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [85] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [87] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [88] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [89] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [89] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [91] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [92] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [94] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [96] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [92] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [94] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [96] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [101] *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff [ ] ( main:7::make_plasma_charset:18 [ SCREEN_DIST#0 SCREEN_ANGLE#0 ] { } ) always clobbers reg byte a
|
||||
Statement [102] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE [ ] ( main:7::make_plasma_charset:18 [ SCREEN_DIST#0 SCREEN_ANGLE#0 ] { } ) always clobbers reg byte a
|
||||
Statement [106] if(make_plasma_charset::c#2<$100) goto make_plasma_charset::@2 [ make_plasma_charset::c#2 print_char_cursor#19 ] ( main:7::make_plasma_charset:18 [ SCREEN_DIST#0 SCREEN_ANGLE#0 make_plasma_charset::c#2 print_char_cursor#19 ] { } ) always clobbers reg byte a
|
||||
@ -5367,17 +5370,17 @@ Potential registers zp[1]:90 [ init_dist_screen::d#0 ] : zp[1]:90 , reg byte a ,
|
||||
Potential registers zp[1]:91 [ init_angle_screen::$3 ] : zp[1]:91 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:92 [ init_angle_screen::$4 ] : zp[1]:92 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:93 [ init_angle_screen::xw#0 ] : zp[2]:93 ,
|
||||
Potential registers zp[1]:95 [ init_angle_screen::$5 ] : zp[1]:95 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:95 [ init_angle_screen::$6 ] : zp[1]:95 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:96 [ init_angle_screen::yw#0 ] : zp[2]:96 ,
|
||||
Potential registers zp[2]:98 [ atan2_16::x#0 ] : zp[2]:98 ,
|
||||
Potential registers zp[2]:100 [ atan2_16::y#0 ] : zp[2]:100 ,
|
||||
Potential registers zp[2]:102 [ atan2_16::return#2 ] : zp[2]:102 ,
|
||||
Potential registers zp[2]:104 [ init_angle_screen::angle_w#0 ] : zp[2]:104 ,
|
||||
Potential registers zp[2]:106 [ init_angle_screen::$7 ] : zp[2]:106 ,
|
||||
Potential registers zp[2]:106 [ init_angle_screen::$9 ] : zp[2]:106 ,
|
||||
Potential registers zp[1]:108 [ init_angle_screen::ang_w#0 ] : zp[1]:108 , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:109 [ init_angle_screen::$9 ] : zp[1]:109 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:110 [ init_angle_screen::$10 ] : zp[1]:110 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:111 [ init_angle_screen::$11 ] : zp[1]:111 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:109 [ init_angle_screen::$11 ] : zp[1]:109 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:110 [ init_angle_screen::$12 ] : zp[1]:110 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:111 [ init_angle_screen::$13 ] : zp[1]:111 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:112 [ make_plasma_charset::$3 ] : zp[1]:112 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:113 [ make_plasma_charset::s#0 ] : zp[1]:113 , reg byte x ,
|
||||
Potential registers zp[1]:114 [ make_plasma_charset::$12 ] : zp[1]:114 , reg byte a , reg byte x , reg byte y ,
|
||||
@ -5416,7 +5419,7 @@ Uplift Scope [make_plasma_charset] 388,754: zp[1]:28 [ make_plasma_charset::b#2
|
||||
Uplift Scope [sqrt] 200,002: zp[2]:141 [ sqrt::found#0 ] 200,002: zp[2]:143 [ sqrt::$2 ] 110,002: zp[2]:87 [ sqrt::val#0 ] 100,001: zp[2]:145 [ sqrt::$1 ] 36,667.33: zp[1]:147 [ sqrt::return#0 ] 20,002: zp[1]:89 [ sqrt::return#2 ]
|
||||
Uplift Scope [memset] 356,672.33: zp[2]:32 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 18,333.67: zp[2]:123 [ memset::end#0 ] 14,285.86: zp[1]:31 [ memset::c#4 ] 0: zp[2]:29 [ memset::str#3 ]
|
||||
Uplift Scope [sqr] 200,002: zp[1]:134 [ sqr::$0 ] 133,007: zp[1]:49 [ sqr::val#2 sqr::val#1 sqr::val#0 ] 27,750.75: zp[2]:135 [ sqr::return#0 ] 20,002: zp[2]:81 [ sqr::return#3 ] 2,002: zp[2]:76 [ sqr::return#2 ]
|
||||
Uplift Scope [init_angle_screen] 21,820.36: zp[1]:21 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] 20,002: zp[1]:91 [ init_angle_screen::$3 ] 20,002: zp[1]:92 [ init_angle_screen::$4 ] 20,002: zp[1]:95 [ init_angle_screen::$5 ] 20,002: zp[2]:104 [ init_angle_screen::angle_w#0 ] 20,002: zp[2]:106 [ init_angle_screen::$7 ] 20,002: zp[1]:109 [ init_angle_screen::$9 ] 20,002: zp[1]:110 [ init_angle_screen::$10 ] 20,002: zp[1]:111 [ init_angle_screen::$11 ] 12,858.43: zp[1]:20 [ init_angle_screen::x#2 init_angle_screen::x#1 ] 8,334.17: zp[1]:108 [ init_angle_screen::ang_w#0 ] 5,000.5: zp[2]:96 [ init_angle_screen::yw#0 ] 3,333.67: zp[2]:93 [ init_angle_screen::xw#0 ] 1,963.15: zp[1]:15 [ init_angle_screen::y#5 init_angle_screen::y#1 ] 1,703.03: zp[2]:18 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] 1,623.54: zp[2]:16 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] 112: zp[2]:73 [ init_angle_screen::screen#0 ]
|
||||
Uplift Scope [init_angle_screen] 21,820.36: zp[1]:21 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] 20,002: zp[1]:91 [ init_angle_screen::$3 ] 20,002: zp[1]:92 [ init_angle_screen::$4 ] 20,002: zp[1]:95 [ init_angle_screen::$6 ] 20,002: zp[2]:104 [ init_angle_screen::angle_w#0 ] 20,002: zp[2]:106 [ init_angle_screen::$9 ] 20,002: zp[1]:109 [ init_angle_screen::$11 ] 20,002: zp[1]:110 [ init_angle_screen::$12 ] 20,002: zp[1]:111 [ init_angle_screen::$13 ] 12,858.43: zp[1]:20 [ init_angle_screen::x#2 init_angle_screen::x#1 ] 8,334.17: zp[1]:108 [ init_angle_screen::ang_w#0 ] 5,000.5: zp[2]:96 [ init_angle_screen::yw#0 ] 3,333.67: zp[2]:93 [ init_angle_screen::xw#0 ] 1,963.15: zp[1]:15 [ init_angle_screen::y#5 init_angle_screen::y#1 ] 1,703.03: zp[2]:18 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] 1,623.54: zp[2]:16 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] 112: zp[2]:73 [ init_angle_screen::screen#0 ]
|
||||
Uplift Scope [init_dist_screen] 70,007: zp[1]:14 [ init_dist_screen::xd#0 init_dist_screen::$16 init_dist_screen::$14 ] 21,906.95: zp[1]:13 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ] 20,002: zp[1]:80 [ init_dist_screen::x2#0 ] 20,002: zp[2]:83 [ init_dist_screen::xds#0 ] 20,002: zp[2]:85 [ init_dist_screen::ds#0 ] 13,001.3: zp[1]:12 [ init_dist_screen::x#2 init_dist_screen::x#1 ] 12,501.25: zp[1]:90 [ init_dist_screen::d#0 ] 7,007: zp[1]:11 [ init_dist_screen::yd#0 init_dist_screen::$7 init_dist_screen::$5 ] 2,002: zp[1]:75 [ init_dist_screen::y2#0 ] 1,589.82: zp[1]:6 [ init_dist_screen::y#10 init_dist_screen::y#1 ] 1,539.18: zp[2]:9 [ init_dist_screen::screen_bottomline#11 init_dist_screen::screen_bottomline#0 init_dist_screen::screen_bottomline#1 ] 1,244.53: zp[2]:7 [ init_dist_screen::screen_topline#11 init_dist_screen::screen#0 init_dist_screen::screen_topline#1 ] 478.35: zp[2]:78 [ init_dist_screen::yds#0 ]
|
||||
Uplift Scope [init_squares] 25,716.86: zp[1]:44 [ init_squares::i#2 init_squares::i#1 ] 20,002: zp[1]:132 [ init_squares::$3 ] 20,002: zp[1]:133 [ init_squares::$4 ] 16,337.07: zp[2]:47 [ init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ] 15,001.5: zp[2]:45 [ init_squares::sqr#2 init_squares::sqr#1 ]
|
||||
Uplift Scope [] 12,104.4: zp[2]:2 [ heap_head#13 heap_head#0 ] 6,125.53: zp[2]:24 [ print_char_cursor#19 print_char_cursor#32 print_char_cursor#0 ] 381.02: zp[1]:35 [ sin_offset_y#11 sin_offset_y#10 sin_offset_y#13 ] 372.42: zp[1]:34 [ sin_offset_x#11 sin_offset_x#10 sin_offset_x#13 ] 16.15: zp[2]:130 [ SQUARES#0 ] 0.05: zp[2]:69 [ SCREEN_ANGLE#0 ] 0.05: zp[2]:67 [ SCREEN_DIST#0 ]
|
||||
@ -5439,7 +5442,7 @@ Limited combination testing to 100 combinations of 9216 possible.
|
||||
Uplifting [sqrt] best 1342197 combination zp[2]:141 [ sqrt::found#0 ] zp[2]:143 [ sqrt::$2 ] zp[2]:87 [ sqrt::val#0 ] zp[2]:145 [ sqrt::$1 ] reg byte a [ sqrt::return#0 ] reg byte a [ sqrt::return#2 ]
|
||||
Uplifting [memset] best 1342181 combination zp[2]:32 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:123 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:29 [ memset::str#3 ]
|
||||
Uplifting [sqr] best 1341844 combination reg byte a [ sqr::$0 ] reg byte a [ sqr::val#2 sqr::val#1 sqr::val#0 ] zp[2]:135 [ sqr::return#0 ] zp[2]:81 [ sqr::return#3 ] zp[2]:76 [ sqr::return#2 ]
|
||||
Uplifting [init_angle_screen] best 1340244 combination zp[1]:21 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] reg byte a [ init_angle_screen::$3 ] reg byte a [ init_angle_screen::$4 ] reg byte a [ init_angle_screen::$5 ] zp[2]:104 [ init_angle_screen::angle_w#0 ] zp[2]:106 [ init_angle_screen::$7 ] zp[1]:109 [ init_angle_screen::$9 ] zp[1]:110 [ init_angle_screen::$10 ] zp[1]:111 [ init_angle_screen::$11 ] zp[1]:20 [ init_angle_screen::x#2 init_angle_screen::x#1 ] zp[1]:108 [ init_angle_screen::ang_w#0 ] zp[2]:96 [ init_angle_screen::yw#0 ] zp[2]:93 [ init_angle_screen::xw#0 ] zp[1]:15 [ init_angle_screen::y#5 init_angle_screen::y#1 ] zp[2]:18 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] zp[2]:16 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] zp[2]:73 [ init_angle_screen::screen#0 ]
|
||||
Uplifting [init_angle_screen] best 1340244 combination zp[1]:21 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] reg byte a [ init_angle_screen::$3 ] reg byte a [ init_angle_screen::$4 ] reg byte a [ init_angle_screen::$6 ] zp[2]:104 [ init_angle_screen::angle_w#0 ] zp[2]:106 [ init_angle_screen::$9 ] zp[1]:109 [ init_angle_screen::$11 ] zp[1]:110 [ init_angle_screen::$12 ] zp[1]:111 [ init_angle_screen::$13 ] zp[1]:20 [ init_angle_screen::x#2 init_angle_screen::x#1 ] zp[1]:108 [ init_angle_screen::ang_w#0 ] zp[2]:96 [ init_angle_screen::yw#0 ] zp[2]:93 [ init_angle_screen::xw#0 ] zp[1]:15 [ init_angle_screen::y#5 init_angle_screen::y#1 ] zp[2]:18 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] zp[2]:16 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] zp[2]:73 [ init_angle_screen::screen#0 ]
|
||||
Limited combination testing to 100 combinations of 331776 possible.
|
||||
Uplifting [init_dist_screen] best 1337044 combination reg byte a [ init_dist_screen::xd#0 init_dist_screen::$16 init_dist_screen::$14 ] zp[1]:13 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ] reg byte a [ init_dist_screen::x2#0 ] zp[2]:83 [ init_dist_screen::xds#0 ] zp[2]:85 [ init_dist_screen::ds#0 ] zp[1]:12 [ init_dist_screen::x#2 init_dist_screen::x#1 ] reg byte a [ init_dist_screen::d#0 ] zp[1]:11 [ init_dist_screen::yd#0 init_dist_screen::$7 init_dist_screen::$5 ] zp[1]:75 [ init_dist_screen::y2#0 ] zp[1]:6 [ init_dist_screen::y#10 init_dist_screen::y#1 ] zp[2]:9 [ init_dist_screen::screen_bottomline#11 init_dist_screen::screen_bottomline#0 init_dist_screen::screen_bottomline#1 ] zp[2]:7 [ init_dist_screen::screen_topline#11 init_dist_screen::screen#0 init_dist_screen::screen_topline#1 ] zp[2]:78 [ init_dist_screen::yds#0 ]
|
||||
Limited combination testing to 100 combinations of 6144 possible.
|
||||
@ -5464,12 +5467,12 @@ Attempting to uplift remaining variables inzp[1]:13 [ init_dist_screen::xb#2 ini
|
||||
Uplifting [init_dist_screen] best 1336844 combination zp[1]:13 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:21 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Uplifting [init_angle_screen] best 1336844 combination zp[1]:21 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:109 [ init_angle_screen::$9 ]
|
||||
Uplifting [init_angle_screen] best 1336244 combination reg byte a [ init_angle_screen::$9 ]
|
||||
Attempting to uplift remaining variables inzp[1]:110 [ init_angle_screen::$10 ]
|
||||
Uplifting [init_angle_screen] best 1335844 combination reg byte a [ init_angle_screen::$10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:111 [ init_angle_screen::$11 ]
|
||||
Uplifting [init_angle_screen] best 1335244 combination reg byte a [ init_angle_screen::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:109 [ init_angle_screen::$11 ]
|
||||
Uplifting [init_angle_screen] best 1336244 combination reg byte a [ init_angle_screen::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:110 [ init_angle_screen::$12 ]
|
||||
Uplifting [init_angle_screen] best 1335844 combination reg byte a [ init_angle_screen::$12 ]
|
||||
Attempting to uplift remaining variables inzp[1]:111 [ init_angle_screen::$13 ]
|
||||
Uplifting [init_angle_screen] best 1335244 combination reg byte a [ init_angle_screen::$13 ]
|
||||
Attempting to uplift remaining variables inzp[1]:12 [ init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
Uplifting [init_dist_screen] best 1335244 combination zp[1]:12 [ init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:20 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
@ -5513,7 +5516,7 @@ Coalescing zero page register [ zp[2]:55 [ atan2_16::angle#6 atan2_16::angle#12
|
||||
Coalescing zero page register [ zp[2]:64 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 ] ] with [ zp[2]:141 [ sqrt::found#0 sqrt::$2 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:81 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 ] ] with [ zp[2]:85 [ init_dist_screen::ds#0 sqrt::val#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:115 [ make_plasma_charset::$10 make_plasma_charset::$11 ] ] with [ zp[2]:119 [ make_plasma_charset::$16 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:55 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 ] ] with [ zp[2]:106 [ init_angle_screen::$7 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:55 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 ] ] with [ zp[2]:106 [ init_angle_screen::$9 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:64 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 ] ] with [ zp[2]:145 [ sqrt::$1 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:81 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 ] ] with [ zp[2]:137 [ bsearch16u::key#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:9 [ init_dist_screen::screen_bottomline#11 init_dist_screen::screen_bottomline#0 init_dist_screen::screen_bottomline#1 ] ] with [ zp[2]:2 [ heap_head#13 heap_head#0 ] ]
|
||||
@ -5529,7 +5532,7 @@ Coalescing zero page register [ zp[2]:45 [ init_squares::sqr#2 init_squares::sqr
|
||||
Coalescing zero page register [ zp[2]:47 [ init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ] ] with [ zp[2]:40 [ doplasma::screen#5 doplasma::screen#6 doplasma::screen#2 ] ]
|
||||
Coalescing zero page register [ zp[2]:64 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 ] ] with [ zp[2]:50 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] ]
|
||||
Coalescing zero page register [ zp[2]:76 [ sqr::return#2 init_dist_screen::yds#0 ] ] with [ zp[2]:52 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] ]
|
||||
Coalescing zero page register [ zp[2]:81 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 ] ] with [ zp[2]:55 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ] ]
|
||||
Coalescing zero page register [ zp[2]:81 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 ] ] with [ zp[2]:55 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ] ]
|
||||
Coalescing zero page register [ zp[1]:108 [ init_angle_screen::ang_w#0 ] ] with [ zp[1]:35 [ sin_offset_y#11 sin_offset_y#10 sin_offset_y#13 ] ]
|
||||
Coalescing zero page register [ zp[1]:113 [ make_plasma_charset::s#0 ] ] with [ zp[1]:42 [ doplasma::y#4 doplasma::y#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:115 [ make_plasma_charset::$10 make_plasma_charset::$11 make_plasma_charset::$16 ] ] with [ zp[2]:60 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] ]
|
||||
@ -5553,7 +5556,7 @@ Allocated (was zp[2]:64) zp[2]:9 [ bsearch16u::return#1 bsearch16u::return#2 bse
|
||||
Allocated (was zp[2]:67) zp[2]:11 [ SCREEN_DIST#0 ]
|
||||
Allocated (was zp[2]:69) zp[2]:13 [ SCREEN_ANGLE#0 ]
|
||||
Allocated (was zp[2]:76) zp[2]:15 [ sqr::return#2 init_dist_screen::yds#0 atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 doplasma::screen#5 doplasma::screen#6 doplasma::screen#2 ]
|
||||
Allocated (was zp[2]:81) zp[2]:17 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
||||
Allocated (was zp[2]:81) zp[2]:17 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
|
||||
Allocated (was zp[1]:108) zp[1]:19 [ init_angle_screen::ang_w#0 sin_offset_y#11 sin_offset_y#10 sin_offset_y#13 ]
|
||||
Allocated (was zp[1]:113) zp[1]:20 [ make_plasma_charset::s#0 doplasma::y#4 doplasma::y#1 init_angle_screen::x#2 init_angle_screen::x#1 init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
Allocated (was zp[1]:122) zp[1]:21 [ make_plasma_charset::$7 init_angle_screen::xb#2 init_angle_screen::xb#1 init_dist_screen::xb#2 init_dist_screen::xb#1 ]
|
||||
@ -6031,7 +6034,7 @@ init_dist_screen: {
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp(4) screen)
|
||||
init_angle_screen: {
|
||||
.label __7 = $11
|
||||
.label __9 = $11
|
||||
.label screen = 4
|
||||
.label screen_bottomline = 4
|
||||
.label xw = $16
|
||||
@ -6129,10 +6132,10 @@ init_angle_screen: {
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// [82] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
// [82] init_angle_screen::$6 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
lda.z y
|
||||
asl
|
||||
// [83] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
// [83] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
ldy #0
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
@ -6145,41 +6148,41 @@ init_angle_screen: {
|
||||
// init_angle_screen::@5
|
||||
__b5:
|
||||
// [88] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
// [89] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [89] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// [90] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __7+1
|
||||
// [90] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// [91] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
||||
lda.z ang_w
|
||||
ldy.z xb
|
||||
sta (screen_bottomline),y
|
||||
// [92] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
// [92] init_angle_screen::$11 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
lda.z ang_w
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
// [93] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [93] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z xb
|
||||
sta (screen_topline),y
|
||||
// [94] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
// [94] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z ang_w
|
||||
// [95] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [95] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_topline),y
|
||||
// [96] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
// [96] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
lda #$80
|
||||
sec
|
||||
sbc.z ang_w
|
||||
// [97] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [97] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_bottomline),y
|
||||
// [98] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
||||
@ -7661,13 +7664,13 @@ byte* heap_head
|
||||
byte* heap_head#0 heap_head zp[2]:7 1100.4
|
||||
byte* heap_head#13 heap_head zp[2]:7 11004.0
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$11 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$12 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$13 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$3 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$4 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$5 reg byte a 20002.0
|
||||
word~ init_angle_screen::$7 zp[2]:17 20002.0
|
||||
byte~ init_angle_screen::$9 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$6 reg byte a 20002.0
|
||||
word~ init_angle_screen::$9 zp[2]:17 20002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 ang_w zp[1]:19 8334.166666666666
|
||||
word init_angle_screen::angle_w
|
||||
@ -7863,16 +7866,16 @@ zp[2]:13 [ SCREEN_ANGLE#0 ]
|
||||
reg byte a [ init_dist_screen::y2#0 ]
|
||||
zp[2]:15 [ sqr::return#2 init_dist_screen::yds#0 atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 doplasma::screen#5 doplasma::screen#6 doplasma::screen#2 ]
|
||||
reg byte a [ init_dist_screen::x2#0 ]
|
||||
zp[2]:17 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
||||
zp[2]:17 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
|
||||
reg byte a [ sqrt::return#2 ]
|
||||
reg byte a [ init_dist_screen::d#0 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
reg byte a [ init_angle_screen::$4 ]
|
||||
reg byte a [ init_angle_screen::$5 ]
|
||||
reg byte a [ init_angle_screen::$6 ]
|
||||
zp[1]:19 [ init_angle_screen::ang_w#0 sin_offset_y#11 sin_offset_y#10 sin_offset_y#13 ]
|
||||
reg byte a [ init_angle_screen::$9 ]
|
||||
reg byte a [ init_angle_screen::$10 ]
|
||||
reg byte a [ init_angle_screen::$11 ]
|
||||
reg byte a [ init_angle_screen::$12 ]
|
||||
reg byte a [ init_angle_screen::$13 ]
|
||||
reg byte x [ make_plasma_charset::$3 ]
|
||||
zp[1]:20 [ make_plasma_charset::s#0 doplasma::y#4 doplasma::y#1 init_angle_screen::x#2 init_angle_screen::x#1 init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
reg byte a [ make_plasma_charset::$12 ]
|
||||
@ -8325,7 +8328,7 @@ init_dist_screen: {
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp(4) screen)
|
||||
init_angle_screen: {
|
||||
.label __7 = $11
|
||||
.label __9 = $11
|
||||
.label screen = 4
|
||||
.label screen_bottomline = 4
|
||||
.label xw = $16
|
||||
@ -8417,17 +8420,17 @@ init_angle_screen: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc #$27
|
||||
// signed word xw = (signed word)(word){ 39-x*2, 0 }
|
||||
// MAKEWORD( 39-x*2, 0 )
|
||||
// [81] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// y*2
|
||||
// [82] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
// [82] init_angle_screen::$6 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
lda.z y
|
||||
asl
|
||||
// signed word yw = (signed word)(word){ y*2, 0 }
|
||||
// [83] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
// MAKEWORD( y*2, 0 )
|
||||
// [83] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
// atan2_16(xw, yw)
|
||||
@ -8440,46 +8443,46 @@ init_angle_screen: {
|
||||
// word angle_w = atan2_16(xw, yw)
|
||||
// [88] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
// angle_w+0x0080
|
||||
// [89] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [89] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
// [90] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __7+1
|
||||
// [90] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// screen_bottomline[xb] = ang_w
|
||||
// [91] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
||||
ldy.z xb
|
||||
sta (screen_bottomline),y
|
||||
// -ang_w
|
||||
// [92] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
// [92] init_angle_screen::$11 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
// screen_topline[xb] = -ang_w
|
||||
// [93] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [93] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
sta (screen_topline),y
|
||||
// 0x80+ang_w
|
||||
// [94] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
// [94] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z ang_w
|
||||
// screen_topline[x] = 0x80+ang_w
|
||||
// [95] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [95] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_topline),y
|
||||
// 0x80-ang_w
|
||||
// [96] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
// [96] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
lda #$80
|
||||
sec
|
||||
sbc.z ang_w
|
||||
// screen_bottomline[x] = 0x80-ang_w
|
||||
// [97] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [97] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
sta (screen_bottomline),y
|
||||
// for( byte x=0,xb=39; x<=19; x++, xb--)
|
||||
// [98] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
||||
|
@ -139,13 +139,13 @@ byte* heap_head
|
||||
byte* heap_head#0 heap_head zp[2]:7 1100.4
|
||||
byte* heap_head#13 heap_head zp[2]:7 11004.0
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$11 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$12 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$13 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$3 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$4 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$5 reg byte a 20002.0
|
||||
word~ init_angle_screen::$7 zp[2]:17 20002.0
|
||||
byte~ init_angle_screen::$9 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$6 reg byte a 20002.0
|
||||
word~ init_angle_screen::$9 zp[2]:17 20002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 ang_w zp[1]:19 8334.166666666666
|
||||
word init_angle_screen::angle_w
|
||||
@ -341,16 +341,16 @@ zp[2]:13 [ SCREEN_ANGLE#0 ]
|
||||
reg byte a [ init_dist_screen::y2#0 ]
|
||||
zp[2]:15 [ sqr::return#2 init_dist_screen::yds#0 atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 doplasma::screen#5 doplasma::screen#6 doplasma::screen#2 ]
|
||||
reg byte a [ init_dist_screen::x2#0 ]
|
||||
zp[2]:17 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
||||
zp[2]:17 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
|
||||
reg byte a [ sqrt::return#2 ]
|
||||
reg byte a [ init_dist_screen::d#0 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
reg byte a [ init_angle_screen::$4 ]
|
||||
reg byte a [ init_angle_screen::$5 ]
|
||||
reg byte a [ init_angle_screen::$6 ]
|
||||
zp[1]:19 [ init_angle_screen::ang_w#0 sin_offset_y#11 sin_offset_y#10 sin_offset_y#13 ]
|
||||
reg byte a [ init_angle_screen::$9 ]
|
||||
reg byte a [ init_angle_screen::$10 ]
|
||||
reg byte a [ init_angle_screen::$11 ]
|
||||
reg byte a [ init_angle_screen::$12 ]
|
||||
reg byte a [ init_angle_screen::$13 ]
|
||||
reg byte x [ make_plasma_charset::$3 ]
|
||||
zp[1]:20 [ make_plasma_charset::s#0 doplasma::y#4 doplasma::y#1 init_angle_screen::x#2 init_angle_screen::x#1 init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
reg byte a [ make_plasma_charset::$12 ]
|
||||
|
@ -214,7 +214,7 @@ clock_start: {
|
||||
// Populates 1000 bytes (a screen) with values representing the angle to the center.
|
||||
// Utilizes symmetry around the center
|
||||
init_angle_screen: {
|
||||
.label __7 = $f
|
||||
.label __9 = $f
|
||||
.label xw = $17
|
||||
.label yw = $19
|
||||
.label angle_w = $f
|
||||
@ -275,14 +275,14 @@ init_angle_screen: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc #$27
|
||||
// signed word xw = (signed word)(word){ 39-x*2, 0 }
|
||||
// MAKEWORD( 39-x*2, 0 )
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// y*2
|
||||
lda.z y
|
||||
asl
|
||||
// signed word yw = (signed word)(word){ y*2, 0 }
|
||||
// MAKEWORD( y*2, 0 )
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
// atan2_16(xw, yw)
|
||||
@ -291,13 +291,13 @@ init_angle_screen: {
|
||||
// angle_w+0x0080
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
lda.z __7+1
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// screen_bottomline[xb] = ang_w
|
||||
ldy.z xb
|
||||
|
@ -119,8 +119,8 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[55] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
||||
[56] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
[57] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
||||
[58] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
||||
[59] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
||||
[58] init_angle_screen::$6 = init_angle_screen::y#5 << 1
|
||||
[59] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0
|
||||
[60] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
||||
[61] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
||||
[62] call atan2_16
|
||||
@ -128,15 +128,15 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
to:init_angle_screen::@5
|
||||
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[64] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
[65] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
[66] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7
|
||||
[65] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
[66] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9
|
||||
[67] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
[68] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
[69] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
[70] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
[71] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
||||
[72] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
[73] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
||||
[68] init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
[69] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
[70] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
[71] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12
|
||||
[72] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
[73] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13
|
||||
[74] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
||||
[75] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
|
@ -506,9 +506,11 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
init_angle_screen::x#3 = phi( init_angle_screen::@2/init_angle_screen::x#2 )
|
||||
init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
||||
init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
init_angle_screen::xw#0 = (signed word)(word){ init_angle_screen::$4, 0 }
|
||||
init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
init_angle_screen::yw#0 = (signed word)(word){ init_angle_screen::$5, 0 }
|
||||
init_angle_screen::$5 = init_angle_screen::$4 w= 0
|
||||
init_angle_screen::xw#0 = (signed word)init_angle_screen::$5
|
||||
init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
init_angle_screen::$7 = init_angle_screen::$6 w= 0
|
||||
init_angle_screen::yw#0 = (signed word)init_angle_screen::$7
|
||||
atan2_16::x#0 = init_angle_screen::xw#0
|
||||
atan2_16::y#0 = init_angle_screen::yw#0
|
||||
call atan2_16
|
||||
@ -521,18 +523,18 @@ init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
init_angle_screen::xb#2 = phi( init_angle_screen::@3/init_angle_screen::xb#3 )
|
||||
init_angle_screen::screen_bottomline#2 = phi( init_angle_screen::@3/init_angle_screen::screen_bottomline#4 )
|
||||
atan2_16::return#4 = phi( init_angle_screen::@3/atan2_16::return#2 )
|
||||
init_angle_screen::$6 = atan2_16::return#4
|
||||
init_angle_screen::angle_w#0 = init_angle_screen::$6
|
||||
init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
init_angle_screen::$8 = byte1 init_angle_screen::$7
|
||||
init_angle_screen::ang_w#0 = init_angle_screen::$8
|
||||
init_angle_screen::$8 = atan2_16::return#4
|
||||
init_angle_screen::angle_w#0 = init_angle_screen::$8
|
||||
init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
init_angle_screen::$10 = byte1 init_angle_screen::$9
|
||||
init_angle_screen::ang_w#0 = init_angle_screen::$10
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::x#4] = init_angle_screen::$10
|
||||
init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::x#4] = init_angle_screen::$11
|
||||
init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::x#4] = init_angle_screen::$12
|
||||
init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::x#4] = init_angle_screen::$13
|
||||
init_angle_screen::x#1 = ++ init_angle_screen::x#4
|
||||
init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
@ -543,8 +545,8 @@ init_angle_screen::@4: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
||||
init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
||||
init_angle_screen::y#1 = init_angle_screen::y#3 + rangenext(0,$c)
|
||||
init_angle_screen::$12 = init_angle_screen::y#1 != rangelast(0,$c)
|
||||
if(init_angle_screen::$12) goto init_angle_screen::@1
|
||||
init_angle_screen::$14 = init_angle_screen::y#1 != rangelast(0,$c)
|
||||
if(init_angle_screen::$14) goto init_angle_screen::@1
|
||||
to:init_angle_screen::@return
|
||||
init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@4
|
||||
return
|
||||
@ -769,17 +771,19 @@ void clock_start()
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte*~ init_angle_screen::$0
|
||||
byte*~ init_angle_screen::$1
|
||||
number~ init_angle_screen::$10
|
||||
number~ init_angle_screen::$11
|
||||
bool~ init_angle_screen::$12
|
||||
byte~ init_angle_screen::$10
|
||||
byte~ init_angle_screen::$11
|
||||
number~ init_angle_screen::$12
|
||||
number~ init_angle_screen::$13
|
||||
bool~ init_angle_screen::$14
|
||||
bool~ init_angle_screen::$2
|
||||
number~ init_angle_screen::$3
|
||||
number~ init_angle_screen::$4
|
||||
number~ init_angle_screen::$5
|
||||
word~ init_angle_screen::$6
|
||||
number~ init_angle_screen::$7
|
||||
byte~ init_angle_screen::$8
|
||||
byte~ init_angle_screen::$9
|
||||
word~ init_angle_screen::$5
|
||||
number~ init_angle_screen::$6
|
||||
word~ init_angle_screen::$7
|
||||
word~ init_angle_screen::$8
|
||||
number~ init_angle_screen::$9
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0
|
||||
word init_angle_screen::angle_w
|
||||
@ -981,9 +985,6 @@ dword print_ulong_at::dw#0
|
||||
dword print_ulong_at::dw#1
|
||||
dword print_ulong_at::dw#2
|
||||
|
||||
Fixing inline constructor with init_angle_screen::$13 = (byte)init_angle_screen::$4 w= (byte)0
|
||||
Fixing inline constructor with init_angle_screen::$14 = (byte)init_angle_screen::$5 w= (byte)0
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) 0 in init_font_hex::charset#2[init_font_hex::idx#0] = 0
|
||||
Adding number conversion cast (unumber) 4 in init_font_hex::$0 = init_font_hex::proto_hi#2[init_font_hex::i#2] << 4
|
||||
Adding number conversion cast (unumber) 1 in init_font_hex::$1 = init_font_hex::proto_lo#2[init_font_hex::i#2] << 1
|
||||
@ -1043,14 +1044,16 @@ Adding number conversion cast (unumber) 2 in init_angle_screen::$3 = init_angle_
|
||||
Adding number conversion cast (unumber) init_angle_screen::$3 in init_angle_screen::$3 = init_angle_screen::x#3 * (unumber)2
|
||||
Adding number conversion cast (unumber) $27 in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
Adding number conversion cast (unumber) init_angle_screen::$4 in init_angle_screen::$4 = (unumber)$27 - init_angle_screen::$3
|
||||
Adding number conversion cast (unumber) 2 in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
Adding number conversion cast (unumber) init_angle_screen::$5 in init_angle_screen::$5 = init_angle_screen::y#2 * (unumber)2
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) init_angle_screen::$7 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + (unumber)$80
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$10 in init_angle_screen::$10 = (unumber)$80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$11 in init_angle_screen::$11 = (unumber)$80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) 0 in init_angle_screen::$5 = init_angle_screen::$4 w= 0
|
||||
Adding number conversion cast (unumber) 2 in init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
Adding number conversion cast (unumber) init_angle_screen::$6 in init_angle_screen::$6 = init_angle_screen::y#2 * (unumber)2
|
||||
Adding number conversion cast (unumber) 0 in init_angle_screen::$7 = init_angle_screen::$6 w= 0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) init_angle_screen::$9 in init_angle_screen::$9 = init_angle_screen::angle_w#0 + (unumber)$80
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$12 in init_angle_screen::$12 = (unumber)$80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$13 in init_angle_screen::$13 = (unumber)$80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
||||
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
||||
Successful SSA optimization PassNAddNumberTypeConversions
|
||||
@ -1159,7 +1162,9 @@ Finalized unsigned number type (byte) $f
|
||||
Finalized unsigned number type (byte) $13
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) $27
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) $80
|
||||
Finalized unsigned number type (byte) $80
|
||||
Finalized unsigned number type (byte) $80
|
||||
@ -1181,10 +1186,10 @@ Inferred type updated to byte in main::toD0182_$5 = main::toD0182_$4 & $f
|
||||
Inferred type updated to byte in main::toD0182_$6 = main::toD0182_$2 | main::toD0182_$5
|
||||
Inferred type updated to byte in init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
||||
Inferred type updated to byte in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
Inferred type updated to byte in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
Inferred type updated to word in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
Inferred type updated to byte in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
Inferred type updated to word in init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
Inferred type updated to byte in init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
Inversing boolean not [59] atan2_16::$17 = atan2_16::yi#3 != 0 from [58] atan2_16::$16 = atan2_16::yi#3 == 0
|
||||
Inversing boolean not [68] atan2_16::$11 = atan2_16::x#4 >= 0 from [67] atan2_16::$10 = atan2_16::x#4 < 0
|
||||
Inversing boolean not [79] atan2_16::$19 = 0 == atan2_16::shift#4 from [78] atan2_16::$24 = 0 != atan2_16::shift#4
|
||||
@ -1264,8 +1269,8 @@ Alias init_angle_screen::screen_bottomline#2 = init_angle_screen::screen_bottoml
|
||||
Alias init_angle_screen::xb#2 = init_angle_screen::xb#3 init_angle_screen::xb#4
|
||||
Alias init_angle_screen::screen_topline#2 = init_angle_screen::screen_topline#4 init_angle_screen::screen_topline#5 init_angle_screen::screen_topline#3
|
||||
Alias atan2_16::return#2 = atan2_16::return#4
|
||||
Alias init_angle_screen::angle_w#0 = init_angle_screen::$6
|
||||
Alias init_angle_screen::ang_w#0 = init_angle_screen::$8
|
||||
Alias init_angle_screen::angle_w#0 = init_angle_screen::$8
|
||||
Alias init_angle_screen::ang_w#0 = init_angle_screen::$10
|
||||
Successful SSA optimization Pass2AliasElimination
|
||||
Alias atan2_16::x#1 = atan2_16::x#5 atan2_16::x#10
|
||||
Alias atan2_16::y#1 = atan2_16::y#12 atan2_16::y#9
|
||||
@ -1321,7 +1326,7 @@ Simple Condition atan2_16::$20 [62] if(atan2_16::yi#3>=0) goto atan2_16::@18
|
||||
Simple Condition atan2_16::$21 [76] if(atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@10
|
||||
Simple Condition atan2_16::$14 [79] if(atan2_16::y#0>=0) goto atan2_16::@8
|
||||
Simple Condition init_angle_screen::$2 [165] if(init_angle_screen::x#2<=$13) goto init_angle_screen::@3
|
||||
Simple Condition init_angle_screen::$12 [193] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
|
||||
Simple Condition init_angle_screen::$14 [193] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
|
||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||
Negating conditional jump and destination [76] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@12
|
||||
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
|
||||
@ -1400,8 +1405,6 @@ Simplifying constant integer cast CORDIC_ITERATIONS_16-1+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast $13+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast init_angle_screen::$4
|
||||
Simplifying constant integer cast init_angle_screen::$5
|
||||
Simplifying constant integer cast $d
|
||||
Successful SSA optimization PassNCastSimplification
|
||||
Finalized unsigned number type (byte) 5
|
||||
@ -1455,14 +1458,14 @@ Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||
Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5
|
||||
Constant main::toD0182_return#0 = main::toD0182_$2|main::toD0182_$5
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Inlining Noop Cast [112] init_angle_screen::xw#0 = (signed word)init_angle_screen::$13 keeping init_angle_screen::xw#0
|
||||
Inlining Noop Cast [115] init_angle_screen::yw#0 = (signed word)init_angle_screen::$14 keeping init_angle_screen::yw#0
|
||||
Inlining Noop Cast [112] init_angle_screen::xw#0 = (signed word)init_angle_screen::$5 keeping init_angle_screen::xw#0
|
||||
Inlining Noop Cast [115] init_angle_screen::yw#0 = (signed word)init_angle_screen::$7 keeping init_angle_screen::yw#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Rewriting division to use shift [31] atan2_16::angle#1 = atan2_16::angle#6 / 2
|
||||
Rewriting multiplication to use shift [45] atan2_16::$22 = atan2_16::i#2 * SIZEOF_WORD
|
||||
Rewriting multiplication to use shift [49] atan2_16::$23 = atan2_16::i#2 * SIZEOF_WORD
|
||||
Rewriting multiplication to use shift [109] init_angle_screen::$3 = init_angle_screen::x#2 * 2
|
||||
Rewriting multiplication to use shift [113] init_angle_screen::$5 = init_angle_screen::y#5 * 2
|
||||
Rewriting multiplication to use shift [113] init_angle_screen::$6 = init_angle_screen::y#5 * 2
|
||||
Successful SSA optimization Pass2MultiplyToShiftRewriting
|
||||
Inlining constant with var siblings init_font_hex::proto_hi#0
|
||||
Inlining constant with var siblings init_font_hex::c#0
|
||||
@ -1767,8 +1770,8 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[55] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
||||
[56] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
[57] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
||||
[58] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
||||
[59] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
||||
[58] init_angle_screen::$6 = init_angle_screen::y#5 << 1
|
||||
[59] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0
|
||||
[60] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
||||
[61] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
||||
[62] call atan2_16
|
||||
@ -1776,15 +1779,15 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
to:init_angle_screen::@5
|
||||
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[64] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
[65] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
[66] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7
|
||||
[65] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
[66] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9
|
||||
[67] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
[68] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
[69] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
[70] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
[71] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
||||
[72] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
[73] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
||||
[68] init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
[69] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
[70] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
[71] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12
|
||||
[72] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
[73] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13
|
||||
[74] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
||||
[75] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
@ -2018,13 +2021,13 @@ dword clock::return#0 4.333333333333333
|
||||
dword clock::return#2 4.0
|
||||
void clock_start()
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 2002.0
|
||||
byte~ init_angle_screen::$11 2002.0
|
||||
byte~ init_angle_screen::$12 2002.0
|
||||
byte~ init_angle_screen::$13 2002.0
|
||||
byte~ init_angle_screen::$3 2002.0
|
||||
byte~ init_angle_screen::$4 2002.0
|
||||
byte~ init_angle_screen::$5 2002.0
|
||||
word~ init_angle_screen::$7 2002.0
|
||||
byte~ init_angle_screen::$9 2002.0
|
||||
byte~ init_angle_screen::$6 2002.0
|
||||
word~ init_angle_screen::$9 2002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 834.1666666666667
|
||||
word init_angle_screen::angle_w
|
||||
@ -2156,17 +2159,17 @@ Added variable init_font_hex::idx#3 to live range equivalence class [ init_font_
|
||||
Added variable init_angle_screen::$3 to live range equivalence class [ init_angle_screen::$3 ]
|
||||
Added variable init_angle_screen::$4 to live range equivalence class [ init_angle_screen::$4 ]
|
||||
Added variable init_angle_screen::xw#0 to live range equivalence class [ init_angle_screen::xw#0 ]
|
||||
Added variable init_angle_screen::$5 to live range equivalence class [ init_angle_screen::$5 ]
|
||||
Added variable init_angle_screen::$6 to live range equivalence class [ init_angle_screen::$6 ]
|
||||
Added variable init_angle_screen::yw#0 to live range equivalence class [ init_angle_screen::yw#0 ]
|
||||
Added variable atan2_16::x#0 to live range equivalence class [ atan2_16::x#0 ]
|
||||
Added variable atan2_16::y#0 to live range equivalence class [ atan2_16::y#0 ]
|
||||
Added variable atan2_16::return#2 to live range equivalence class [ atan2_16::return#2 ]
|
||||
Added variable init_angle_screen::angle_w#0 to live range equivalence class [ init_angle_screen::angle_w#0 ]
|
||||
Added variable init_angle_screen::$7 to live range equivalence class [ init_angle_screen::$7 ]
|
||||
Added variable init_angle_screen::ang_w#0 to live range equivalence class [ init_angle_screen::ang_w#0 ]
|
||||
Added variable init_angle_screen::$9 to live range equivalence class [ init_angle_screen::$9 ]
|
||||
Added variable init_angle_screen::$10 to live range equivalence class [ init_angle_screen::$10 ]
|
||||
Added variable init_angle_screen::ang_w#0 to live range equivalence class [ init_angle_screen::ang_w#0 ]
|
||||
Added variable init_angle_screen::$11 to live range equivalence class [ init_angle_screen::$11 ]
|
||||
Added variable init_angle_screen::$12 to live range equivalence class [ init_angle_screen::$12 ]
|
||||
Added variable init_angle_screen::$13 to live range equivalence class [ init_angle_screen::$13 ]
|
||||
Added variable clock::return#0 to live range equivalence class [ clock::return#0 ]
|
||||
Added variable atan2_16::$23 to live range equivalence class [ atan2_16::$23 ]
|
||||
Added variable atan2_16::$22 to live range equivalence class [ atan2_16::$22 ]
|
||||
@ -2210,17 +2213,17 @@ Complete equivalence classes
|
||||
[ init_angle_screen::$3 ]
|
||||
[ init_angle_screen::$4 ]
|
||||
[ init_angle_screen::xw#0 ]
|
||||
[ init_angle_screen::$5 ]
|
||||
[ init_angle_screen::$6 ]
|
||||
[ init_angle_screen::yw#0 ]
|
||||
[ atan2_16::x#0 ]
|
||||
[ atan2_16::y#0 ]
|
||||
[ atan2_16::return#2 ]
|
||||
[ init_angle_screen::angle_w#0 ]
|
||||
[ init_angle_screen::$7 ]
|
||||
[ init_angle_screen::ang_w#0 ]
|
||||
[ init_angle_screen::$9 ]
|
||||
[ init_angle_screen::$10 ]
|
||||
[ init_angle_screen::ang_w#0 ]
|
||||
[ init_angle_screen::$11 ]
|
||||
[ init_angle_screen::$12 ]
|
||||
[ init_angle_screen::$13 ]
|
||||
[ clock::return#0 ]
|
||||
[ atan2_16::$23 ]
|
||||
[ atan2_16::$22 ]
|
||||
@ -2263,17 +2266,17 @@ Allocated zp[1]:62 [ init_font_hex::idx#3 ]
|
||||
Allocated zp[1]:63 [ init_angle_screen::$3 ]
|
||||
Allocated zp[1]:64 [ init_angle_screen::$4 ]
|
||||
Allocated zp[2]:65 [ init_angle_screen::xw#0 ]
|
||||
Allocated zp[1]:67 [ init_angle_screen::$5 ]
|
||||
Allocated zp[1]:67 [ init_angle_screen::$6 ]
|
||||
Allocated zp[2]:68 [ init_angle_screen::yw#0 ]
|
||||
Allocated zp[2]:70 [ atan2_16::x#0 ]
|
||||
Allocated zp[2]:72 [ atan2_16::y#0 ]
|
||||
Allocated zp[2]:74 [ atan2_16::return#2 ]
|
||||
Allocated zp[2]:76 [ init_angle_screen::angle_w#0 ]
|
||||
Allocated zp[2]:78 [ init_angle_screen::$7 ]
|
||||
Allocated zp[2]:78 [ init_angle_screen::$9 ]
|
||||
Allocated zp[1]:80 [ init_angle_screen::ang_w#0 ]
|
||||
Allocated zp[1]:81 [ init_angle_screen::$9 ]
|
||||
Allocated zp[1]:82 [ init_angle_screen::$10 ]
|
||||
Allocated zp[1]:83 [ init_angle_screen::$11 ]
|
||||
Allocated zp[1]:81 [ init_angle_screen::$11 ]
|
||||
Allocated zp[1]:82 [ init_angle_screen::$12 ]
|
||||
Allocated zp[1]:83 [ init_angle_screen::$13 ]
|
||||
Allocated zp[4]:84 [ clock::return#0 ]
|
||||
Allocated zp[1]:88 [ atan2_16::$23 ]
|
||||
Allocated zp[1]:89 [ atan2_16::$22 ]
|
||||
@ -2313,16 +2316,16 @@ Statement [55] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:17 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:18 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Statement [56] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [58] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [58] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [60] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [61] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [63] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [64] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [65] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [68] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [65] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [68] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:80 [ init_angle_screen::ang_w#0 ]
|
||||
Statement [70] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [72] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [70] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [72] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [76] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:8 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
|
||||
Statement [78] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:13 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
|
||||
Statement [80] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:13 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
|
||||
@ -2389,16 +2392,16 @@ Statement [50] init_angle_screen::screen_topline#1 = init_angle_screen::screen_t
|
||||
Statement [51] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] { } ) always clobbers reg byte a
|
||||
Statement [55] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [56] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [58] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [58] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [60] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [61] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [63] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [64] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [65] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [65] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [67] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [68] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [70] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [72] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [68] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [70] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [72] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( init_angle_screen:6 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [76] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:8 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
|
||||
Statement [78] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:13 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
|
||||
Statement [80] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:13 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
|
||||
@ -2473,17 +2476,17 @@ Potential registers zp[1]:62 [ init_font_hex::idx#3 ] : zp[1]:62 , reg byte a ,
|
||||
Potential registers zp[1]:63 [ init_angle_screen::$3 ] : zp[1]:63 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:64 [ init_angle_screen::$4 ] : zp[1]:64 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:65 [ init_angle_screen::xw#0 ] : zp[2]:65 ,
|
||||
Potential registers zp[1]:67 [ init_angle_screen::$5 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:67 [ init_angle_screen::$6 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:68 [ init_angle_screen::yw#0 ] : zp[2]:68 ,
|
||||
Potential registers zp[2]:70 [ atan2_16::x#0 ] : zp[2]:70 ,
|
||||
Potential registers zp[2]:72 [ atan2_16::y#0 ] : zp[2]:72 ,
|
||||
Potential registers zp[2]:74 [ atan2_16::return#2 ] : zp[2]:74 ,
|
||||
Potential registers zp[2]:76 [ init_angle_screen::angle_w#0 ] : zp[2]:76 ,
|
||||
Potential registers zp[2]:78 [ init_angle_screen::$7 ] : zp[2]:78 ,
|
||||
Potential registers zp[2]:78 [ init_angle_screen::$9 ] : zp[2]:78 ,
|
||||
Potential registers zp[1]:80 [ init_angle_screen::ang_w#0 ] : zp[1]:80 , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:81 [ init_angle_screen::$9 ] : zp[1]:81 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:82 [ init_angle_screen::$10 ] : zp[1]:82 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:83 [ init_angle_screen::$11 ] : zp[1]:83 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:81 [ init_angle_screen::$11 ] : zp[1]:81 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:82 [ init_angle_screen::$12 ] : zp[1]:82 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:83 [ init_angle_screen::$13 ] : zp[1]:83 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[4]:84 [ clock::return#0 ] : zp[4]:84 ,
|
||||
Potential registers zp[1]:88 [ atan2_16::$23 ] : zp[1]:88 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:89 [ atan2_16::$22 ] : zp[1]:89 , reg byte a , reg byte x , reg byte y ,
|
||||
@ -2494,7 +2497,7 @@ REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [atan2_16] 286,666,670.58: zp[1]:28 [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ] 206,000,008: zp[2]:29 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] 173,333,338.67: zp[2]:31 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ] 75,248,103.76: zp[2]:24 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ] 26,909,340.68: zp[2]:19 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] 22,737,342.67: zp[2]:21 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] 20,000,002: zp[1]:88 [ atan2_16::$23 ] 20,000,002: zp[1]:89 [ atan2_16::$22 ] 17,083,335.04: zp[1]:23 [ atan2_16::i#2 atan2_16::i#1 ] 82,008.5: zp[2]:26 [ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] 2,002: zp[2]:74 [ atan2_16::return#2 ] 1,079.08: zp[2]:70 [ atan2_16::x#0 ] 1,025.12: zp[2]:72 [ atan2_16::y#0 ]
|
||||
Uplift Scope [init_font_hex] 21,668.83: zp[1]:10 [ init_font_hex::i#2 init_font_hex::i#1 ] 20,002: zp[1]:60 [ init_font_hex::$1 ] 20,002: zp[1]:61 [ init_font_hex::$2 ] 11,501.6: zp[1]:11 [ init_font_hex::idx#5 init_font_hex::idx#2 ] 10,001: zp[1]:59 [ init_font_hex::$0 ] 2,002: zp[1]:62 [ init_font_hex::idx#3 ] 1,634.97: zp[1]:9 [ init_font_hex::c1#4 init_font_hex::c1#1 ] 1,631.57: zp[2]:5 [ init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ] 1,423.81: zp[2]:7 [ init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ] 634.17: zp[2]:2 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ] 162.13: zp[1]:4 [ init_font_hex::c#6 init_font_hex::c#1 ]
|
||||
Uplift Scope [print_char_at] 15,006: zp[1]:40 [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ] 15,006: zp[2]:41 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 ]
|
||||
Uplift Scope [init_angle_screen] 2,184: zp[1]:18 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] 2,002: zp[1]:63 [ init_angle_screen::$3 ] 2,002: zp[1]:64 [ init_angle_screen::$4 ] 2,002: zp[1]:67 [ init_angle_screen::$5 ] 2,002: zp[2]:76 [ init_angle_screen::angle_w#0 ] 2,002: zp[2]:78 [ init_angle_screen::$7 ] 2,002: zp[1]:81 [ init_angle_screen::$9 ] 2,002: zp[1]:82 [ init_angle_screen::$10 ] 2,002: zp[1]:83 [ init_angle_screen::$11 ] 1,287: zp[1]:17 [ init_angle_screen::x#2 init_angle_screen::x#1 ] 834.17: zp[1]:80 [ init_angle_screen::ang_w#0 ] 500.5: zp[2]:68 [ init_angle_screen::yw#0 ] 333.67: zp[2]:65 [ init_angle_screen::xw#0 ] 197.77: zp[1]:12 [ init_angle_screen::y#5 init_angle_screen::y#1 ] 155.49: zp[2]:15 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#1 ] 142.33: zp[2]:13 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#1 ]
|
||||
Uplift Scope [init_angle_screen] 2,184: zp[1]:18 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] 2,002: zp[1]:63 [ init_angle_screen::$3 ] 2,002: zp[1]:64 [ init_angle_screen::$4 ] 2,002: zp[1]:67 [ init_angle_screen::$6 ] 2,002: zp[2]:76 [ init_angle_screen::angle_w#0 ] 2,002: zp[2]:78 [ init_angle_screen::$9 ] 2,002: zp[1]:81 [ init_angle_screen::$11 ] 2,002: zp[1]:82 [ init_angle_screen::$12 ] 2,002: zp[1]:83 [ init_angle_screen::$13 ] 1,287: zp[1]:17 [ init_angle_screen::x#2 init_angle_screen::x#1 ] 834.17: zp[1]:80 [ init_angle_screen::ang_w#0 ] 500.5: zp[2]:68 [ init_angle_screen::yw#0 ] 333.67: zp[2]:65 [ init_angle_screen::xw#0 ] 197.77: zp[1]:12 [ init_angle_screen::y#5 init_angle_screen::y#1 ] 155.49: zp[2]:15 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#1 ] 142.33: zp[2]:13 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#1 ]
|
||||
Uplift Scope [print_uchar_at] 2,002: zp[1]:90 [ print_uchar_at::$0 ] 1,001: zp[1]:91 [ print_uchar_at::$2 ] 771.33: zp[2]:38 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] 642.8: zp[1]:37 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
|
||||
Uplift Scope [print_uint_at] 100: zp[2]:33 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] 40.4: zp[2]:35 [ print_uint_at::at#2 ]
|
||||
Uplift Scope [clock] 4.33: zp[4]:84 [ clock::return#0 ] 4: zp[4]:43 [ clock::return#2 ]
|
||||
@ -2512,7 +2515,7 @@ Limited combination testing to 100 combinations of 144 possible.
|
||||
Uplifting [init_font_hex] best 1138259 combination reg byte x [ init_font_hex::i#2 init_font_hex::i#1 ] reg byte a [ init_font_hex::$1 ] reg byte a [ init_font_hex::$2 ] zp[1]:11 [ init_font_hex::idx#5 init_font_hex::idx#2 ] zp[1]:59 [ init_font_hex::$0 ] zp[1]:62 [ init_font_hex::idx#3 ] zp[1]:9 [ init_font_hex::c1#4 init_font_hex::c1#1 ] zp[2]:5 [ init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ] zp[2]:7 [ init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ] zp[2]:2 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ] zp[1]:4 [ init_font_hex::c#6 init_font_hex::c#1 ]
|
||||
Limited combination testing to 100 combinations of 6912 possible.
|
||||
Uplifting [print_char_at] best 1138252 combination reg byte x [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ] zp[2]:41 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 ]
|
||||
Uplifting [init_angle_screen] best 1136652 combination zp[1]:18 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] reg byte a [ init_angle_screen::$3 ] reg byte a [ init_angle_screen::$4 ] reg byte a [ init_angle_screen::$5 ] zp[2]:76 [ init_angle_screen::angle_w#0 ] zp[2]:78 [ init_angle_screen::$7 ] zp[1]:81 [ init_angle_screen::$9 ] zp[1]:82 [ init_angle_screen::$10 ] zp[1]:83 [ init_angle_screen::$11 ] zp[1]:17 [ init_angle_screen::x#2 init_angle_screen::x#1 ] zp[1]:80 [ init_angle_screen::ang_w#0 ] zp[2]:68 [ init_angle_screen::yw#0 ] zp[2]:65 [ init_angle_screen::xw#0 ] zp[1]:12 [ init_angle_screen::y#5 init_angle_screen::y#1 ] zp[2]:15 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#1 ] zp[2]:13 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#1 ]
|
||||
Uplifting [init_angle_screen] best 1136652 combination zp[1]:18 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] reg byte a [ init_angle_screen::$3 ] reg byte a [ init_angle_screen::$4 ] reg byte a [ init_angle_screen::$6 ] zp[2]:76 [ init_angle_screen::angle_w#0 ] zp[2]:78 [ init_angle_screen::$9 ] zp[1]:81 [ init_angle_screen::$11 ] zp[1]:82 [ init_angle_screen::$12 ] zp[1]:83 [ init_angle_screen::$13 ] zp[1]:17 [ init_angle_screen::x#2 init_angle_screen::x#1 ] zp[1]:80 [ init_angle_screen::ang_w#0 ] zp[2]:68 [ init_angle_screen::yw#0 ] zp[2]:65 [ init_angle_screen::xw#0 ] zp[1]:12 [ init_angle_screen::y#5 init_angle_screen::y#1 ] zp[2]:15 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#1 ] zp[2]:13 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#1 ]
|
||||
Limited combination testing to 100 combinations of 331776 possible.
|
||||
Uplifting [print_uchar_at] best 1136644 combination reg byte a [ print_uchar_at::$0 ] reg byte y [ print_uchar_at::$2 ] zp[2]:38 [ print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] zp[1]:37 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
|
||||
Uplifting [print_uint_at] best 1136644 combination zp[2]:33 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] zp[2]:35 [ print_uint_at::at#2 ]
|
||||
@ -2533,12 +2536,12 @@ Attempting to uplift remaining variables inzp[1]:18 [ init_angle_screen::xb#2 in
|
||||
Uplifting [init_angle_screen] best 1136644 combination zp[1]:18 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:62 [ init_font_hex::idx#3 ]
|
||||
Uplifting [init_font_hex] best 1136044 combination reg byte y [ init_font_hex::idx#3 ]
|
||||
Attempting to uplift remaining variables inzp[1]:81 [ init_angle_screen::$9 ]
|
||||
Uplifting [init_angle_screen] best 1135444 combination reg byte a [ init_angle_screen::$9 ]
|
||||
Attempting to uplift remaining variables inzp[1]:82 [ init_angle_screen::$10 ]
|
||||
Uplifting [init_angle_screen] best 1135044 combination reg byte a [ init_angle_screen::$10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:83 [ init_angle_screen::$11 ]
|
||||
Uplifting [init_angle_screen] best 1134444 combination reg byte a [ init_angle_screen::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:81 [ init_angle_screen::$11 ]
|
||||
Uplifting [init_angle_screen] best 1135444 combination reg byte a [ init_angle_screen::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:82 [ init_angle_screen::$12 ]
|
||||
Uplifting [init_angle_screen] best 1135044 combination reg byte a [ init_angle_screen::$12 ]
|
||||
Attempting to uplift remaining variables inzp[1]:83 [ init_angle_screen::$13 ]
|
||||
Uplifting [init_angle_screen] best 1134444 combination reg byte a [ init_angle_screen::$13 ]
|
||||
Attempting to uplift remaining variables inzp[1]:9 [ init_font_hex::c1#4 init_font_hex::c1#1 ]
|
||||
Uplifting [init_font_hex] best 1134444 combination zp[1]:9 [ init_font_hex::c1#4 init_font_hex::c1#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:17 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
@ -2561,7 +2564,7 @@ Coalescing zero page register [ zp[2]:68 [ init_angle_screen::yw#0 ] ] with [ zp
|
||||
Coalescing zero page register [ zp[2]:74 [ atan2_16::return#2 ] ] with [ zp[2]:76 [ init_angle_screen::angle_w#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:24 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] ] with [ zp[2]:74 [ atan2_16::return#2 init_angle_screen::angle_w#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[4]:43 [ clock::return#2 main::$4 clock::return#0 ] ] with [ zp[4]:51 [ main::cyclecount#0 print_ulong_at::dw#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:24 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 ] ] with [ zp[2]:78 [ init_angle_screen::$7 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:24 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 ] ] with [ zp[2]:78 [ init_angle_screen::$9 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[1]:12 [ init_angle_screen::y#5 init_angle_screen::y#1 ] ] with [ zp[1]:4 [ init_font_hex::c#6 init_font_hex::c#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:13 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#1 ] ] with [ zp[2]:2 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:15 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#1 ] ] with [ zp[2]:5 [ init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 ] ]
|
||||
@ -2569,7 +2572,7 @@ Coalescing zero page register [ zp[1]:17 [ init_angle_screen::x#2 init_angle_scr
|
||||
Coalescing zero page register [ zp[1]:18 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] ] with [ zp[1]:11 [ init_font_hex::idx#5 init_font_hex::idx#2 ] ]
|
||||
Coalescing zero page register [ zp[2]:19 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] ] with [ zp[2]:7 [ init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:33 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] ] with [ zp[2]:21 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] ]
|
||||
Coalescing zero page register [ zp[2]:35 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] ] with [ zp[2]:24 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ] ]
|
||||
Coalescing zero page register [ zp[2]:35 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] ] with [ zp[2]:24 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ] ]
|
||||
Coalescing zero page register [ zp[2]:41 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 ] ] with [ zp[2]:29 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] ]
|
||||
Coalescing zero page register [ zp[1]:59 [ init_font_hex::$0 ] ] with [ zp[1]:37 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ] ]
|
||||
Coalescing zero page register [ zp[1]:80 [ init_angle_screen::ang_w#0 ] ] with [ zp[1]:59 [ init_font_hex::$0 print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ] ]
|
||||
@ -2581,7 +2584,7 @@ Allocated (was zp[1]:18) zp[1]:8 [ init_angle_screen::xb#2 init_angle_screen::xb
|
||||
Allocated (was zp[2]:19) zp[2]:9 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 ]
|
||||
Allocated (was zp[2]:31) zp[2]:11 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
||||
Allocated (was zp[2]:33) zp[2]:13 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
||||
Allocated (was zp[2]:35) zp[2]:15 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
||||
Allocated (was zp[2]:35) zp[2]:15 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
|
||||
Allocated (was zp[2]:41) zp[2]:17 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
||||
Allocated (was zp[4]:43) zp[4]:19 [ clock::return#2 main::$4 clock::return#0 main::cyclecount#0 print_ulong_at::dw#0 ]
|
||||
Allocated (was zp[2]:65) zp[2]:23 [ init_angle_screen::xw#0 atan2_16::x#0 ]
|
||||
@ -2905,7 +2908,7 @@ clock_start: {
|
||||
// Populates 1000 bytes (a screen) with values representing the angle to the center.
|
||||
// Utilizes symmetry around the center
|
||||
init_angle_screen: {
|
||||
.label __7 = $f
|
||||
.label __9 = $f
|
||||
.label xw = $17
|
||||
.label yw = $19
|
||||
.label angle_w = $f
|
||||
@ -2997,10 +3000,10 @@ init_angle_screen: {
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// [58] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
// [58] init_angle_screen::$6 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
lda.z y
|
||||
asl
|
||||
// [59] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
// [59] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
ldy #0
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
@ -3013,41 +3016,41 @@ init_angle_screen: {
|
||||
// init_angle_screen::@5
|
||||
__b5:
|
||||
// [64] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
// [65] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [65] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// [66] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __7+1
|
||||
// [66] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// [67] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
||||
lda.z ang_w
|
||||
ldy.z xb
|
||||
sta (screen_bottomline),y
|
||||
// [68] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
// [68] init_angle_screen::$11 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
lda.z ang_w
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
// [69] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [69] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z xb
|
||||
sta (screen_topline),y
|
||||
// [70] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
// [70] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z ang_w
|
||||
// [71] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [71] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_topline),y
|
||||
// [72] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
// [72] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
lda #$80
|
||||
sec
|
||||
sbc.z ang_w
|
||||
// [73] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [73] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_bottomline),y
|
||||
// [74] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
||||
@ -3800,13 +3803,13 @@ dword clock::return#0 return zp[4]:19 4.333333333333333
|
||||
dword clock::return#2 return zp[4]:19 4.0
|
||||
void clock_start()
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$11 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$12 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$13 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$3 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$4 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$5 reg byte a 2002.0
|
||||
word~ init_angle_screen::$7 zp[2]:15 2002.0
|
||||
byte~ init_angle_screen::$9 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$6 reg byte a 2002.0
|
||||
word~ init_angle_screen::$9 zp[2]:15 2002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 ang_w zp[1]:27 834.1666666666667
|
||||
word init_angle_screen::angle_w
|
||||
@ -3916,7 +3919,7 @@ reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
||||
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
||||
zp[2]:11 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
||||
zp[2]:13 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
||||
zp[2]:15 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
||||
zp[2]:15 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
|
||||
reg byte x [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ]
|
||||
zp[2]:17 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
||||
zp[4]:19 [ clock::return#2 main::$4 clock::return#0 main::cyclecount#0 print_ulong_at::dw#0 ]
|
||||
@ -3926,12 +3929,12 @@ reg byte y [ init_font_hex::idx#3 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
reg byte a [ init_angle_screen::$4 ]
|
||||
zp[2]:23 [ init_angle_screen::xw#0 atan2_16::x#0 ]
|
||||
reg byte a [ init_angle_screen::$5 ]
|
||||
reg byte a [ init_angle_screen::$6 ]
|
||||
zp[2]:25 [ init_angle_screen::yw#0 atan2_16::y#0 ]
|
||||
zp[1]:27 [ init_angle_screen::ang_w#0 init_font_hex::$0 print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
|
||||
reg byte a [ init_angle_screen::$9 ]
|
||||
reg byte a [ init_angle_screen::$10 ]
|
||||
reg byte a [ init_angle_screen::$11 ]
|
||||
reg byte a [ init_angle_screen::$12 ]
|
||||
reg byte a [ init_angle_screen::$13 ]
|
||||
reg byte a [ atan2_16::$23 ]
|
||||
reg byte a [ atan2_16::$22 ]
|
||||
reg byte a [ print_uchar_at::$0 ]
|
||||
@ -4244,7 +4247,7 @@ clock_start: {
|
||||
// Populates 1000 bytes (a screen) with values representing the angle to the center.
|
||||
// Utilizes symmetry around the center
|
||||
init_angle_screen: {
|
||||
.label __7 = $f
|
||||
.label __9 = $f
|
||||
.label xw = $17
|
||||
.label yw = $19
|
||||
.label angle_w = $f
|
||||
@ -4329,17 +4332,17 @@ init_angle_screen: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc #$27
|
||||
// signed word xw = (signed word)(word){ 39-x*2, 0 }
|
||||
// MAKEWORD( 39-x*2, 0 )
|
||||
// [57] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// y*2
|
||||
// [58] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
// [58] init_angle_screen::$6 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
lda.z y
|
||||
asl
|
||||
// signed word yw = (signed word)(word){ y*2, 0 }
|
||||
// [59] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
// MAKEWORD( y*2, 0 )
|
||||
// [59] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
// atan2_16(xw, yw)
|
||||
@ -4352,46 +4355,46 @@ init_angle_screen: {
|
||||
// word angle_w = atan2_16(xw, yw)
|
||||
// [64] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
// angle_w+0x0080
|
||||
// [65] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [65] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
// [66] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __7+1
|
||||
// [66] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// screen_bottomline[xb] = ang_w
|
||||
// [67] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
||||
ldy.z xb
|
||||
sta (screen_bottomline),y
|
||||
// -ang_w
|
||||
// [68] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
// [68] init_angle_screen::$11 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
// screen_topline[xb] = -ang_w
|
||||
// [69] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [69] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
sta (screen_topline),y
|
||||
// 0x80+ang_w
|
||||
// [70] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
// [70] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z ang_w
|
||||
// screen_topline[x] = 0x80+ang_w
|
||||
// [71] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [71] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_topline),y
|
||||
// 0x80-ang_w
|
||||
// [72] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
// [72] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
lda #$80
|
||||
sec
|
||||
sbc.z ang_w
|
||||
// screen_bottomline[x] = 0x80-ang_w
|
||||
// [73] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [73] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
sta (screen_bottomline),y
|
||||
// for( byte x=0,xb=39; x<=19; x++, xb--)
|
||||
// [74] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
||||
|
@ -78,13 +78,13 @@ dword clock::return#0 return zp[4]:19 4.333333333333333
|
||||
dword clock::return#2 return zp[4]:19 4.0
|
||||
void clock_start()
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$11 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$12 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$13 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$3 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$4 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$5 reg byte a 2002.0
|
||||
word~ init_angle_screen::$7 zp[2]:15 2002.0
|
||||
byte~ init_angle_screen::$9 reg byte a 2002.0
|
||||
byte~ init_angle_screen::$6 reg byte a 2002.0
|
||||
word~ init_angle_screen::$9 zp[2]:15 2002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 ang_w zp[1]:27 834.1666666666667
|
||||
word init_angle_screen::angle_w
|
||||
@ -194,7 +194,7 @@ reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
||||
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
||||
zp[2]:11 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
|
||||
zp[2]:13 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ]
|
||||
zp[2]:15 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
||||
zp[2]:15 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
|
||||
reg byte x [ print_char_at::ch#2 print_char_at::ch#0 print_char_at::ch#1 ]
|
||||
zp[2]:17 [ print_char_at::at#2 print_char_at::at#0 print_char_at::at#1 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
||||
zp[4]:19 [ clock::return#2 main::$4 clock::return#0 main::cyclecount#0 print_ulong_at::dw#0 ]
|
||||
@ -204,12 +204,12 @@ reg byte y [ init_font_hex::idx#3 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
reg byte a [ init_angle_screen::$4 ]
|
||||
zp[2]:23 [ init_angle_screen::xw#0 atan2_16::x#0 ]
|
||||
reg byte a [ init_angle_screen::$5 ]
|
||||
reg byte a [ init_angle_screen::$6 ]
|
||||
zp[2]:25 [ init_angle_screen::yw#0 atan2_16::y#0 ]
|
||||
zp[1]:27 [ init_angle_screen::ang_w#0 init_font_hex::$0 print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ]
|
||||
reg byte a [ init_angle_screen::$9 ]
|
||||
reg byte a [ init_angle_screen::$10 ]
|
||||
reg byte a [ init_angle_screen::$11 ]
|
||||
reg byte a [ init_angle_screen::$12 ]
|
||||
reg byte a [ init_angle_screen::$13 ]
|
||||
reg byte a [ atan2_16::$23 ]
|
||||
reg byte a [ atan2_16::$22 ]
|
||||
reg byte a [ print_uchar_at::$0 ]
|
||||
|
@ -430,7 +430,7 @@ init_dist_screen: {
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp(8) screen)
|
||||
init_angle_screen: {
|
||||
.label __7 = $10
|
||||
.label __9 = $10
|
||||
.label screen = 8
|
||||
.label screen_bottomline = 8
|
||||
.label xw = $21
|
||||
@ -496,14 +496,14 @@ init_angle_screen: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc #$27
|
||||
// signed word xw = (signed word)(word){ 39-x*2, 0 }
|
||||
// MAKEWORD( 39-x*2, 0 )
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// y*2
|
||||
lda.z y
|
||||
asl
|
||||
// signed word yw = (signed word)(word){ y*2, 0 }
|
||||
// MAKEWORD( y*2, 0 )
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
// atan2_16(xw, yw)
|
||||
@ -512,13 +512,13 @@ init_angle_screen: {
|
||||
// angle_w+0x0080
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
lda.z __7+1
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// screen_bottomline[xb] = ang_w
|
||||
ldy.z xb
|
||||
|
@ -230,8 +230,8 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[106] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
||||
[107] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
[108] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
||||
[109] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
||||
[110] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
||||
[109] init_angle_screen::$6 = init_angle_screen::y#5 << 1
|
||||
[110] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0
|
||||
[111] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
||||
[112] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
||||
[113] call atan2_16
|
||||
@ -239,15 +239,15 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
to:init_angle_screen::@5
|
||||
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[115] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
[116] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
[117] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7
|
||||
[116] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
[117] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9
|
||||
[118] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
[119] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
[120] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
[121] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
[122] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
||||
[123] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
[124] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
||||
[119] init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
[120] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
[121] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
[122] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12
|
||||
[123] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
[124] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13
|
||||
[125] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
||||
[126] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
|
@ -840,9 +840,11 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
init_angle_screen::x#3 = phi( init_angle_screen::@2/init_angle_screen::x#2 )
|
||||
init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
||||
init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
init_angle_screen::xw#0 = (signed word)(word){ init_angle_screen::$4, 0 }
|
||||
init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
init_angle_screen::yw#0 = (signed word)(word){ init_angle_screen::$5, 0 }
|
||||
init_angle_screen::$5 = init_angle_screen::$4 w= 0
|
||||
init_angle_screen::xw#0 = (signed word)init_angle_screen::$5
|
||||
init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
init_angle_screen::$7 = init_angle_screen::$6 w= 0
|
||||
init_angle_screen::yw#0 = (signed word)init_angle_screen::$7
|
||||
atan2_16::x#0 = init_angle_screen::xw#0
|
||||
atan2_16::y#0 = init_angle_screen::yw#0
|
||||
call atan2_16
|
||||
@ -855,18 +857,18 @@ init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
init_angle_screen::xb#2 = phi( init_angle_screen::@3/init_angle_screen::xb#3 )
|
||||
init_angle_screen::screen_bottomline#2 = phi( init_angle_screen::@3/init_angle_screen::screen_bottomline#4 )
|
||||
atan2_16::return#4 = phi( init_angle_screen::@3/atan2_16::return#2 )
|
||||
init_angle_screen::$6 = atan2_16::return#4
|
||||
init_angle_screen::angle_w#0 = init_angle_screen::$6
|
||||
init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
init_angle_screen::$8 = byte1 init_angle_screen::$7
|
||||
init_angle_screen::ang_w#0 = init_angle_screen::$8
|
||||
init_angle_screen::$8 = atan2_16::return#4
|
||||
init_angle_screen::angle_w#0 = init_angle_screen::$8
|
||||
init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
init_angle_screen::$10 = byte1 init_angle_screen::$9
|
||||
init_angle_screen::ang_w#0 = init_angle_screen::$10
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::x#4] = init_angle_screen::$10
|
||||
init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::x#4] = init_angle_screen::$11
|
||||
init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::x#4] = init_angle_screen::$12
|
||||
init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::x#4] = init_angle_screen::$13
|
||||
init_angle_screen::x#1 = ++ init_angle_screen::x#4
|
||||
init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
@ -877,8 +879,8 @@ init_angle_screen::@4: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
||||
init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
||||
init_angle_screen::y#1 = init_angle_screen::y#3 + rangenext(0,$c)
|
||||
init_angle_screen::$12 = init_angle_screen::y#1 != rangelast(0,$c)
|
||||
if(init_angle_screen::$12) goto init_angle_screen::@1
|
||||
init_angle_screen::$14 = init_angle_screen::y#1 != rangelast(0,$c)
|
||||
if(init_angle_screen::$14) goto init_angle_screen::@1
|
||||
to:init_angle_screen::@return
|
||||
init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@4
|
||||
return
|
||||
@ -1809,17 +1811,19 @@ byte* heap_head#9
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte*~ init_angle_screen::$0
|
||||
byte*~ init_angle_screen::$1
|
||||
number~ init_angle_screen::$10
|
||||
number~ init_angle_screen::$11
|
||||
bool~ init_angle_screen::$12
|
||||
byte~ init_angle_screen::$10
|
||||
byte~ init_angle_screen::$11
|
||||
number~ init_angle_screen::$12
|
||||
number~ init_angle_screen::$13
|
||||
bool~ init_angle_screen::$14
|
||||
bool~ init_angle_screen::$2
|
||||
number~ init_angle_screen::$3
|
||||
number~ init_angle_screen::$4
|
||||
number~ init_angle_screen::$5
|
||||
word~ init_angle_screen::$6
|
||||
number~ init_angle_screen::$7
|
||||
byte~ init_angle_screen::$8
|
||||
byte~ init_angle_screen::$9
|
||||
word~ init_angle_screen::$5
|
||||
number~ init_angle_screen::$6
|
||||
word~ init_angle_screen::$7
|
||||
word~ init_angle_screen::$8
|
||||
number~ init_angle_screen::$9
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0
|
||||
word init_angle_screen::angle_w
|
||||
@ -2215,9 +2219,6 @@ word sqrt::val
|
||||
word sqrt::val#0
|
||||
word sqrt::val#1
|
||||
|
||||
Fixing inline constructor with init_angle_screen::$13 = (byte)init_angle_screen::$4 w= (byte)0
|
||||
Fixing inline constructor with init_angle_screen::$14 = (byte)init_angle_screen::$5 w= (byte)0
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) 0 in bsearch16u::$5 = bsearch16u::num#3 > 0
|
||||
Adding number conversion cast (unumber) 1 in bsearch16u::$6 = bsearch16u::num#4 >> 1
|
||||
Adding number conversion cast (snumber) 0 in bsearch16u::$9 = bsearch16u::result#0 == 0
|
||||
@ -2264,14 +2265,16 @@ Adding number conversion cast (unumber) 2 in init_angle_screen::$3 = init_angle_
|
||||
Adding number conversion cast (unumber) init_angle_screen::$3 in init_angle_screen::$3 = init_angle_screen::x#3 * (unumber)2
|
||||
Adding number conversion cast (unumber) $27 in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
Adding number conversion cast (unumber) init_angle_screen::$4 in init_angle_screen::$4 = (unumber)$27 - init_angle_screen::$3
|
||||
Adding number conversion cast (unumber) 2 in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
Adding number conversion cast (unumber) init_angle_screen::$5 in init_angle_screen::$5 = init_angle_screen::y#2 * (unumber)2
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) init_angle_screen::$7 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + (unumber)$80
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$10 in init_angle_screen::$10 = (unumber)$80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$11 in init_angle_screen::$11 = (unumber)$80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) 0 in init_angle_screen::$5 = init_angle_screen::$4 w= 0
|
||||
Adding number conversion cast (unumber) 2 in init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
Adding number conversion cast (unumber) init_angle_screen::$6 in init_angle_screen::$6 = init_angle_screen::y#2 * (unumber)2
|
||||
Adding number conversion cast (unumber) 0 in init_angle_screen::$7 = init_angle_screen::$6 w= 0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) init_angle_screen::$9 in init_angle_screen::$9 = init_angle_screen::angle_w#0 + (unumber)$80
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$12 in init_angle_screen::$12 = (unumber)$80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$13 in init_angle_screen::$13 = (unumber)$80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
||||
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
||||
Adding number conversion cast (unumber) $30 in NUM_SQUARES#2 = $30
|
||||
@ -2433,7 +2436,9 @@ Finalized unsigned number type (byte) 1
|
||||
Finalized unsigned number type (byte) $13
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) $27
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) $80
|
||||
Finalized unsigned number type (byte) $80
|
||||
Finalized unsigned number type (byte) $80
|
||||
@ -2461,10 +2466,10 @@ Inferred type updated to byte in init_squares::$4 = init_squares::$3 + 1
|
||||
Inferred type updated to word in atan2_16::$12 = $8000 - atan2_16::angle#9
|
||||
Inferred type updated to byte in init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
||||
Inferred type updated to byte in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
Inferred type updated to byte in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
Inferred type updated to word in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
Inferred type updated to byte in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
Inferred type updated to word in init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
Inferred type updated to byte in init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_dist_screen::$2 = init_dist_screen::y#2 * 2
|
||||
Inferred type updated to byte in init_dist_screen::$6 = init_dist_screen::y2#1 - $18
|
||||
Inferred type updated to byte in init_dist_screen::$7 = init_dist_screen::$6
|
||||
@ -2628,8 +2633,8 @@ Alias init_angle_screen::screen_bottomline#2 = init_angle_screen::screen_bottoml
|
||||
Alias init_angle_screen::xb#2 = init_angle_screen::xb#3 init_angle_screen::xb#4
|
||||
Alias init_angle_screen::screen_topline#2 = init_angle_screen::screen_topline#4 init_angle_screen::screen_topline#5 init_angle_screen::screen_topline#3
|
||||
Alias atan2_16::return#2 = atan2_16::return#4
|
||||
Alias init_angle_screen::angle_w#0 = init_angle_screen::$6
|
||||
Alias init_angle_screen::ang_w#0 = init_angle_screen::$8
|
||||
Alias init_angle_screen::angle_w#0 = init_angle_screen::$8
|
||||
Alias init_angle_screen::ang_w#0 = init_angle_screen::$10
|
||||
Alias init_dist_screen::screen#1 = init_dist_screen::screen#2 init_dist_screen::screen_topline#0
|
||||
Alias NUM_SQUARES#2 = NUM_SQUARES#55
|
||||
Alias heap_head#28 = heap_head#9
|
||||
@ -2896,7 +2901,7 @@ Simple Condition init_buckets::$5 [195] if(init_buckets::i2#1!=rangelast(0,NUM_B
|
||||
Simple Condition init_buckets::$6 [201] if(init_buckets::i3#1!=rangelast(0,NUM_BUCKETS-1)) goto init_buckets::@7
|
||||
Simple Condition init_buckets::$10 [215] if(init_buckets::i4#1!=rangelast(0,$3e7)) goto init_buckets::@9
|
||||
Simple Condition init_angle_screen::$2 [226] if(init_angle_screen::x#2<=$13) goto init_angle_screen::@3
|
||||
Simple Condition init_angle_screen::$12 [254] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
|
||||
Simple Condition init_angle_screen::$14 [254] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
|
||||
Simple Condition init_dist_screen::$3 [265] if(init_dist_screen::y2#0>=$18) goto init_dist_screen::@2
|
||||
Simple Condition init_dist_screen::$10 [277] if(init_dist_screen::x#2<=$13) goto init_dist_screen::@6
|
||||
Simple Condition init_dist_screen::$12 [280] if(init_dist_screen::x2#0>=$27) goto init_dist_screen::@8
|
||||
@ -2999,8 +3004,6 @@ Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast $3e8
|
||||
Simplifying constant integer cast $13+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast init_angle_screen::$4
|
||||
Simplifying constant integer cast init_angle_screen::$5
|
||||
Simplifying constant integer cast $d
|
||||
Simplifying constant integer cast $13+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
@ -3036,8 +3039,8 @@ Inlining Noop Cast [245] malloc::return#15 = (void*)malloc::mem#0 keeping malloc
|
||||
Inlining Noop Cast [249] malloc::return#16 = (void*)malloc::mem#0 keeping malloc::mem#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Inlining Noop Cast [27] SQUARES#0 = (word*)init_squares::$1 keeping SQUARES#0
|
||||
Inlining Noop Cast [168] init_angle_screen::xw#0 = (signed word)init_angle_screen::$13 keeping init_angle_screen::xw#0
|
||||
Inlining Noop Cast [171] init_angle_screen::yw#0 = (signed word)init_angle_screen::$14 keeping init_angle_screen::yw#0
|
||||
Inlining Noop Cast [168] init_angle_screen::xw#0 = (signed word)init_angle_screen::$5 keeping init_angle_screen::xw#0
|
||||
Inlining Noop Cast [171] init_angle_screen::yw#0 = (signed word)init_angle_screen::$7 keeping init_angle_screen::yw#0
|
||||
Inlining Noop Cast [235] SCREEN_DIST#0 = (byte*)__start::__init1_$0 keeping SCREEN_DIST#0
|
||||
Inlining Noop Cast [239] SCREEN_ANGLE#0 = (byte*)__start::__init1_$1 keeping SCREEN_ANGLE#0
|
||||
Inlining Noop Cast [243] BUCKET_SIZES#0 = (byte*)__start::__init1_$2 keeping BUCKET_SIZES#0
|
||||
@ -3058,7 +3061,7 @@ Rewriting multiplication to use shift [138] init_buckets::$11 = init_buckets::i2
|
||||
Rewriting multiplication to use shift [150] init_buckets::$12 = init_buckets::$14 * SIZEOF_POINTER
|
||||
Rewriting multiplication to use shift [154] init_buckets::$13 = ((byte*)BUCKET_IDX#0)[init_buckets::distance#0] * SIZEOF_WORD
|
||||
Rewriting multiplication to use shift [165] init_angle_screen::$3 = init_angle_screen::x#2 * 2
|
||||
Rewriting multiplication to use shift [169] init_angle_screen::$5 = init_angle_screen::y#5 * 2
|
||||
Rewriting multiplication to use shift [169] init_angle_screen::$6 = init_angle_screen::y#5 * 2
|
||||
Rewriting multiplication to use shift [196] init_dist_screen::y2#0 = init_dist_screen::y#10 * 2
|
||||
Rewriting multiplication to use shift [207] init_dist_screen::x2#0 = init_dist_screen::x#2 * 2
|
||||
Successful SSA optimization Pass2MultiplyToShiftRewriting
|
||||
@ -3552,8 +3555,8 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[106] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
||||
[107] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
[108] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
||||
[109] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
||||
[110] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
||||
[109] init_angle_screen::$6 = init_angle_screen::y#5 << 1
|
||||
[110] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0
|
||||
[111] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
||||
[112] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
||||
[113] call atan2_16
|
||||
@ -3561,15 +3564,15 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
to:init_angle_screen::@5
|
||||
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[115] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
[116] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
[117] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7
|
||||
[116] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
[117] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9
|
||||
[118] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
[119] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
[120] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
[121] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
[122] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
||||
[123] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
[124] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
||||
[119] init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
[120] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
[121] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
[122] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12
|
||||
[123] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
[124] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13
|
||||
[125] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
||||
[126] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
@ -3937,13 +3940,13 @@ byte* heap_head
|
||||
byte* heap_head#0 129.1505376344086
|
||||
byte* heap_head#19 12011.0
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 20002.0
|
||||
byte~ init_angle_screen::$11 20002.0
|
||||
byte~ init_angle_screen::$12 20002.0
|
||||
byte~ init_angle_screen::$13 20002.0
|
||||
byte~ init_angle_screen::$3 20002.0
|
||||
byte~ init_angle_screen::$4 20002.0
|
||||
byte~ init_angle_screen::$5 20002.0
|
||||
word~ init_angle_screen::$7 20002.0
|
||||
byte~ init_angle_screen::$9 20002.0
|
||||
byte~ init_angle_screen::$6 20002.0
|
||||
word~ init_angle_screen::$9 20002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 8334.166666666666
|
||||
word init_angle_screen::angle_w
|
||||
@ -4190,17 +4193,17 @@ Added variable init_dist_screen::d#0 to live range equivalence class [ init_dist
|
||||
Added variable init_angle_screen::$3 to live range equivalence class [ init_angle_screen::$3 ]
|
||||
Added variable init_angle_screen::$4 to live range equivalence class [ init_angle_screen::$4 ]
|
||||
Added variable init_angle_screen::xw#0 to live range equivalence class [ init_angle_screen::xw#0 ]
|
||||
Added variable init_angle_screen::$5 to live range equivalence class [ init_angle_screen::$5 ]
|
||||
Added variable init_angle_screen::$6 to live range equivalence class [ init_angle_screen::$6 ]
|
||||
Added variable init_angle_screen::yw#0 to live range equivalence class [ init_angle_screen::yw#0 ]
|
||||
Added variable atan2_16::x#0 to live range equivalence class [ atan2_16::x#0 ]
|
||||
Added variable atan2_16::y#0 to live range equivalence class [ atan2_16::y#0 ]
|
||||
Added variable atan2_16::return#2 to live range equivalence class [ atan2_16::return#2 ]
|
||||
Added variable init_angle_screen::angle_w#0 to live range equivalence class [ init_angle_screen::angle_w#0 ]
|
||||
Added variable init_angle_screen::$7 to live range equivalence class [ init_angle_screen::$7 ]
|
||||
Added variable init_angle_screen::ang_w#0 to live range equivalence class [ init_angle_screen::ang_w#0 ]
|
||||
Added variable init_angle_screen::$9 to live range equivalence class [ init_angle_screen::$9 ]
|
||||
Added variable init_angle_screen::$10 to live range equivalence class [ init_angle_screen::$10 ]
|
||||
Added variable init_angle_screen::ang_w#0 to live range equivalence class [ init_angle_screen::ang_w#0 ]
|
||||
Added variable init_angle_screen::$11 to live range equivalence class [ init_angle_screen::$11 ]
|
||||
Added variable init_angle_screen::$12 to live range equivalence class [ init_angle_screen::$12 ]
|
||||
Added variable init_angle_screen::$13 to live range equivalence class [ init_angle_screen::$13 ]
|
||||
Added variable init_buckets::$15 to live range equivalence class [ init_buckets::$15 ]
|
||||
Added variable init_buckets::$4 to live range equivalence class [ init_buckets::$4 ]
|
||||
Added variable init_buckets::$11 to live range equivalence class [ init_buckets::$11 ]
|
||||
@ -4298,17 +4301,17 @@ Complete equivalence classes
|
||||
[ init_angle_screen::$3 ]
|
||||
[ init_angle_screen::$4 ]
|
||||
[ init_angle_screen::xw#0 ]
|
||||
[ init_angle_screen::$5 ]
|
||||
[ init_angle_screen::$6 ]
|
||||
[ init_angle_screen::yw#0 ]
|
||||
[ atan2_16::x#0 ]
|
||||
[ atan2_16::y#0 ]
|
||||
[ atan2_16::return#2 ]
|
||||
[ init_angle_screen::angle_w#0 ]
|
||||
[ init_angle_screen::$7 ]
|
||||
[ init_angle_screen::ang_w#0 ]
|
||||
[ init_angle_screen::$9 ]
|
||||
[ init_angle_screen::$10 ]
|
||||
[ init_angle_screen::ang_w#0 ]
|
||||
[ init_angle_screen::$11 ]
|
||||
[ init_angle_screen::$12 ]
|
||||
[ init_angle_screen::$13 ]
|
||||
[ init_buckets::$15 ]
|
||||
[ init_buckets::$4 ]
|
||||
[ init_buckets::$11 ]
|
||||
@ -4405,17 +4408,17 @@ Allocated zp[1]:106 [ init_dist_screen::d#0 ]
|
||||
Allocated zp[1]:107 [ init_angle_screen::$3 ]
|
||||
Allocated zp[1]:108 [ init_angle_screen::$4 ]
|
||||
Allocated zp[2]:109 [ init_angle_screen::xw#0 ]
|
||||
Allocated zp[1]:111 [ init_angle_screen::$5 ]
|
||||
Allocated zp[1]:111 [ init_angle_screen::$6 ]
|
||||
Allocated zp[2]:112 [ init_angle_screen::yw#0 ]
|
||||
Allocated zp[2]:114 [ atan2_16::x#0 ]
|
||||
Allocated zp[2]:116 [ atan2_16::y#0 ]
|
||||
Allocated zp[2]:118 [ atan2_16::return#2 ]
|
||||
Allocated zp[2]:120 [ init_angle_screen::angle_w#0 ]
|
||||
Allocated zp[2]:122 [ init_angle_screen::$7 ]
|
||||
Allocated zp[2]:122 [ init_angle_screen::$9 ]
|
||||
Allocated zp[1]:124 [ init_angle_screen::ang_w#0 ]
|
||||
Allocated zp[1]:125 [ init_angle_screen::$9 ]
|
||||
Allocated zp[1]:126 [ init_angle_screen::$10 ]
|
||||
Allocated zp[1]:127 [ init_angle_screen::$11 ]
|
||||
Allocated zp[1]:125 [ init_angle_screen::$11 ]
|
||||
Allocated zp[1]:126 [ init_angle_screen::$12 ]
|
||||
Allocated zp[1]:127 [ init_angle_screen::$13 ]
|
||||
Allocated zp[2]:128 [ init_buckets::$15 ]
|
||||
Allocated zp[2]:130 [ init_buckets::$4 ]
|
||||
Allocated zp[2]:132 [ init_buckets::$11 ]
|
||||
@ -4505,16 +4508,16 @@ Statement [106] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:27 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:28 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Statement [107] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [109] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [109] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [111] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [112] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [114] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [115] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [116] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [119] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [116] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [119] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:124 [ init_angle_screen::ang_w#0 ]
|
||||
Statement [121] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [123] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [121] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [123] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [129] ((byte*)BUCKET_SIZES#0)[init_buckets::i#2] = 0 [ BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::i#2 ] ( main:13::init_buckets:25 [ SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::i#2 ] { } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:29 [ init_buckets::i#2 init_buckets::i#1 ]
|
||||
Statement [132] init_buckets::dist#6 = init_buckets::screen#0 [ BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#6 ] ( main:13::init_buckets:25 [ SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#6 ] { } ) always clobbers reg byte a
|
||||
@ -4653,16 +4656,16 @@ Statement [101] init_angle_screen::screen_topline#1 = init_angle_screen::screen_
|
||||
Statement [102] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] { } ) always clobbers reg byte a
|
||||
Statement [106] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [107] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [109] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [109] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [111] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [112] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [114] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [115] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [116] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [116] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [118] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [119] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [121] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [123] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [119] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [121] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [123] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [129] ((byte*)BUCKET_SIZES#0)[init_buckets::i#2] = 0 [ BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::i#2 ] ( main:13::init_buckets:25 [ SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::i#2 ] { } ) always clobbers reg byte a
|
||||
Statement [132] init_buckets::dist#6 = init_buckets::screen#0 [ BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#6 ] ( main:13::init_buckets:25 [ SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#6 ] { } ) always clobbers reg byte a
|
||||
Statement [134] ((byte*)BUCKET_SIZES#0)[*init_buckets::dist#4] = ++ ((byte*)BUCKET_SIZES#0)[*init_buckets::dist#4] [ BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#4 init_buckets::i1#2 ] ( main:13::init_buckets:25 [ SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#4 init_buckets::i1#2 ] { } ) always clobbers reg byte a reg byte y
|
||||
@ -4787,16 +4790,16 @@ Statement [101] init_angle_screen::screen_topline#1 = init_angle_screen::screen_
|
||||
Statement [102] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] { } ) always clobbers reg byte a
|
||||
Statement [106] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [107] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [109] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [109] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [111] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [112] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [114] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [115] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [116] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [116] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [118] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [119] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [121] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [123] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [119] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [121] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [123] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( main:13::init_angle_screen:23 [ SCREEN_DIST#0 SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [129] ((byte*)BUCKET_SIZES#0)[init_buckets::i#2] = 0 [ BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::i#2 ] ( main:13::init_buckets:25 [ SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::i#2 ] { } ) always clobbers reg byte a
|
||||
Statement [132] init_buckets::dist#6 = init_buckets::screen#0 [ BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#6 ] ( main:13::init_buckets:25 [ SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#6 ] { } ) always clobbers reg byte a
|
||||
Statement [134] ((byte*)BUCKET_SIZES#0)[*init_buckets::dist#4] = ++ ((byte*)BUCKET_SIZES#0)[*init_buckets::dist#4] [ BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#4 init_buckets::i1#2 ] ( main:13::init_buckets:25 [ SCREEN_ANGLE#0 BUCKET_SIZES#0 BUCKETS#0 BUCKET_IDX#0 heap_head#0 init_buckets::screen#0 init_buckets::dist#4 init_buckets::i1#2 ] { } ) always clobbers reg byte a reg byte y
|
||||
@ -4939,17 +4942,17 @@ Potential registers zp[1]:106 [ init_dist_screen::d#0 ] : zp[1]:106 , reg byte a
|
||||
Potential registers zp[1]:107 [ init_angle_screen::$3 ] : zp[1]:107 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:108 [ init_angle_screen::$4 ] : zp[1]:108 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:109 [ init_angle_screen::xw#0 ] : zp[2]:109 ,
|
||||
Potential registers zp[1]:111 [ init_angle_screen::$5 ] : zp[1]:111 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:111 [ init_angle_screen::$6 ] : zp[1]:111 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:112 [ init_angle_screen::yw#0 ] : zp[2]:112 ,
|
||||
Potential registers zp[2]:114 [ atan2_16::x#0 ] : zp[2]:114 ,
|
||||
Potential registers zp[2]:116 [ atan2_16::y#0 ] : zp[2]:116 ,
|
||||
Potential registers zp[2]:118 [ atan2_16::return#2 ] : zp[2]:118 ,
|
||||
Potential registers zp[2]:120 [ init_angle_screen::angle_w#0 ] : zp[2]:120 ,
|
||||
Potential registers zp[2]:122 [ init_angle_screen::$7 ] : zp[2]:122 ,
|
||||
Potential registers zp[2]:122 [ init_angle_screen::$9 ] : zp[2]:122 ,
|
||||
Potential registers zp[1]:124 [ init_angle_screen::ang_w#0 ] : zp[1]:124 , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:125 [ init_angle_screen::$9 ] : zp[1]:125 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:126 [ init_angle_screen::$10 ] : zp[1]:126 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:127 [ init_angle_screen::$11 ] : zp[1]:127 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:125 [ init_angle_screen::$11 ] : zp[1]:125 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:126 [ init_angle_screen::$12 ] : zp[1]:126 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:127 [ init_angle_screen::$13 ] : zp[1]:127 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:128 [ init_buckets::$15 ] : zp[2]:128 ,
|
||||
Potential registers zp[2]:130 [ init_buckets::$4 ] : zp[2]:130 ,
|
||||
Potential registers zp[2]:132 [ init_buckets::$11 ] : zp[2]:132 ,
|
||||
@ -4984,7 +4987,7 @@ Uplift Scope [bsearch16u] 7,555,555,563.11: zp[1]:63 [ bsearch16u::num#5 bsearch
|
||||
Uplift Scope [atan2_16] 2,866,666,670.58: zp[1]:56 [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ] 2,060,000,008: zp[2]:57 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] 1,733,333,338.67: zp[2]:59 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ] 752,480,960.9: zp[2]:52 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ] 269,093,340.68: zp[2]:47 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] 227,373,342.67: zp[2]:49 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] 200,000,002: zp[1]:166 [ atan2_16::$23 ] 200,000,002: zp[1]:167 [ atan2_16::$22 ] 170,833,335.04: zp[1]:51 [ atan2_16::i#2 atan2_16::i#1 ] 820,008.5: zp[2]:54 [ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] 20,002: zp[2]:118 [ atan2_16::return#2 ] 10,789.61: zp[2]:114 [ atan2_16::x#0 ] 10,250.12: zp[2]:116 [ atan2_16::y#0 ]
|
||||
Uplift Scope [sqrt] 200,002: zp[2]:159 [ sqrt::found#0 ] 200,002: zp[2]:161 [ sqrt::$2 ] 110,002: zp[2]:103 [ sqrt::val#0 ] 100,001: zp[2]:163 [ sqrt::$1 ] 36,667.33: zp[1]:165 [ sqrt::return#0 ] 20,002: zp[1]:105 [ sqrt::return#2 ]
|
||||
Uplift Scope [sqr] 200,002: zp[1]:152 [ sqr::$0 ] 133,007: zp[1]:46 [ sqr::val#2 sqr::val#1 sqr::val#0 ] 27,750.75: zp[2]:153 [ sqr::return#0 ] 20,002: zp[2]:97 [ sqr::return#3 ] 2,002: zp[2]:92 [ sqr::return#2 ]
|
||||
Uplift Scope [init_angle_screen] 21,820.36: zp[1]:28 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] 20,002: zp[1]:107 [ init_angle_screen::$3 ] 20,002: zp[1]:108 [ init_angle_screen::$4 ] 20,002: zp[1]:111 [ init_angle_screen::$5 ] 20,002: zp[2]:120 [ init_angle_screen::angle_w#0 ] 20,002: zp[2]:122 [ init_angle_screen::$7 ] 20,002: zp[1]:125 [ init_angle_screen::$9 ] 20,002: zp[1]:126 [ init_angle_screen::$10 ] 20,002: zp[1]:127 [ init_angle_screen::$11 ] 12,858.43: zp[1]:27 [ init_angle_screen::x#2 init_angle_screen::x#1 ] 8,334.17: zp[1]:124 [ init_angle_screen::ang_w#0 ] 5,000.5: zp[2]:112 [ init_angle_screen::yw#0 ] 3,333.67: zp[2]:109 [ init_angle_screen::xw#0 ] 1,963.15: zp[1]:22 [ init_angle_screen::y#5 init_angle_screen::y#1 ] 1,703.03: zp[2]:25 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] 1,623.54: zp[2]:23 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] 112: zp[2]:76 [ init_angle_screen::screen#0 ]
|
||||
Uplift Scope [init_angle_screen] 21,820.36: zp[1]:28 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] 20,002: zp[1]:107 [ init_angle_screen::$3 ] 20,002: zp[1]:108 [ init_angle_screen::$4 ] 20,002: zp[1]:111 [ init_angle_screen::$6 ] 20,002: zp[2]:120 [ init_angle_screen::angle_w#0 ] 20,002: zp[2]:122 [ init_angle_screen::$9 ] 20,002: zp[1]:125 [ init_angle_screen::$11 ] 20,002: zp[1]:126 [ init_angle_screen::$12 ] 20,002: zp[1]:127 [ init_angle_screen::$13 ] 12,858.43: zp[1]:27 [ init_angle_screen::x#2 init_angle_screen::x#1 ] 8,334.17: zp[1]:124 [ init_angle_screen::ang_w#0 ] 5,000.5: zp[2]:112 [ init_angle_screen::yw#0 ] 3,333.67: zp[2]:109 [ init_angle_screen::xw#0 ] 1,963.15: zp[1]:22 [ init_angle_screen::y#5 init_angle_screen::y#1 ] 1,703.03: zp[2]:25 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] 1,623.54: zp[2]:23 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] 112: zp[2]:76 [ init_angle_screen::screen#0 ]
|
||||
Uplift Scope [init_dist_screen] 70,007: zp[1]:21 [ init_dist_screen::xd#0 init_dist_screen::$16 init_dist_screen::$14 ] 21,906.95: zp[1]:20 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ] 20,002: zp[1]:96 [ init_dist_screen::x2#0 ] 20,002: zp[2]:99 [ init_dist_screen::xds#0 ] 20,002: zp[2]:101 [ init_dist_screen::ds#0 ] 13,001.3: zp[1]:19 [ init_dist_screen::x#2 init_dist_screen::x#1 ] 12,501.25: zp[1]:106 [ init_dist_screen::d#0 ] 7,007: zp[1]:18 [ init_dist_screen::yd#0 init_dist_screen::$7 init_dist_screen::$5 ] 2,002: zp[1]:91 [ init_dist_screen::y2#0 ] 1,589.82: zp[1]:13 [ init_dist_screen::y#10 init_dist_screen::y#1 ] 1,539.18: zp[2]:16 [ init_dist_screen::screen_bottomline#11 init_dist_screen::screen_bottomline#0 init_dist_screen::screen_bottomline#1 ] 1,244.53: zp[2]:14 [ init_dist_screen::screen_topline#11 init_dist_screen::screen#0 init_dist_screen::screen_topline#1 ] 478.35: zp[2]:94 [ init_dist_screen::yds#0 ]
|
||||
Uplift Scope [init_squares] 25,716.86: zp[1]:41 [ init_squares::i#2 init_squares::i#1 ] 20,002: zp[1]:150 [ init_squares::$3 ] 20,002: zp[1]:151 [ init_squares::$4 ] 16,337.07: zp[2]:44 [ init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ] 15,001.5: zp[2]:42 [ init_squares::sqr#2 init_squares::sqr#1 ]
|
||||
Uplift Scope [init_buckets] 3,003: zp[1]:29 [ init_buckets::i#2 init_buckets::i#1 ] 3,003: zp[1]:36 [ init_buckets::i3#2 init_buckets::i3#1 ] 2,921.83: zp[2]:30 [ init_buckets::dist#4 init_buckets::dist#6 init_buckets::dist#1 ] 2,168.83: zp[2]:32 [ init_buckets::i1#2 init_buckets::i1#1 ] 2,002: zp[2]:34 [ init_buckets::i2#2 init_buckets::i2#1 ] 2,002: zp[2]:128 [ init_buckets::$15 ] 2,002: zp[2]:132 [ init_buckets::$11 ] 2,002: zp[2]:134 [ init_buckets::$16 ] 2,002: zp[2]:137 [ init_buckets::$14 ] 2,002: zp[2]:139 [ init_buckets::$12 ] 2,002: zp[2]:141 [ init_buckets::$17 ] 2,002: zp[1]:147 [ init_buckets::$13 ] 1,683.5: zp[2]:39 [ init_buckets::i4#2 init_buckets::i4#1 ] 1,279.83: zp[2]:37 [ init_buckets::dist#5 init_buckets::dist#8 init_buckets::dist#3 ] 1,001: zp[2]:145 [ init_buckets::$7 ] 667.33: zp[2]:143 [ init_buckets::bucket#0 ] 500.5: zp[1]:136 [ init_buckets::distance#0 ] 333.67: zp[2]:130 [ init_buckets::$4 ] 30.35: zp[2]:78 [ init_buckets::screen#0 ]
|
||||
@ -5002,7 +5005,7 @@ Uplifting [atan2_16] best 1229981 combination reg byte y [ atan2_16::shift#2 ata
|
||||
Limited combination testing to 100 combinations of 144 possible.
|
||||
Uplifting [sqrt] best 1229078 combination zp[2]:159 [ sqrt::found#0 ] zp[2]:161 [ sqrt::$2 ] zp[2]:103 [ sqrt::val#0 ] zp[2]:163 [ sqrt::$1 ] reg byte a [ sqrt::return#0 ] reg byte a [ sqrt::return#2 ]
|
||||
Uplifting [sqr] best 1228741 combination reg byte a [ sqr::$0 ] reg byte a [ sqr::val#2 sqr::val#1 sqr::val#0 ] zp[2]:153 [ sqr::return#0 ] zp[2]:97 [ sqr::return#3 ] zp[2]:92 [ sqr::return#2 ]
|
||||
Uplifting [init_angle_screen] best 1227141 combination zp[1]:28 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] reg byte a [ init_angle_screen::$3 ] reg byte a [ init_angle_screen::$4 ] reg byte a [ init_angle_screen::$5 ] zp[2]:120 [ init_angle_screen::angle_w#0 ] zp[2]:122 [ init_angle_screen::$7 ] zp[1]:125 [ init_angle_screen::$9 ] zp[1]:126 [ init_angle_screen::$10 ] zp[1]:127 [ init_angle_screen::$11 ] zp[1]:27 [ init_angle_screen::x#2 init_angle_screen::x#1 ] zp[1]:124 [ init_angle_screen::ang_w#0 ] zp[2]:112 [ init_angle_screen::yw#0 ] zp[2]:109 [ init_angle_screen::xw#0 ] zp[1]:22 [ init_angle_screen::y#5 init_angle_screen::y#1 ] zp[2]:25 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] zp[2]:23 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] zp[2]:76 [ init_angle_screen::screen#0 ]
|
||||
Uplifting [init_angle_screen] best 1227141 combination zp[1]:28 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] reg byte a [ init_angle_screen::$3 ] reg byte a [ init_angle_screen::$4 ] reg byte a [ init_angle_screen::$6 ] zp[2]:120 [ init_angle_screen::angle_w#0 ] zp[2]:122 [ init_angle_screen::$9 ] zp[1]:125 [ init_angle_screen::$11 ] zp[1]:126 [ init_angle_screen::$12 ] zp[1]:127 [ init_angle_screen::$13 ] zp[1]:27 [ init_angle_screen::x#2 init_angle_screen::x#1 ] zp[1]:124 [ init_angle_screen::ang_w#0 ] zp[2]:112 [ init_angle_screen::yw#0 ] zp[2]:109 [ init_angle_screen::xw#0 ] zp[1]:22 [ init_angle_screen::y#5 init_angle_screen::y#1 ] zp[2]:25 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] zp[2]:23 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] zp[2]:76 [ init_angle_screen::screen#0 ]
|
||||
Limited combination testing to 100 combinations of 331776 possible.
|
||||
Uplifting [init_dist_screen] best 1223941 combination reg byte a [ init_dist_screen::xd#0 init_dist_screen::$16 init_dist_screen::$14 ] zp[1]:20 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ] reg byte a [ init_dist_screen::x2#0 ] zp[2]:99 [ init_dist_screen::xds#0 ] zp[2]:101 [ init_dist_screen::ds#0 ] zp[1]:19 [ init_dist_screen::x#2 init_dist_screen::x#1 ] reg byte a [ init_dist_screen::d#0 ] zp[1]:18 [ init_dist_screen::yd#0 init_dist_screen::$7 init_dist_screen::$5 ] zp[1]:91 [ init_dist_screen::y2#0 ] zp[1]:13 [ init_dist_screen::y#10 init_dist_screen::y#1 ] zp[2]:16 [ init_dist_screen::screen_bottomline#11 init_dist_screen::screen_bottomline#0 init_dist_screen::screen_bottomline#1 ] zp[2]:14 [ init_dist_screen::screen_topline#11 init_dist_screen::screen#0 init_dist_screen::screen_topline#1 ] zp[2]:94 [ init_dist_screen::yds#0 ]
|
||||
Limited combination testing to 100 combinations of 6144 possible.
|
||||
@ -5021,12 +5024,12 @@ Attempting to uplift remaining variables inzp[1]:20 [ init_dist_screen::xb#2 ini
|
||||
Uplifting [init_dist_screen] best 1222021 combination zp[1]:20 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:28 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Uplifting [init_angle_screen] best 1222021 combination zp[1]:28 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:125 [ init_angle_screen::$9 ]
|
||||
Uplifting [init_angle_screen] best 1221421 combination reg byte a [ init_angle_screen::$9 ]
|
||||
Attempting to uplift remaining variables inzp[1]:126 [ init_angle_screen::$10 ]
|
||||
Uplifting [init_angle_screen] best 1221021 combination reg byte a [ init_angle_screen::$10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:127 [ init_angle_screen::$11 ]
|
||||
Uplifting [init_angle_screen] best 1220421 combination reg byte a [ init_angle_screen::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:125 [ init_angle_screen::$11 ]
|
||||
Uplifting [init_angle_screen] best 1221421 combination reg byte a [ init_angle_screen::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:126 [ init_angle_screen::$12 ]
|
||||
Uplifting [init_angle_screen] best 1221021 combination reg byte a [ init_angle_screen::$12 ]
|
||||
Attempting to uplift remaining variables inzp[1]:127 [ init_angle_screen::$13 ]
|
||||
Uplifting [init_angle_screen] best 1220421 combination reg byte a [ init_angle_screen::$13 ]
|
||||
Attempting to uplift remaining variables inzp[1]:19 [ init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
Uplifting [init_dist_screen] best 1220421 combination zp[1]:19 [ init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:27 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
@ -5073,7 +5076,7 @@ Coalescing zero page register [ zp[2]:52 [ atan2_16::angle#6 atan2_16::angle#12
|
||||
Coalescing zero page register [ zp[2]:61 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 ] ] with [ zp[2]:159 [ sqrt::found#0 sqrt::$2 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:97 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 ] ] with [ zp[2]:101 [ init_dist_screen::ds#0 sqrt::val#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:137 [ init_buckets::$14 init_buckets::$12 ] ] with [ zp[2]:141 [ init_buckets::$17 init_buckets::bucket#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:52 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 ] ] with [ zp[2]:122 [ init_angle_screen::$7 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:52 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 ] ] with [ zp[2]:122 [ init_angle_screen::$9 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:61 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 ] ] with [ zp[2]:163 [ sqrt::$1 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:97 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 ] ] with [ zp[2]:155 [ bsearch16u::key#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:8 [ main::min_offset#2 main::min_offset#8 main::fill1#0 ] ] with [ zp[2]:2 [ heap_head#19 heap_head#0 ] ]
|
||||
@ -5087,7 +5090,7 @@ Coalescing zero page register [ zp[2]:42 [ init_squares::sqr#2 init_squares::sqr
|
||||
Coalescing zero page register [ zp[2]:44 [ init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ] ] with [ zp[2]:32 [ init_buckets::i1#2 init_buckets::i1#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:47 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] ] with [ zp[2]:34 [ init_buckets::i2#2 init_buckets::i2#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:49 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] ] with [ zp[2]:37 [ init_buckets::dist#5 init_buckets::dist#8 init_buckets::dist#3 ] ]
|
||||
Coalescing zero page register [ zp[2]:52 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ] ] with [ zp[2]:39 [ init_buckets::i4#2 init_buckets::i4#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:52 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ] ] with [ zp[2]:39 [ init_buckets::i4#2 init_buckets::i4#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:61 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 ] ] with [ zp[2]:57 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] ]
|
||||
Coalescing zero page register [ zp[2]:81 [ main::bucket#0 ] ] with [ zp[2]:59 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ] ]
|
||||
Coalescing zero page register [ zp[2]:87 [ main::fill#0 ] ] with [ zp[2]:64 [ SCREEN_DIST#0 init_buckets::screen#0 ] ]
|
||||
@ -5110,7 +5113,7 @@ Allocated (was zp[1]:27) zp[1]:10 [ init_angle_screen::x#2 init_angle_screen::x#
|
||||
Allocated (was zp[1]:28) zp[1]:11 [ init_angle_screen::xb#2 init_angle_screen::xb#1 init_dist_screen::xb#2 init_dist_screen::xb#1 ]
|
||||
Allocated (was zp[2]:47) zp[2]:12 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 init_buckets::i2#2 init_buckets::i2#1 ]
|
||||
Allocated (was zp[2]:49) zp[2]:14 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_buckets::dist#5 init_buckets::dist#8 init_buckets::dist#3 ]
|
||||
Allocated (was zp[2]:52) zp[2]:16 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 init_buckets::i4#2 init_buckets::i4#1 ]
|
||||
Allocated (was zp[2]:52) zp[2]:16 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 init_buckets::i4#2 init_buckets::i4#1 ]
|
||||
Allocated (was zp[2]:61) zp[2]:18 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 init_squares::sqr#2 init_squares::sqr#1 init_buckets::dist#4 init_buckets::dist#6 init_buckets::dist#1 ]
|
||||
Allocated (was zp[2]:66) zp[2]:20 [ SCREEN_ANGLE#0 ]
|
||||
Allocated (was zp[2]:68) zp[2]:22 [ BUCKET_SIZES#0 ]
|
||||
@ -5778,7 +5781,7 @@ init_dist_screen: {
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp(8) screen)
|
||||
init_angle_screen: {
|
||||
.label __7 = $10
|
||||
.label __9 = $10
|
||||
.label screen = 8
|
||||
.label screen_bottomline = 8
|
||||
.label xw = $21
|
||||
@ -5876,10 +5879,10 @@ init_angle_screen: {
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// [109] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
// [109] init_angle_screen::$6 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
lda.z y
|
||||
asl
|
||||
// [110] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
// [110] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
ldy #0
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
@ -5892,41 +5895,41 @@ init_angle_screen: {
|
||||
// init_angle_screen::@5
|
||||
__b5:
|
||||
// [115] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
// [116] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [116] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// [117] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __7+1
|
||||
// [117] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// [118] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
||||
lda.z ang_w
|
||||
ldy.z xb
|
||||
sta (screen_bottomline),y
|
||||
// [119] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
// [119] init_angle_screen::$11 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
lda.z ang_w
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
// [120] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [120] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z xb
|
||||
sta (screen_topline),y
|
||||
// [121] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
// [121] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z ang_w
|
||||
// [122] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [122] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_topline),y
|
||||
// [123] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
// [123] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
lda #$80
|
||||
sec
|
||||
sbc.z ang_w
|
||||
// [124] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [124] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_bottomline),y
|
||||
// [125] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
||||
@ -7233,13 +7236,13 @@ byte* heap_head
|
||||
byte* heap_head#0 heap_head zp[2]:3 129.1505376344086
|
||||
byte* heap_head#19 heap_head zp[2]:3 12011.0
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$11 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$12 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$13 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$3 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$4 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$5 reg byte a 20002.0
|
||||
word~ init_angle_screen::$7 zp[2]:16 20002.0
|
||||
byte~ init_angle_screen::$9 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$6 reg byte a 20002.0
|
||||
word~ init_angle_screen::$9 zp[2]:16 20002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 ang_w zp[1]:37 8334.166666666666
|
||||
word init_angle_screen::angle_w
|
||||
@ -7434,7 +7437,7 @@ reg byte a [ sqr::val#2 sqr::val#1 sqr::val#0 ]
|
||||
zp[2]:12 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 init_buckets::i2#2 init_buckets::i2#1 ]
|
||||
zp[2]:14 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_buckets::dist#5 init_buckets::dist#8 init_buckets::dist#3 ]
|
||||
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
||||
zp[2]:16 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 init_buckets::i4#2 init_buckets::i4#1 ]
|
||||
zp[2]:16 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 init_buckets::i4#2 init_buckets::i4#1 ]
|
||||
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
||||
zp[2]:18 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 init_squares::sqr#2 init_squares::sqr#1 init_buckets::dist#4 init_buckets::dist#6 init_buckets::dist#1 ]
|
||||
reg byte x [ bsearch16u::num#5 bsearch16u::num#1 bsearch16u::num#3 bsearch16u::num#0 ]
|
||||
@ -7454,11 +7457,11 @@ reg byte a [ init_dist_screen::d#0 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
reg byte a [ init_angle_screen::$4 ]
|
||||
zp[2]:33 [ init_angle_screen::xw#0 atan2_16::x#0 sqr::return#2 init_dist_screen::yds#0 ]
|
||||
reg byte a [ init_angle_screen::$5 ]
|
||||
reg byte a [ init_angle_screen::$6 ]
|
||||
zp[2]:35 [ init_angle_screen::yw#0 atan2_16::y#0 sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 ]
|
||||
reg byte a [ init_angle_screen::$9 ]
|
||||
reg byte a [ init_angle_screen::$10 ]
|
||||
reg byte a [ init_angle_screen::$11 ]
|
||||
reg byte a [ init_angle_screen::$12 ]
|
||||
reg byte a [ init_angle_screen::$13 ]
|
||||
zp[1]:37 [ init_buckets::distance#0 init_angle_screen::ang_w#0 ]
|
||||
zp[2]:38 [ init_buckets::$7 init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 init_dist_screen::screen_topline#11 init_dist_screen::screen#0 init_dist_screen::screen_topline#1 ]
|
||||
reg byte a [ init_buckets::$13 ]
|
||||
@ -8100,7 +8103,7 @@ init_dist_screen: {
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp(8) screen)
|
||||
init_angle_screen: {
|
||||
.label __7 = $10
|
||||
.label __9 = $10
|
||||
.label screen = 8
|
||||
.label screen_bottomline = 8
|
||||
.label xw = $21
|
||||
@ -8192,17 +8195,17 @@ init_angle_screen: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc #$27
|
||||
// signed word xw = (signed word)(word){ 39-x*2, 0 }
|
||||
// MAKEWORD( 39-x*2, 0 )
|
||||
// [108] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// y*2
|
||||
// [109] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
// [109] init_angle_screen::$6 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
lda.z y
|
||||
asl
|
||||
// signed word yw = (signed word)(word){ y*2, 0 }
|
||||
// [110] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
// MAKEWORD( y*2, 0 )
|
||||
// [110] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
// atan2_16(xw, yw)
|
||||
@ -8215,46 +8218,46 @@ init_angle_screen: {
|
||||
// word angle_w = atan2_16(xw, yw)
|
||||
// [115] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
// angle_w+0x0080
|
||||
// [116] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [116] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
// [117] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __7+1
|
||||
// [117] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// screen_bottomline[xb] = ang_w
|
||||
// [118] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
||||
ldy.z xb
|
||||
sta (screen_bottomline),y
|
||||
// -ang_w
|
||||
// [119] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
// [119] init_angle_screen::$11 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
// screen_topline[xb] = -ang_w
|
||||
// [120] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [120] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
sta (screen_topline),y
|
||||
// 0x80+ang_w
|
||||
// [121] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
// [121] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z ang_w
|
||||
// screen_topline[x] = 0x80+ang_w
|
||||
// [122] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [122] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_topline),y
|
||||
// 0x80-ang_w
|
||||
// [123] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
// [123] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
lda #$80
|
||||
sec
|
||||
sbc.z ang_w
|
||||
// screen_bottomline[x] = 0x80-ang_w
|
||||
// [124] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [124] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
sta (screen_bottomline),y
|
||||
// for( byte x=0,xb=39; x<=19; x++, xb--)
|
||||
// [125] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
||||
|
@ -115,13 +115,13 @@ byte* heap_head
|
||||
byte* heap_head#0 heap_head zp[2]:3 129.1505376344086
|
||||
byte* heap_head#19 heap_head zp[2]:3 12011.0
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$11 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$12 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$13 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$3 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$4 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$5 reg byte a 20002.0
|
||||
word~ init_angle_screen::$7 zp[2]:16 20002.0
|
||||
byte~ init_angle_screen::$9 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$6 reg byte a 20002.0
|
||||
word~ init_angle_screen::$9 zp[2]:16 20002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 ang_w zp[1]:37 8334.166666666666
|
||||
word init_angle_screen::angle_w
|
||||
@ -316,7 +316,7 @@ reg byte a [ sqr::val#2 sqr::val#1 sqr::val#0 ]
|
||||
zp[2]:12 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 init_buckets::i2#2 init_buckets::i2#1 ]
|
||||
zp[2]:14 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_buckets::dist#5 init_buckets::dist#8 init_buckets::dist#3 ]
|
||||
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
||||
zp[2]:16 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 init_buckets::i4#2 init_buckets::i4#1 ]
|
||||
zp[2]:16 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 init_buckets::i4#2 init_buckets::i4#1 ]
|
||||
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
||||
zp[2]:18 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 init_squares::sqr#2 init_squares::sqr#1 init_buckets::dist#4 init_buckets::dist#6 init_buckets::dist#1 ]
|
||||
reg byte x [ bsearch16u::num#5 bsearch16u::num#1 bsearch16u::num#3 bsearch16u::num#0 ]
|
||||
@ -336,11 +336,11 @@ reg byte a [ init_dist_screen::d#0 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
reg byte a [ init_angle_screen::$4 ]
|
||||
zp[2]:33 [ init_angle_screen::xw#0 atan2_16::x#0 sqr::return#2 init_dist_screen::yds#0 ]
|
||||
reg byte a [ init_angle_screen::$5 ]
|
||||
reg byte a [ init_angle_screen::$6 ]
|
||||
zp[2]:35 [ init_angle_screen::yw#0 atan2_16::y#0 sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 ]
|
||||
reg byte a [ init_angle_screen::$9 ]
|
||||
reg byte a [ init_angle_screen::$10 ]
|
||||
reg byte a [ init_angle_screen::$11 ]
|
||||
reg byte a [ init_angle_screen::$12 ]
|
||||
reg byte a [ init_angle_screen::$13 ]
|
||||
zp[1]:37 [ init_buckets::distance#0 init_angle_screen::ang_w#0 ]
|
||||
zp[2]:38 [ init_buckets::$7 init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 init_dist_screen::screen_topline#11 init_dist_screen::screen#0 init_dist_screen::screen_topline#1 ]
|
||||
reg byte a [ init_buckets::$13 ]
|
||||
|
@ -129,7 +129,7 @@ main: {
|
||||
ldy #0
|
||||
cmp (fill),y
|
||||
beq __b10
|
||||
// word dist_angle = { *dist, *angle }
|
||||
// MAKEWORD( *dist, *angle )
|
||||
lda (angle),y
|
||||
sta.z dist_angle
|
||||
lda (dist),y
|
||||
@ -338,7 +338,7 @@ init_dist_screen: {
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp($11) screen)
|
||||
init_angle_screen: {
|
||||
.label __7 = $19
|
||||
.label __9 = $19
|
||||
.label screen = $11
|
||||
.label screen_bottomline = $11
|
||||
.label xw = $24
|
||||
@ -404,14 +404,14 @@ init_angle_screen: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc #$27
|
||||
// signed word xw = (signed word)(word){ 39-x*2, 0 }
|
||||
// MAKEWORD( 39-x*2, 0 )
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// y*2
|
||||
lda.z y
|
||||
asl
|
||||
// signed word yw = (signed word)(word){ y*2, 0 }
|
||||
// MAKEWORD( y*2, 0 )
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
// atan2_16(xw, yw)
|
||||
@ -420,13 +420,13 @@ init_angle_screen: {
|
||||
// angle_w+0x0080
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
lda.z __7+1
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// screen_bottomline[xb] = ang_w
|
||||
ldy.z xb
|
||||
|
@ -193,8 +193,8 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[85] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
||||
[86] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
[87] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
||||
[88] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
||||
[89] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
||||
[88] init_angle_screen::$6 = init_angle_screen::y#5 << 1
|
||||
[89] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0
|
||||
[90] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
||||
[91] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
||||
[92] call atan2_16
|
||||
@ -202,15 +202,15 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
to:init_angle_screen::@5
|
||||
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[94] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
[95] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
[96] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7
|
||||
[95] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
[96] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9
|
||||
[97] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
[98] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
[99] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
[100] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
[101] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
||||
[102] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
[103] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
||||
[98] init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
[99] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
[100] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
[101] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12
|
||||
[102] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
[103] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13
|
||||
[104] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
||||
[105] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
|
@ -484,8 +484,8 @@ main::@4: scope:[main] from main::@3 main::@5 main::@6
|
||||
main::dist#1 = ++ main::dist#2
|
||||
main::angle#1 = ++ main::angle#2
|
||||
main::fill#1 = ++ main::fill#3
|
||||
main::$6 = main::fill#1 < SCREEN_FILL+$3e8
|
||||
if(main::$6) goto main::@3
|
||||
main::$7 = main::fill#1 < SCREEN_FILL+$3e8
|
||||
if(main::$7) goto main::@3
|
||||
to:main::@7
|
||||
main::@5: scope:[main] from main::@3
|
||||
SCREEN_ANGLE#14 = phi( main::@3/SCREEN_ANGLE#13 )
|
||||
@ -498,10 +498,11 @@ main::@5: scope:[main] from main::@3
|
||||
main::min_dist_angle#2 = phi( main::@3/main::min_dist_angle#4 )
|
||||
main::angle#3 = phi( main::@3/main::angle#4 )
|
||||
main::dist#3 = phi( main::@3/main::dist#4 )
|
||||
main::dist_angle#0 = (word){ *main::dist#3, *main::angle#3 }
|
||||
main::$4 = main::dist_angle#0 < main::min_dist_angle#2
|
||||
main::$5 = ! main::$4
|
||||
if(main::$5) goto main::@4
|
||||
main::$4 = *main::dist#3 w= *main::angle#3
|
||||
main::dist_angle#0 = main::$4
|
||||
main::$5 = main::dist_angle#0 < main::min_dist_angle#2
|
||||
main::$6 = ! main::$5
|
||||
if(main::$6) goto main::@4
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@5
|
||||
SCREEN_ANGLE#15 = phi( main::@5/SCREEN_ANGLE#14 )
|
||||
@ -524,9 +525,9 @@ main::@7: scope:[main] from main::@4
|
||||
NUM_SQUARES#20 = phi( main::@4/NUM_SQUARES#25 )
|
||||
main::min_fill#3 = phi( main::@4/main::min_fill#4 )
|
||||
main::min_dist_angle#3 = phi( main::@4/main::min_dist_angle#5 )
|
||||
main::$7 = main::min_dist_angle#3 == $ffff
|
||||
main::$8 = ! main::$7
|
||||
if(main::$8) goto main::@8
|
||||
main::$8 = main::min_dist_angle#3 == $ffff
|
||||
main::$9 = ! main::$8
|
||||
if(main::$9) goto main::@8
|
||||
to:main::@return
|
||||
main::@8: scope:[main] from main::@7
|
||||
SQUARES#31 = phi( main::@7/SQUARES#25 )
|
||||
@ -580,9 +581,11 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
init_angle_screen::x#3 = phi( init_angle_screen::@2/init_angle_screen::x#2 )
|
||||
init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
||||
init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
init_angle_screen::xw#0 = (signed word)(word){ init_angle_screen::$4, 0 }
|
||||
init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
init_angle_screen::yw#0 = (signed word)(word){ init_angle_screen::$5, 0 }
|
||||
init_angle_screen::$5 = init_angle_screen::$4 w= 0
|
||||
init_angle_screen::xw#0 = (signed word)init_angle_screen::$5
|
||||
init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
init_angle_screen::$7 = init_angle_screen::$6 w= 0
|
||||
init_angle_screen::yw#0 = (signed word)init_angle_screen::$7
|
||||
atan2_16::x#0 = init_angle_screen::xw#0
|
||||
atan2_16::y#0 = init_angle_screen::yw#0
|
||||
call atan2_16
|
||||
@ -595,18 +598,18 @@ init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
init_angle_screen::xb#2 = phi( init_angle_screen::@3/init_angle_screen::xb#3 )
|
||||
init_angle_screen::screen_bottomline#2 = phi( init_angle_screen::@3/init_angle_screen::screen_bottomline#4 )
|
||||
atan2_16::return#4 = phi( init_angle_screen::@3/atan2_16::return#2 )
|
||||
init_angle_screen::$6 = atan2_16::return#4
|
||||
init_angle_screen::angle_w#0 = init_angle_screen::$6
|
||||
init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
init_angle_screen::$8 = byte1 init_angle_screen::$7
|
||||
init_angle_screen::ang_w#0 = init_angle_screen::$8
|
||||
init_angle_screen::$8 = atan2_16::return#4
|
||||
init_angle_screen::angle_w#0 = init_angle_screen::$8
|
||||
init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
init_angle_screen::$10 = byte1 init_angle_screen::$9
|
||||
init_angle_screen::ang_w#0 = init_angle_screen::$10
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::x#4] = init_angle_screen::$10
|
||||
init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::x#4] = init_angle_screen::$11
|
||||
init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_topline#2[init_angle_screen::x#4] = init_angle_screen::$12
|
||||
init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
init_angle_screen::screen_bottomline#2[init_angle_screen::x#4] = init_angle_screen::$13
|
||||
init_angle_screen::x#1 = ++ init_angle_screen::x#4
|
||||
init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
@ -617,8 +620,8 @@ init_angle_screen::@4: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
||||
init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
||||
init_angle_screen::y#1 = init_angle_screen::y#3 + rangenext(0,$c)
|
||||
init_angle_screen::$12 = init_angle_screen::y#1 != rangelast(0,$c)
|
||||
if(init_angle_screen::$12) goto init_angle_screen::@1
|
||||
init_angle_screen::$14 = init_angle_screen::y#1 != rangelast(0,$c)
|
||||
if(init_angle_screen::$14) goto init_angle_screen::@1
|
||||
to:init_angle_screen::@return
|
||||
init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@4
|
||||
return
|
||||
@ -1338,17 +1341,19 @@ byte* heap_head#9
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte*~ init_angle_screen::$0
|
||||
byte*~ init_angle_screen::$1
|
||||
number~ init_angle_screen::$10
|
||||
number~ init_angle_screen::$11
|
||||
bool~ init_angle_screen::$12
|
||||
byte~ init_angle_screen::$10
|
||||
byte~ init_angle_screen::$11
|
||||
number~ init_angle_screen::$12
|
||||
number~ init_angle_screen::$13
|
||||
bool~ init_angle_screen::$14
|
||||
bool~ init_angle_screen::$2
|
||||
number~ init_angle_screen::$3
|
||||
number~ init_angle_screen::$4
|
||||
number~ init_angle_screen::$5
|
||||
word~ init_angle_screen::$6
|
||||
number~ init_angle_screen::$7
|
||||
byte~ init_angle_screen::$8
|
||||
byte~ init_angle_screen::$9
|
||||
word~ init_angle_screen::$5
|
||||
number~ init_angle_screen::$6
|
||||
word~ init_angle_screen::$7
|
||||
word~ init_angle_screen::$8
|
||||
number~ init_angle_screen::$9
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0
|
||||
word init_angle_screen::angle_w
|
||||
@ -1541,11 +1546,12 @@ word* init_squares::squares#3
|
||||
void main()
|
||||
bool~ main::$2
|
||||
bool~ main::$3
|
||||
bool~ main::$4
|
||||
word~ main::$4
|
||||
bool~ main::$5
|
||||
bool~ main::$6
|
||||
bool~ main::$7
|
||||
bool~ main::$8
|
||||
bool~ main::$9
|
||||
byte* main::angle
|
||||
byte* main::angle#0
|
||||
byte* main::angle#1
|
||||
@ -1636,10 +1642,6 @@ word sqrt::val
|
||||
word sqrt::val#0
|
||||
word sqrt::val#1
|
||||
|
||||
Fixing inline constructor with main::$9 = (byte)*main::dist#3 w= (byte)*main::angle#3
|
||||
Fixing inline constructor with init_angle_screen::$13 = (byte)init_angle_screen::$4 w= (byte)0
|
||||
Fixing inline constructor with init_angle_screen::$14 = (byte)init_angle_screen::$5 w= (byte)0
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) 0 in bsearch16u::$5 = bsearch16u::num#3 > 0
|
||||
Adding number conversion cast (unumber) 1 in bsearch16u::$6 = bsearch16u::num#4 >> 1
|
||||
Adding number conversion cast (snumber) 0 in bsearch16u::$9 = bsearch16u::result#0 == 0
|
||||
@ -1670,8 +1672,8 @@ Adding number conversion cast (unumber) 1 in atan2_16::i#1 = atan2_16::i#5 + ran
|
||||
Adding number conversion cast (snumber) 0 in atan2_16::$13 = atan2_16::y#4 < 0
|
||||
Adding number conversion cast (unumber) $8000 in atan2_16::$12 = $8000 - atan2_16::angle#9
|
||||
Adding number conversion cast (unumber) atan2_16::$12 in atan2_16::$12 = (unumber)$8000 - atan2_16::angle#9
|
||||
Adding number conversion cast (unumber) $3e8 in main::$6 = main::fill#1 < SCREEN_FILL+$3e8
|
||||
Adding number conversion cast (unumber) $ffff in main::$7 = main::min_dist_angle#3 == $ffff
|
||||
Adding number conversion cast (unumber) $3e8 in main::$7 = main::fill#1 < SCREEN_FILL+$3e8
|
||||
Adding number conversion cast (unumber) $ffff in main::$8 = main::min_dist_angle#3 == $ffff
|
||||
Adding number conversion cast (unumber) $28*$c in init_angle_screen::$0 = init_angle_screen::screen#1 + $28*$c
|
||||
Adding number conversion cast (unumber) $28*$c in init_angle_screen::$1 = init_angle_screen::screen#1 + $28*$c
|
||||
Adding number conversion cast (unumber) $13 in init_angle_screen::$2 = init_angle_screen::x#2 <= $13
|
||||
@ -1679,14 +1681,16 @@ Adding number conversion cast (unumber) 2 in init_angle_screen::$3 = init_angle_
|
||||
Adding number conversion cast (unumber) init_angle_screen::$3 in init_angle_screen::$3 = init_angle_screen::x#3 * (unumber)2
|
||||
Adding number conversion cast (unumber) $27 in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
Adding number conversion cast (unumber) init_angle_screen::$4 in init_angle_screen::$4 = (unumber)$27 - init_angle_screen::$3
|
||||
Adding number conversion cast (unumber) 2 in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
Adding number conversion cast (unumber) init_angle_screen::$5 in init_angle_screen::$5 = init_angle_screen::y#2 * (unumber)2
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) init_angle_screen::$7 in init_angle_screen::$7 = init_angle_screen::angle_w#0 + (unumber)$80
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$10 in init_angle_screen::$10 = (unumber)$80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$11 in init_angle_screen::$11 = (unumber)$80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) 0 in init_angle_screen::$5 = init_angle_screen::$4 w= 0
|
||||
Adding number conversion cast (unumber) 2 in init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
Adding number conversion cast (unumber) init_angle_screen::$6 in init_angle_screen::$6 = init_angle_screen::y#2 * (unumber)2
|
||||
Adding number conversion cast (unumber) 0 in init_angle_screen::$7 = init_angle_screen::$6 w= 0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
Adding number conversion cast (unumber) init_angle_screen::$9 in init_angle_screen::$9 = init_angle_screen::angle_w#0 + (unumber)$80
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$12 in init_angle_screen::$12 = (unumber)$80 + init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $80 in init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) init_angle_screen::$13 in init_angle_screen::$13 = (unumber)$80 - init_angle_screen::ang_w#0
|
||||
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#3 - $28
|
||||
Adding number conversion cast (unumber) $28 in init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#3 + $28
|
||||
Adding number conversion cast (unumber) $30 in NUM_SQUARES#2 = $30
|
||||
@ -1768,8 +1772,6 @@ Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast $8000
|
||||
Simplifying constant integer cast $3e8
|
||||
Simplifying constant integer cast *main::dist#3
|
||||
Simplifying constant integer cast *main::angle#3
|
||||
Simplifying constant integer cast $ffff
|
||||
Simplifying constant integer cast $13
|
||||
Simplifying constant integer cast 2
|
||||
@ -1827,7 +1829,9 @@ Finalized unsigned number type (word) $ffff
|
||||
Finalized unsigned number type (byte) $13
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) $27
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 2
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) $80
|
||||
Finalized unsigned number type (byte) $80
|
||||
Finalized unsigned number type (byte) $80
|
||||
@ -1855,10 +1859,10 @@ Inferred type updated to byte in init_squares::$4 = init_squares::$3 + 1
|
||||
Inferred type updated to word in atan2_16::$12 = $8000 - atan2_16::angle#9
|
||||
Inferred type updated to byte in init_angle_screen::$3 = init_angle_screen::x#3 * 2
|
||||
Inferred type updated to byte in init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
Inferred type updated to byte in init_angle_screen::$5 = init_angle_screen::y#2 * 2
|
||||
Inferred type updated to word in init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
Inferred type updated to byte in init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$6 = init_angle_screen::y#2 * 2
|
||||
Inferred type updated to word in init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
Inferred type updated to byte in init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
Inferred type updated to byte in init_dist_screen::$2 = init_dist_screen::y#2 * 2
|
||||
Inferred type updated to byte in init_dist_screen::$6 = init_dist_screen::y2#1 - $18
|
||||
Inferred type updated to byte in init_dist_screen::$7 = init_dist_screen::$6
|
||||
@ -1878,8 +1882,8 @@ Inversing boolean not [132] atan2_16::$11 = atan2_16::x#4 >= 0 from [131] atan2_
|
||||
Inversing boolean not [143] atan2_16::$19 = 0 == atan2_16::shift#4 from [142] atan2_16::$24 = 0 != atan2_16::shift#4
|
||||
Inversing boolean not [167] atan2_16::$14 = atan2_16::y#4 >= 0 from [166] atan2_16::$13 = atan2_16::y#4 < 0
|
||||
Inversing boolean not [200] main::$3 = *main::fill#2 == FILL_CHAR from [199] main::$2 = *main::fill#2 != FILL_CHAR
|
||||
Inversing boolean not [212] main::$5 = main::dist_angle#0 >= main::min_dist_angle#2 from [211] main::$4 = main::dist_angle#0 < main::min_dist_angle#2
|
||||
Inversing boolean not [219] main::$8 = main::min_dist_angle#3 != $ffff from [218] main::$7 = main::min_dist_angle#3 == $ffff
|
||||
Inversing boolean not [212] main::$6 = main::dist_angle#0 >= main::min_dist_angle#2 from [211] main::$5 = main::dist_angle#0 < main::min_dist_angle#2
|
||||
Inversing boolean not [219] main::$9 = main::min_dist_angle#3 != $ffff from [218] main::$8 = main::min_dist_angle#3 == $ffff
|
||||
Successful SSA optimization Pass2UnaryNotSimplification
|
||||
Alias malloc::mem#0 = malloc::$0
|
||||
Alias malloc::return#0 = malloc::return#5 malloc::return#1
|
||||
@ -1965,7 +1969,7 @@ Alias heap_head#38 = heap_head#39 heap_head#40
|
||||
Alias SQUARES#39 = SQUARES#40 SQUARES#41
|
||||
Alias SCREEN_DIST#14 = SCREEN_DIST#15 SCREEN_DIST#16
|
||||
Alias SCREEN_ANGLE#13 = SCREEN_ANGLE#14 SCREEN_ANGLE#15
|
||||
Alias main::dist_angle#0 = main::$9 main::dist_angle#1 main::min_dist_angle#1
|
||||
Alias main::dist_angle#0 = main::$4 main::dist_angle#1 main::min_dist_angle#1
|
||||
Alias main::min_dist_angle#3 = main::min_dist_angle#5
|
||||
Alias main::min_fill#2 = main::min_fill#3 main::min_fill#4
|
||||
Alias NUM_SQUARES#20 = NUM_SQUARES#25 NUM_SQUARES#24
|
||||
@ -1984,8 +1988,8 @@ Alias init_angle_screen::screen_bottomline#2 = init_angle_screen::screen_bottoml
|
||||
Alias init_angle_screen::xb#2 = init_angle_screen::xb#3 init_angle_screen::xb#4
|
||||
Alias init_angle_screen::screen_topline#2 = init_angle_screen::screen_topline#4 init_angle_screen::screen_topline#5 init_angle_screen::screen_topline#3
|
||||
Alias atan2_16::return#2 = atan2_16::return#4
|
||||
Alias init_angle_screen::angle_w#0 = init_angle_screen::$6
|
||||
Alias init_angle_screen::ang_w#0 = init_angle_screen::$8
|
||||
Alias init_angle_screen::angle_w#0 = init_angle_screen::$8
|
||||
Alias init_angle_screen::ang_w#0 = init_angle_screen::$10
|
||||
Alias init_dist_screen::screen#1 = init_dist_screen::screen#2 init_dist_screen::screen_topline#0
|
||||
Alias NUM_SQUARES#2 = NUM_SQUARES#43
|
||||
Alias heap_head#19 = heap_head#6
|
||||
@ -2175,11 +2179,11 @@ Simple Condition atan2_16::$20 [94] if(atan2_16::yi#3>=0) goto atan2_16::@18
|
||||
Simple Condition atan2_16::$21 [108] if(atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@10
|
||||
Simple Condition atan2_16::$14 [111] if(atan2_16::y#0>=0) goto atan2_16::@8
|
||||
Simple Condition main::$3 [131] if(*main::fill#2==FILL_CHAR) goto main::@4
|
||||
Simple Condition main::$6 [137] if(main::fill#1<SCREEN_FILL+$3e8) goto main::@3
|
||||
Simple Condition main::$5 [140] if(main::dist_angle#0>=main::min_dist_angle#2) goto main::@4
|
||||
Simple Condition main::$8 [142] if(main::min_dist_angle#3!=$ffff) goto main::@8
|
||||
Simple Condition main::$7 [137] if(main::fill#1<SCREEN_FILL+$3e8) goto main::@3
|
||||
Simple Condition main::$6 [140] if(main::dist_angle#0>=main::min_dist_angle#2) goto main::@4
|
||||
Simple Condition main::$9 [142] if(main::min_dist_angle#3!=$ffff) goto main::@8
|
||||
Simple Condition init_angle_screen::$2 [155] if(init_angle_screen::x#2<=$13) goto init_angle_screen::@3
|
||||
Simple Condition init_angle_screen::$12 [183] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
|
||||
Simple Condition init_angle_screen::$14 [183] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
|
||||
Simple Condition init_dist_screen::$3 [194] if(init_dist_screen::y2#0>=$18) goto init_dist_screen::@2
|
||||
Simple Condition init_dist_screen::$10 [206] if(init_dist_screen::x#2<=$13) goto init_dist_screen::@6
|
||||
Simple Condition init_dist_screen::$12 [209] if(init_dist_screen::x2#0>=$27) goto init_dist_screen::@8
|
||||
@ -2240,8 +2244,6 @@ Simplifying constant integer cast CORDIC_ITERATIONS_16-1+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast $13+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast init_angle_screen::$4
|
||||
Simplifying constant integer cast init_angle_screen::$5
|
||||
Simplifying constant integer cast $d
|
||||
Simplifying constant integer cast $13+(unumber)1
|
||||
Simplifying constant integer cast 1
|
||||
@ -2268,8 +2270,8 @@ Inlining Noop Cast [179] malloc::return#3 = (void*)malloc::mem#0 keeping malloc:
|
||||
Inlining Noop Cast [183] malloc::return#4 = (void*)malloc::mem#0 keeping malloc::mem#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
Inlining Noop Cast [27] SQUARES#0 = (word*)init_squares::$1 keeping SQUARES#0
|
||||
Inlining Noop Cast [114] init_angle_screen::xw#0 = (signed word)init_angle_screen::$13 keeping init_angle_screen::xw#0
|
||||
Inlining Noop Cast [117] init_angle_screen::yw#0 = (signed word)init_angle_screen::$14 keeping init_angle_screen::yw#0
|
||||
Inlining Noop Cast [114] init_angle_screen::xw#0 = (signed word)init_angle_screen::$5 keeping init_angle_screen::xw#0
|
||||
Inlining Noop Cast [117] init_angle_screen::yw#0 = (signed word)init_angle_screen::$7 keeping init_angle_screen::yw#0
|
||||
Inlining Noop Cast [181] SCREEN_DIST#0 = (byte*)__start::__init1_$0 keeping SCREEN_DIST#0
|
||||
Inlining Noop Cast [185] SCREEN_ANGLE#0 = (byte*)__start::__init1_$1 keeping SCREEN_ANGLE#0
|
||||
Successful SSA optimization Pass2NopCastInlining
|
||||
@ -2281,7 +2283,7 @@ Rewriting division to use shift [60] atan2_16::angle#1 = atan2_16::angle#6 / 2
|
||||
Rewriting multiplication to use shift [74] atan2_16::$22 = atan2_16::i#2 * SIZEOF_WORD
|
||||
Rewriting multiplication to use shift [78] atan2_16::$23 = atan2_16::i#2 * SIZEOF_WORD
|
||||
Rewriting multiplication to use shift [111] init_angle_screen::$3 = init_angle_screen::x#2 * 2
|
||||
Rewriting multiplication to use shift [115] init_angle_screen::$5 = init_angle_screen::y#5 * 2
|
||||
Rewriting multiplication to use shift [115] init_angle_screen::$6 = init_angle_screen::y#5 * 2
|
||||
Rewriting multiplication to use shift [142] init_dist_screen::y2#0 = init_dist_screen::y#10 * 2
|
||||
Rewriting multiplication to use shift [153] init_dist_screen::x2#0 = init_dist_screen::x#2 * 2
|
||||
Successful SSA optimization Pass2MultiplyToShiftRewriting
|
||||
@ -2681,8 +2683,8 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
[85] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
||||
[86] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
||||
[87] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
||||
[88] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
||||
[89] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
||||
[88] init_angle_screen::$6 = init_angle_screen::y#5 << 1
|
||||
[89] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0
|
||||
[90] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
||||
[91] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
||||
[92] call atan2_16
|
||||
@ -2690,15 +2692,15 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
||||
to:init_angle_screen::@5
|
||||
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
||||
[94] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
[95] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
||||
[96] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7
|
||||
[95] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80
|
||||
[96] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9
|
||||
[97] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
||||
[98] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
||||
[99] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
||||
[100] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
||||
[101] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
||||
[102] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
||||
[103] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
||||
[98] init_angle_screen::$11 = - init_angle_screen::ang_w#0
|
||||
[99] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11
|
||||
[100] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0
|
||||
[101] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12
|
||||
[102] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0
|
||||
[103] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13
|
||||
[104] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
||||
[105] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
||||
to:init_angle_screen::@2
|
||||
@ -2995,13 +2997,13 @@ byte* heap_head
|
||||
byte* heap_head#0 1100.4
|
||||
byte* heap_head#13 11004.0
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 20002.0
|
||||
byte~ init_angle_screen::$11 20002.0
|
||||
byte~ init_angle_screen::$12 20002.0
|
||||
byte~ init_angle_screen::$13 20002.0
|
||||
byte~ init_angle_screen::$3 20002.0
|
||||
byte~ init_angle_screen::$4 20002.0
|
||||
byte~ init_angle_screen::$5 20002.0
|
||||
word~ init_angle_screen::$7 20002.0
|
||||
byte~ init_angle_screen::$9 20002.0
|
||||
byte~ init_angle_screen::$6 20002.0
|
||||
word~ init_angle_screen::$9 20002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 8334.166666666666
|
||||
word init_angle_screen::angle_w
|
||||
@ -3185,17 +3187,17 @@ Added variable init_dist_screen::d#0 to live range equivalence class [ init_dist
|
||||
Added variable init_angle_screen::$3 to live range equivalence class [ init_angle_screen::$3 ]
|
||||
Added variable init_angle_screen::$4 to live range equivalence class [ init_angle_screen::$4 ]
|
||||
Added variable init_angle_screen::xw#0 to live range equivalence class [ init_angle_screen::xw#0 ]
|
||||
Added variable init_angle_screen::$5 to live range equivalence class [ init_angle_screen::$5 ]
|
||||
Added variable init_angle_screen::$6 to live range equivalence class [ init_angle_screen::$6 ]
|
||||
Added variable init_angle_screen::yw#0 to live range equivalence class [ init_angle_screen::yw#0 ]
|
||||
Added variable atan2_16::x#0 to live range equivalence class [ atan2_16::x#0 ]
|
||||
Added variable atan2_16::y#0 to live range equivalence class [ atan2_16::y#0 ]
|
||||
Added variable atan2_16::return#2 to live range equivalence class [ atan2_16::return#2 ]
|
||||
Added variable init_angle_screen::angle_w#0 to live range equivalence class [ init_angle_screen::angle_w#0 ]
|
||||
Added variable init_angle_screen::$7 to live range equivalence class [ init_angle_screen::$7 ]
|
||||
Added variable init_angle_screen::ang_w#0 to live range equivalence class [ init_angle_screen::ang_w#0 ]
|
||||
Added variable init_angle_screen::$9 to live range equivalence class [ init_angle_screen::$9 ]
|
||||
Added variable init_angle_screen::$10 to live range equivalence class [ init_angle_screen::$10 ]
|
||||
Added variable init_angle_screen::ang_w#0 to live range equivalence class [ init_angle_screen::ang_w#0 ]
|
||||
Added variable init_angle_screen::$11 to live range equivalence class [ init_angle_screen::$11 ]
|
||||
Added variable init_angle_screen::$12 to live range equivalence class [ init_angle_screen::$12 ]
|
||||
Added variable init_angle_screen::$13 to live range equivalence class [ init_angle_screen::$13 ]
|
||||
Added variable SQUARES#0 to live range equivalence class [ SQUARES#0 ]
|
||||
Added variable init_squares::$3 to live range equivalence class [ init_squares::$3 ]
|
||||
Added variable init_squares::$4 to live range equivalence class [ init_squares::$4 ]
|
||||
@ -3265,17 +3267,17 @@ Complete equivalence classes
|
||||
[ init_angle_screen::$3 ]
|
||||
[ init_angle_screen::$4 ]
|
||||
[ init_angle_screen::xw#0 ]
|
||||
[ init_angle_screen::$5 ]
|
||||
[ init_angle_screen::$6 ]
|
||||
[ init_angle_screen::yw#0 ]
|
||||
[ atan2_16::x#0 ]
|
||||
[ atan2_16::y#0 ]
|
||||
[ atan2_16::return#2 ]
|
||||
[ init_angle_screen::angle_w#0 ]
|
||||
[ init_angle_screen::$7 ]
|
||||
[ init_angle_screen::ang_w#0 ]
|
||||
[ init_angle_screen::$9 ]
|
||||
[ init_angle_screen::$10 ]
|
||||
[ init_angle_screen::ang_w#0 ]
|
||||
[ init_angle_screen::$11 ]
|
||||
[ init_angle_screen::$12 ]
|
||||
[ init_angle_screen::$13 ]
|
||||
[ SQUARES#0 ]
|
||||
[ init_squares::$3 ]
|
||||
[ init_squares::$4 ]
|
||||
@ -3344,17 +3346,17 @@ Allocated zp[1]:80 [ init_dist_screen::d#0 ]
|
||||
Allocated zp[1]:81 [ init_angle_screen::$3 ]
|
||||
Allocated zp[1]:82 [ init_angle_screen::$4 ]
|
||||
Allocated zp[2]:83 [ init_angle_screen::xw#0 ]
|
||||
Allocated zp[1]:85 [ init_angle_screen::$5 ]
|
||||
Allocated zp[1]:85 [ init_angle_screen::$6 ]
|
||||
Allocated zp[2]:86 [ init_angle_screen::yw#0 ]
|
||||
Allocated zp[2]:88 [ atan2_16::x#0 ]
|
||||
Allocated zp[2]:90 [ atan2_16::y#0 ]
|
||||
Allocated zp[2]:92 [ atan2_16::return#2 ]
|
||||
Allocated zp[2]:94 [ init_angle_screen::angle_w#0 ]
|
||||
Allocated zp[2]:96 [ init_angle_screen::$7 ]
|
||||
Allocated zp[2]:96 [ init_angle_screen::$9 ]
|
||||
Allocated zp[1]:98 [ init_angle_screen::ang_w#0 ]
|
||||
Allocated zp[1]:99 [ init_angle_screen::$9 ]
|
||||
Allocated zp[1]:100 [ init_angle_screen::$10 ]
|
||||
Allocated zp[1]:101 [ init_angle_screen::$11 ]
|
||||
Allocated zp[1]:99 [ init_angle_screen::$11 ]
|
||||
Allocated zp[1]:100 [ init_angle_screen::$12 ]
|
||||
Allocated zp[1]:101 [ init_angle_screen::$13 ]
|
||||
Allocated zp[2]:102 [ SQUARES#0 ]
|
||||
Allocated zp[1]:104 [ init_squares::$3 ]
|
||||
Allocated zp[1]:105 [ init_squares::$4 ]
|
||||
@ -3416,16 +3418,16 @@ Statement [85] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:32 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:33 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Statement [86] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [88] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [88] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [90] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [91] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [93] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [94] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [95] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [98] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [95] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [98] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp[1]:98 [ init_angle_screen::ang_w#0 ]
|
||||
Statement [100] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [102] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [100] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [102] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [108] SQUARES#0 = (void*)malloc::mem#0 [ SQUARES#0 ] ( main:7::init_dist_screen:14::init_squares:36 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_dist_screen::screen#0 SQUARES#0 ] { } ) always clobbers reg byte a
|
||||
Statement [109] init_squares::squares#0 = (word*)SQUARES#0 [ SQUARES#0 init_squares::squares#0 ] ( main:7::init_dist_screen:14::init_squares:36 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_dist_screen::screen#0 SQUARES#0 init_squares::squares#0 ] { } ) always clobbers reg byte a
|
||||
Statement [113] *init_squares::squares#2 = init_squares::sqr#2 [ SQUARES#0 init_squares::i#2 init_squares::sqr#2 init_squares::squares#2 ] ( main:7::init_dist_screen:14::init_squares:36 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_dist_screen::screen#0 SQUARES#0 init_squares::i#2 init_squares::sqr#2 init_squares::squares#2 ] { } ) always clobbers reg byte a reg byte y
|
||||
@ -3528,16 +3530,16 @@ Statement [80] init_angle_screen::screen_topline#1 = init_angle_screen::screen_t
|
||||
Statement [81] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] { } ) always clobbers reg byte a
|
||||
Statement [85] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [86] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [88] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [88] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [90] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [91] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [93] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [94] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [95] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [95] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [97] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [98] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [100] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [102] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [98] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [100] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [102] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [108] SQUARES#0 = (void*)malloc::mem#0 [ SQUARES#0 ] ( main:7::init_dist_screen:14::init_squares:36 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_dist_screen::screen#0 SQUARES#0 ] { } ) always clobbers reg byte a
|
||||
Statement [109] init_squares::squares#0 = (word*)SQUARES#0 [ SQUARES#0 init_squares::squares#0 ] ( main:7::init_dist_screen:14::init_squares:36 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_dist_screen::screen#0 SQUARES#0 init_squares::squares#0 ] { } ) always clobbers reg byte a
|
||||
Statement [113] *init_squares::squares#2 = init_squares::sqr#2 [ SQUARES#0 init_squares::i#2 init_squares::sqr#2 init_squares::squares#2 ] ( main:7::init_dist_screen:14::init_squares:36 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_dist_screen::screen#0 SQUARES#0 init_squares::i#2 init_squares::sqr#2 init_squares::squares#2 ] { } ) always clobbers reg byte a reg byte y
|
||||
@ -3630,16 +3632,16 @@ Statement [80] init_angle_screen::screen_topline#1 = init_angle_screen::screen_t
|
||||
Statement [81] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28 [ init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#1 init_angle_screen::screen_bottomline#1 ] { } ) always clobbers reg byte a
|
||||
Statement [85] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [86] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [88] init_angle_screen::$5 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$5 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [88] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [90] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [91] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [93] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a
|
||||
Statement [94] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [95] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$7 ] { } ) always clobbers reg byte a
|
||||
Statement [95] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [97] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 ] { } ) always clobbers reg byte a
|
||||
Statement [98] init_angle_screen::$9 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$9 ] { } ) always clobbers reg byte a
|
||||
Statement [100] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$10 ] { } ) always clobbers reg byte a
|
||||
Statement [102] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [98] init_angle_screen::$11 = - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$11 ] { } ) always clobbers reg byte a
|
||||
Statement [100] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::ang_w#0 init_angle_screen::$12 ] { } ) always clobbers reg byte a
|
||||
Statement [102] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] ( main:7::init_angle_screen:16 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$13 ] { } ) always clobbers reg byte a
|
||||
Statement [108] SQUARES#0 = (void*)malloc::mem#0 [ SQUARES#0 ] ( main:7::init_dist_screen:14::init_squares:36 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_dist_screen::screen#0 SQUARES#0 ] { } ) always clobbers reg byte a
|
||||
Statement [109] init_squares::squares#0 = (word*)SQUARES#0 [ SQUARES#0 init_squares::squares#0 ] ( main:7::init_dist_screen:14::init_squares:36 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_dist_screen::screen#0 SQUARES#0 init_squares::squares#0 ] { } ) always clobbers reg byte a
|
||||
Statement [113] *init_squares::squares#2 = init_squares::sqr#2 [ SQUARES#0 init_squares::i#2 init_squares::sqr#2 init_squares::squares#2 ] ( main:7::init_dist_screen:14::init_squares:36 [ SCREEN_DIST#0 SCREEN_ANGLE#0 init_dist_screen::screen#0 SQUARES#0 init_squares::i#2 init_squares::sqr#2 init_squares::squares#2 ] { } ) always clobbers reg byte a reg byte y
|
||||
@ -3742,17 +3744,17 @@ Potential registers zp[1]:80 [ init_dist_screen::d#0 ] : zp[1]:80 , reg byte a ,
|
||||
Potential registers zp[1]:81 [ init_angle_screen::$3 ] : zp[1]:81 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:82 [ init_angle_screen::$4 ] : zp[1]:82 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:83 [ init_angle_screen::xw#0 ] : zp[2]:83 ,
|
||||
Potential registers zp[1]:85 [ init_angle_screen::$5 ] : zp[1]:85 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:85 [ init_angle_screen::$6 ] : zp[1]:85 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:86 [ init_angle_screen::yw#0 ] : zp[2]:86 ,
|
||||
Potential registers zp[2]:88 [ atan2_16::x#0 ] : zp[2]:88 ,
|
||||
Potential registers zp[2]:90 [ atan2_16::y#0 ] : zp[2]:90 ,
|
||||
Potential registers zp[2]:92 [ atan2_16::return#2 ] : zp[2]:92 ,
|
||||
Potential registers zp[2]:94 [ init_angle_screen::angle_w#0 ] : zp[2]:94 ,
|
||||
Potential registers zp[2]:96 [ init_angle_screen::$7 ] : zp[2]:96 ,
|
||||
Potential registers zp[2]:96 [ init_angle_screen::$9 ] : zp[2]:96 ,
|
||||
Potential registers zp[1]:98 [ init_angle_screen::ang_w#0 ] : zp[1]:98 , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:99 [ init_angle_screen::$9 ] : zp[1]:99 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:100 [ init_angle_screen::$10 ] : zp[1]:100 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:101 [ init_angle_screen::$11 ] : zp[1]:101 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:99 [ init_angle_screen::$11 ] : zp[1]:99 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:100 [ init_angle_screen::$12 ] : zp[1]:100 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:101 [ init_angle_screen::$13 ] : zp[1]:101 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[2]:102 [ SQUARES#0 ] : zp[2]:102 ,
|
||||
Potential registers zp[1]:104 [ init_squares::$3 ] : zp[1]:104 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp[1]:105 [ init_squares::$4 ] : zp[1]:105 , reg byte a , reg byte x , reg byte y ,
|
||||
@ -3776,7 +3778,7 @@ Uplift Scope [bsearch16u] 7,555,555,563.11: zp[1]:56 [ bsearch16u::num#5 bsearch
|
||||
Uplift Scope [atan2_16] 2,866,666,670.58: zp[1]:49 [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ] 2,060,000,008: zp[2]:50 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] 1,733,333,338.67: zp[2]:52 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ] 752,480,960.9: zp[2]:45 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 ] 269,093,340.68: zp[2]:40 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] 227,373,342.67: zp[2]:42 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] 200,000,002: zp[1]:120 [ atan2_16::$23 ] 200,000,002: zp[1]:121 [ atan2_16::$22 ] 170,833,335.04: zp[1]:44 [ atan2_16::i#2 atan2_16::i#1 ] 820,008.5: zp[2]:47 [ atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] 20,002: zp[2]:92 [ atan2_16::return#2 ] 10,789.61: zp[2]:88 [ atan2_16::x#0 ] 10,250.12: zp[2]:90 [ atan2_16::y#0 ]
|
||||
Uplift Scope [sqrt] 200,002: zp[2]:113 [ sqrt::found#0 ] 200,002: zp[2]:115 [ sqrt::$2 ] 110,002: zp[2]:77 [ sqrt::val#0 ] 100,001: zp[2]:117 [ sqrt::$1 ] 36,667.33: zp[1]:119 [ sqrt::return#0 ] 20,002: zp[1]:79 [ sqrt::return#2 ]
|
||||
Uplift Scope [sqr] 200,002: zp[1]:106 [ sqr::$0 ] 133,007: zp[1]:39 [ sqr::val#2 sqr::val#1 sqr::val#0 ] 27,750.75: zp[2]:107 [ sqr::return#0 ] 20,002: zp[2]:71 [ sqr::return#3 ] 2,002: zp[2]:66 [ sqr::return#2 ]
|
||||
Uplift Scope [init_angle_screen] 21,820.36: zp[1]:33 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] 20,002: zp[1]:81 [ init_angle_screen::$3 ] 20,002: zp[1]:82 [ init_angle_screen::$4 ] 20,002: zp[1]:85 [ init_angle_screen::$5 ] 20,002: zp[2]:94 [ init_angle_screen::angle_w#0 ] 20,002: zp[2]:96 [ init_angle_screen::$7 ] 20,002: zp[1]:99 [ init_angle_screen::$9 ] 20,002: zp[1]:100 [ init_angle_screen::$10 ] 20,002: zp[1]:101 [ init_angle_screen::$11 ] 12,858.43: zp[1]:32 [ init_angle_screen::x#2 init_angle_screen::x#1 ] 8,334.17: zp[1]:98 [ init_angle_screen::ang_w#0 ] 5,000.5: zp[2]:86 [ init_angle_screen::yw#0 ] 3,333.67: zp[2]:83 [ init_angle_screen::xw#0 ] 1,963.15: zp[1]:27 [ init_angle_screen::y#5 init_angle_screen::y#1 ] 1,703.03: zp[2]:30 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] 1,623.54: zp[2]:28 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] 112: zp[2]:63 [ init_angle_screen::screen#0 ]
|
||||
Uplift Scope [init_angle_screen] 21,820.36: zp[1]:33 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] 20,002: zp[1]:81 [ init_angle_screen::$3 ] 20,002: zp[1]:82 [ init_angle_screen::$4 ] 20,002: zp[1]:85 [ init_angle_screen::$6 ] 20,002: zp[2]:94 [ init_angle_screen::angle_w#0 ] 20,002: zp[2]:96 [ init_angle_screen::$9 ] 20,002: zp[1]:99 [ init_angle_screen::$11 ] 20,002: zp[1]:100 [ init_angle_screen::$12 ] 20,002: zp[1]:101 [ init_angle_screen::$13 ] 12,858.43: zp[1]:32 [ init_angle_screen::x#2 init_angle_screen::x#1 ] 8,334.17: zp[1]:98 [ init_angle_screen::ang_w#0 ] 5,000.5: zp[2]:86 [ init_angle_screen::yw#0 ] 3,333.67: zp[2]:83 [ init_angle_screen::xw#0 ] 1,963.15: zp[1]:27 [ init_angle_screen::y#5 init_angle_screen::y#1 ] 1,703.03: zp[2]:30 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] 1,623.54: zp[2]:28 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] 112: zp[2]:63 [ init_angle_screen::screen#0 ]
|
||||
Uplift Scope [init_dist_screen] 70,007: zp[1]:26 [ init_dist_screen::xd#0 init_dist_screen::$16 init_dist_screen::$14 ] 21,906.95: zp[1]:25 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ] 20,002: zp[1]:70 [ init_dist_screen::x2#0 ] 20,002: zp[2]:73 [ init_dist_screen::xds#0 ] 20,002: zp[2]:75 [ init_dist_screen::ds#0 ] 13,001.3: zp[1]:24 [ init_dist_screen::x#2 init_dist_screen::x#1 ] 12,501.25: zp[1]:80 [ init_dist_screen::d#0 ] 7,007: zp[1]:23 [ init_dist_screen::yd#0 init_dist_screen::$7 init_dist_screen::$5 ] 2,002: zp[1]:65 [ init_dist_screen::y2#0 ] 1,589.82: zp[1]:18 [ init_dist_screen::y#10 init_dist_screen::y#1 ] 1,539.18: zp[2]:21 [ init_dist_screen::screen_bottomline#11 init_dist_screen::screen_bottomline#0 init_dist_screen::screen_bottomline#1 ] 1,244.53: zp[2]:19 [ init_dist_screen::screen_topline#11 init_dist_screen::screen#0 init_dist_screen::screen_topline#1 ] 478.35: zp[2]:68 [ init_dist_screen::yds#0 ]
|
||||
Uplift Scope [init_squares] 25,716.86: zp[1]:34 [ init_squares::i#2 init_squares::i#1 ] 20,002: zp[1]:104 [ init_squares::$3 ] 20,002: zp[1]:105 [ init_squares::$4 ] 16,337.07: zp[2]:37 [ init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ] 15,001.5: zp[2]:35 [ init_squares::sqr#2 init_squares::sqr#1 ]
|
||||
Uplift Scope [main] 5,826: zp[2]:16 [ main::min_dist_angle#3 main::min_dist_angle#7 main::min_dist_angle#8 main::dist_angle#0 ] 3,088.93: zp[2]:14 [ main::min_fill#5 main::min_fill#2 main::min_fill#10 ] 3,003: zp[2]:12 [ main::min_dist_angle#2 main::min_dist_angle#6 ] 1,401.4: zp[2]:6 [ main::fill#2 main::fill#1 ] 1,047.39: zp[2]:10 [ main::angle#2 main::angle#0 main::angle#1 ] 889.4: zp[2]:8 [ main::dist#2 main::dist#0 main::dist#1 ]
|
||||
@ -3790,7 +3792,7 @@ Uplifting [atan2_16] best 1223286 combination reg byte y [ atan2_16::shift#2 ata
|
||||
Limited combination testing to 100 combinations of 144 possible.
|
||||
Uplifting [sqrt] best 1222383 combination zp[2]:113 [ sqrt::found#0 ] zp[2]:115 [ sqrt::$2 ] zp[2]:77 [ sqrt::val#0 ] zp[2]:117 [ sqrt::$1 ] reg byte a [ sqrt::return#0 ] reg byte a [ sqrt::return#2 ]
|
||||
Uplifting [sqr] best 1222046 combination reg byte a [ sqr::$0 ] reg byte a [ sqr::val#2 sqr::val#1 sqr::val#0 ] zp[2]:107 [ sqr::return#0 ] zp[2]:71 [ sqr::return#3 ] zp[2]:66 [ sqr::return#2 ]
|
||||
Uplifting [init_angle_screen] best 1220446 combination zp[1]:33 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] reg byte a [ init_angle_screen::$3 ] reg byte a [ init_angle_screen::$4 ] reg byte a [ init_angle_screen::$5 ] zp[2]:94 [ init_angle_screen::angle_w#0 ] zp[2]:96 [ init_angle_screen::$7 ] zp[1]:99 [ init_angle_screen::$9 ] zp[1]:100 [ init_angle_screen::$10 ] zp[1]:101 [ init_angle_screen::$11 ] zp[1]:32 [ init_angle_screen::x#2 init_angle_screen::x#1 ] zp[1]:98 [ init_angle_screen::ang_w#0 ] zp[2]:86 [ init_angle_screen::yw#0 ] zp[2]:83 [ init_angle_screen::xw#0 ] zp[1]:27 [ init_angle_screen::y#5 init_angle_screen::y#1 ] zp[2]:30 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] zp[2]:28 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] zp[2]:63 [ init_angle_screen::screen#0 ]
|
||||
Uplifting [init_angle_screen] best 1220446 combination zp[1]:33 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] reg byte a [ init_angle_screen::$3 ] reg byte a [ init_angle_screen::$4 ] reg byte a [ init_angle_screen::$6 ] zp[2]:94 [ init_angle_screen::angle_w#0 ] zp[2]:96 [ init_angle_screen::$9 ] zp[1]:99 [ init_angle_screen::$11 ] zp[1]:100 [ init_angle_screen::$12 ] zp[1]:101 [ init_angle_screen::$13 ] zp[1]:32 [ init_angle_screen::x#2 init_angle_screen::x#1 ] zp[1]:98 [ init_angle_screen::ang_w#0 ] zp[2]:86 [ init_angle_screen::yw#0 ] zp[2]:83 [ init_angle_screen::xw#0 ] zp[1]:27 [ init_angle_screen::y#5 init_angle_screen::y#1 ] zp[2]:30 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 ] zp[2]:28 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 ] zp[2]:63 [ init_angle_screen::screen#0 ]
|
||||
Limited combination testing to 100 combinations of 331776 possible.
|
||||
Uplifting [init_dist_screen] best 1217246 combination reg byte a [ init_dist_screen::xd#0 init_dist_screen::$16 init_dist_screen::$14 ] zp[1]:25 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ] reg byte a [ init_dist_screen::x2#0 ] zp[2]:73 [ init_dist_screen::xds#0 ] zp[2]:75 [ init_dist_screen::ds#0 ] zp[1]:24 [ init_dist_screen::x#2 init_dist_screen::x#1 ] reg byte a [ init_dist_screen::d#0 ] zp[1]:23 [ init_dist_screen::yd#0 init_dist_screen::$7 init_dist_screen::$5 ] zp[1]:65 [ init_dist_screen::y2#0 ] zp[1]:18 [ init_dist_screen::y#10 init_dist_screen::y#1 ] zp[2]:21 [ init_dist_screen::screen_bottomline#11 init_dist_screen::screen_bottomline#0 init_dist_screen::screen_bottomline#1 ] zp[2]:19 [ init_dist_screen::screen_topline#11 init_dist_screen::screen#0 init_dist_screen::screen_topline#1 ] zp[2]:68 [ init_dist_screen::yds#0 ]
|
||||
Limited combination testing to 100 combinations of 6144 possible.
|
||||
@ -3804,12 +3806,12 @@ Attempting to uplift remaining variables inzp[1]:25 [ init_dist_screen::xb#2 ini
|
||||
Uplifting [init_dist_screen] best 1217046 combination zp[1]:25 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:33 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Uplifting [init_angle_screen] best 1217046 combination zp[1]:33 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:99 [ init_angle_screen::$9 ]
|
||||
Uplifting [init_angle_screen] best 1216446 combination reg byte a [ init_angle_screen::$9 ]
|
||||
Attempting to uplift remaining variables inzp[1]:100 [ init_angle_screen::$10 ]
|
||||
Uplifting [init_angle_screen] best 1216046 combination reg byte a [ init_angle_screen::$10 ]
|
||||
Attempting to uplift remaining variables inzp[1]:101 [ init_angle_screen::$11 ]
|
||||
Uplifting [init_angle_screen] best 1215446 combination reg byte a [ init_angle_screen::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:99 [ init_angle_screen::$11 ]
|
||||
Uplifting [init_angle_screen] best 1216446 combination reg byte a [ init_angle_screen::$11 ]
|
||||
Attempting to uplift remaining variables inzp[1]:100 [ init_angle_screen::$12 ]
|
||||
Uplifting [init_angle_screen] best 1216046 combination reg byte a [ init_angle_screen::$12 ]
|
||||
Attempting to uplift remaining variables inzp[1]:101 [ init_angle_screen::$13 ]
|
||||
Uplifting [init_angle_screen] best 1215446 combination reg byte a [ init_angle_screen::$13 ]
|
||||
Attempting to uplift remaining variables inzp[1]:24 [ init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
Uplifting [init_dist_screen] best 1215446 combination zp[1]:24 [ init_dist_screen::x#2 init_dist_screen::x#1 ]
|
||||
Attempting to uplift remaining variables inzp[1]:32 [ init_angle_screen::x#2 init_angle_screen::x#1 ]
|
||||
@ -3840,7 +3842,7 @@ Coalescing zero page register [ zp[2]:4 [ malloc::size#3 malloc::mem#0 ] ] with
|
||||
Coalescing zero page register [ zp[2]:45 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 ] ] with [ zp[2]:92 [ atan2_16::return#2 init_angle_screen::angle_w#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:54 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 ] ] with [ zp[2]:113 [ sqrt::found#0 sqrt::$2 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:71 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 ] ] with [ zp[2]:75 [ init_dist_screen::ds#0 sqrt::val#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:45 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 ] ] with [ zp[2]:96 [ init_angle_screen::$7 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:45 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 ] ] with [ zp[2]:96 [ init_angle_screen::$9 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:54 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 ] ] with [ zp[2]:117 [ sqrt::$1 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:71 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 ] ] with [ zp[2]:109 [ bsearch16u::key#0 ] ] - score: 1
|
||||
Coalescing zero page register [ zp[2]:6 [ main::fill#2 main::fill#1 ] ] with [ zp[2]:2 [ heap_head#13 heap_head#0 ] ]
|
||||
@ -3852,7 +3854,7 @@ Coalescing zero page register [ zp[1]:32 [ init_angle_screen::x#2 init_angle_scr
|
||||
Coalescing zero page register [ zp[1]:33 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] ] with [ zp[1]:25 [ init_dist_screen::xb#2 init_dist_screen::xb#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:40 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 ] ] with [ zp[2]:35 [ init_squares::sqr#2 init_squares::sqr#1 ] ]
|
||||
Coalescing zero page register [ zp[2]:42 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 ] ] with [ zp[2]:37 [ init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ] ]
|
||||
Coalescing zero page register [ zp[2]:54 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 ] ] with [ zp[2]:45 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ] ]
|
||||
Coalescing zero page register [ zp[2]:54 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 ] ] with [ zp[2]:45 [ atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ] ]
|
||||
Coalescing zero page register [ zp[2]:66 [ sqr::return#2 init_dist_screen::yds#0 ] ] with [ zp[2]:50 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ] ]
|
||||
Coalescing zero page register [ zp[2]:71 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 ] ] with [ zp[2]:52 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ] ]
|
||||
Coalescing zero page register [ zp[2]:124 [ bsearch16u::pivot#0 ] ] with [ zp[2]:83 [ init_angle_screen::xw#0 atan2_16::x#0 ] ]
|
||||
@ -3870,7 +3872,7 @@ Allocated (was zp[1]:32) zp[1]:19 [ init_angle_screen::x#2 init_angle_screen::x#
|
||||
Allocated (was zp[1]:33) zp[1]:20 [ init_angle_screen::xb#2 init_angle_screen::xb#1 init_dist_screen::xb#2 init_dist_screen::xb#1 ]
|
||||
Allocated (was zp[2]:40) zp[2]:21 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 init_squares::sqr#2 init_squares::sqr#1 ]
|
||||
Allocated (was zp[2]:42) zp[2]:23 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ]
|
||||
Allocated (was zp[2]:54) zp[2]:25 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
||||
Allocated (was zp[2]:54) zp[2]:25 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
|
||||
Allocated (was zp[2]:57) zp[2]:27 [ SCREEN_DIST#0 ]
|
||||
Allocated (was zp[2]:59) zp[2]:29 [ SCREEN_ANGLE#0 ]
|
||||
Allocated (was zp[2]:66) zp[2]:31 [ sqr::return#2 init_dist_screen::yds#0 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
|
||||
@ -4395,7 +4397,7 @@ init_dist_screen: {
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp($11) screen)
|
||||
init_angle_screen: {
|
||||
.label __7 = $19
|
||||
.label __9 = $19
|
||||
.label screen = $11
|
||||
.label screen_bottomline = $11
|
||||
.label xw = $24
|
||||
@ -4493,10 +4495,10 @@ init_angle_screen: {
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// [88] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
// [88] init_angle_screen::$6 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
lda.z y
|
||||
asl
|
||||
// [89] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
// [89] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
ldy #0
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
@ -4509,41 +4511,41 @@ init_angle_screen: {
|
||||
// init_angle_screen::@5
|
||||
__b5:
|
||||
// [94] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
// [95] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [95] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// [96] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __7+1
|
||||
// [96] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// [97] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
||||
lda.z ang_w
|
||||
ldy.z xb
|
||||
sta (screen_bottomline),y
|
||||
// [98] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
// [98] init_angle_screen::$11 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
lda.z ang_w
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
// [99] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [99] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z xb
|
||||
sta (screen_topline),y
|
||||
// [100] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
// [100] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z ang_w
|
||||
// [101] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [101] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_topline),y
|
||||
// [102] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
// [102] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
lda #$80
|
||||
sec
|
||||
sbc.z ang_w
|
||||
// [103] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [103] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_bottomline),y
|
||||
// [104] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
||||
@ -5482,13 +5484,13 @@ byte* heap_head
|
||||
byte* heap_head#0 heap_head zp[2]:2 1100.4
|
||||
byte* heap_head#13 heap_head zp[2]:2 11004.0
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$11 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$12 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$13 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$3 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$4 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$5 reg byte a 20002.0
|
||||
word~ init_angle_screen::$7 zp[2]:25 20002.0
|
||||
byte~ init_angle_screen::$9 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$6 reg byte a 20002.0
|
||||
word~ init_angle_screen::$9 zp[2]:25 20002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 ang_w zp[1]:35 8334.166666666666
|
||||
word init_angle_screen::angle_w
|
||||
@ -5639,7 +5641,7 @@ zp[2]:21 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16
|
||||
zp[2]:23 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ]
|
||||
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
||||
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
||||
zp[2]:25 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
||||
zp[2]:25 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
|
||||
reg byte x [ bsearch16u::num#5 bsearch16u::num#1 bsearch16u::num#3 bsearch16u::num#0 ]
|
||||
zp[2]:27 [ SCREEN_DIST#0 ]
|
||||
zp[2]:29 [ SCREEN_ANGLE#0 ]
|
||||
@ -5651,11 +5653,11 @@ reg byte a [ sqrt::return#2 ]
|
||||
reg byte a [ init_dist_screen::d#0 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
reg byte a [ init_angle_screen::$4 ]
|
||||
reg byte a [ init_angle_screen::$5 ]
|
||||
reg byte a [ init_angle_screen::$6 ]
|
||||
zp[1]:35 [ init_angle_screen::ang_w#0 ]
|
||||
reg byte a [ init_angle_screen::$9 ]
|
||||
reg byte a [ init_angle_screen::$10 ]
|
||||
reg byte a [ init_angle_screen::$11 ]
|
||||
reg byte a [ init_angle_screen::$12 ]
|
||||
reg byte a [ init_angle_screen::$13 ]
|
||||
reg byte a [ init_squares::$3 ]
|
||||
reg byte a [ init_squares::$4 ]
|
||||
reg byte a [ sqr::$0 ]
|
||||
@ -5849,7 +5851,7 @@ main: {
|
||||
cmp (fill),y
|
||||
beq __b10
|
||||
// main::@4
|
||||
// word dist_angle = { *dist, *angle }
|
||||
// MAKEWORD( *dist, *angle )
|
||||
// [21] main::dist_angle#0 = *main::dist#2 w= *main::angle#2 -- vwuz1=_deref_pbuz2_word__deref_pbuz3
|
||||
lda (angle),y
|
||||
sta.z dist_angle
|
||||
@ -6163,7 +6165,7 @@ init_dist_screen: {
|
||||
// Utilizes symmetry around the center
|
||||
// init_angle_screen(byte* zp($11) screen)
|
||||
init_angle_screen: {
|
||||
.label __7 = $19
|
||||
.label __9 = $19
|
||||
.label screen = $11
|
||||
.label screen_bottomline = $11
|
||||
.label xw = $24
|
||||
@ -6255,17 +6257,17 @@ init_angle_screen: {
|
||||
eor #$ff
|
||||
sec
|
||||
adc #$27
|
||||
// signed word xw = (signed word)(word){ 39-x*2, 0 }
|
||||
// MAKEWORD( 39-x*2, 0 )
|
||||
// [87] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
ldy #0
|
||||
sta.z xw+1
|
||||
sty.z xw
|
||||
// y*2
|
||||
// [88] init_angle_screen::$5 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
// [88] init_angle_screen::$6 = init_angle_screen::y#5 << 1 -- vbuaa=vbuz1_rol_1
|
||||
lda.z y
|
||||
asl
|
||||
// signed word yw = (signed word)(word){ y*2, 0 }
|
||||
// [89] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
// MAKEWORD( y*2, 0 )
|
||||
// [89] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0 -- vwuz1=vbuaa_word_vbuc1
|
||||
sta.z yw+1
|
||||
sty.z yw
|
||||
// atan2_16(xw, yw)
|
||||
@ -6278,46 +6280,46 @@ init_angle_screen: {
|
||||
// word angle_w = atan2_16(xw, yw)
|
||||
// [94] init_angle_screen::angle_w#0 = atan2_16::return#2
|
||||
// angle_w+0x0080
|
||||
// [95] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
// [95] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 -- vwuz1=vwuz1_plus_vbuc1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z __7
|
||||
sta.z __7
|
||||
adc.z __9
|
||||
sta.z __9
|
||||
bcc !+
|
||||
inc.z __7+1
|
||||
inc.z __9+1
|
||||
!:
|
||||
// byte ang_w = BYTE1(angle_w+0x0080)
|
||||
// [96] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$7 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __7+1
|
||||
// [96] init_angle_screen::ang_w#0 = byte1 init_angle_screen::$9 -- vbuz1=_byte1_vwuz2
|
||||
lda.z __9+1
|
||||
sta.z ang_w
|
||||
// screen_bottomline[xb] = ang_w
|
||||
// [97] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0 -- pbuz1_derefidx_vbuz2=vbuz3
|
||||
ldy.z xb
|
||||
sta (screen_bottomline),y
|
||||
// -ang_w
|
||||
// [98] init_angle_screen::$9 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
// [98] init_angle_screen::$11 = - init_angle_screen::ang_w#0 -- vbuaa=_neg_vbuz1
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
// screen_topline[xb] = -ang_w
|
||||
// [99] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [99] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
sta (screen_topline),y
|
||||
// 0x80+ang_w
|
||||
// [100] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
// [100] init_angle_screen::$12 = $80 + init_angle_screen::ang_w#0 -- vbuaa=vbuc1_plus_vbuz1
|
||||
lda #$80
|
||||
clc
|
||||
adc.z ang_w
|
||||
// screen_topline[x] = 0x80+ang_w
|
||||
// [101] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [101] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$12 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
ldy.z x
|
||||
sta (screen_topline),y
|
||||
// 0x80-ang_w
|
||||
// [102] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
// [102] init_angle_screen::$13 = $80 - init_angle_screen::ang_w#0 -- vbuaa=vbuc1_minus_vbuz1
|
||||
lda #$80
|
||||
sec
|
||||
sbc.z ang_w
|
||||
// screen_bottomline[x] = 0x80-ang_w
|
||||
// [103] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
// [103] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$13 -- pbuz1_derefidx_vbuz2=vbuaa
|
||||
sta (screen_bottomline),y
|
||||
// for( byte x=0,xb=39; x<=19; x++, xb--)
|
||||
// [104] init_angle_screen::x#1 = ++ init_angle_screen::x#2 -- vbuz1=_inc_vbuz1
|
||||
|
@ -103,13 +103,13 @@ byte* heap_head
|
||||
byte* heap_head#0 heap_head zp[2]:2 1100.4
|
||||
byte* heap_head#13 heap_head zp[2]:2 11004.0
|
||||
void init_angle_screen(byte* init_angle_screen::screen)
|
||||
byte~ init_angle_screen::$10 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$11 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$12 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$13 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$3 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$4 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$5 reg byte a 20002.0
|
||||
word~ init_angle_screen::$7 zp[2]:25 20002.0
|
||||
byte~ init_angle_screen::$9 reg byte a 20002.0
|
||||
byte~ init_angle_screen::$6 reg byte a 20002.0
|
||||
word~ init_angle_screen::$9 zp[2]:25 20002.0
|
||||
byte init_angle_screen::ang_w
|
||||
byte init_angle_screen::ang_w#0 ang_w zp[1]:35 8334.166666666666
|
||||
word init_angle_screen::angle_w
|
||||
@ -260,7 +260,7 @@ zp[2]:21 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16
|
||||
zp[2]:23 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ]
|
||||
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
|
||||
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
|
||||
zp[2]:25 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$7 ]
|
||||
zp[2]:25 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
|
||||
reg byte x [ bsearch16u::num#5 bsearch16u::num#1 bsearch16u::num#3 bsearch16u::num#0 ]
|
||||
zp[2]:27 [ SCREEN_DIST#0 ]
|
||||
zp[2]:29 [ SCREEN_ANGLE#0 ]
|
||||
@ -272,11 +272,11 @@ reg byte a [ sqrt::return#2 ]
|
||||
reg byte a [ init_dist_screen::d#0 ]
|
||||
reg byte a [ init_angle_screen::$3 ]
|
||||
reg byte a [ init_angle_screen::$4 ]
|
||||
reg byte a [ init_angle_screen::$5 ]
|
||||
reg byte a [ init_angle_screen::$6 ]
|
||||
zp[1]:35 [ init_angle_screen::ang_w#0 ]
|
||||
reg byte a [ init_angle_screen::$9 ]
|
||||
reg byte a [ init_angle_screen::$10 ]
|
||||
reg byte a [ init_angle_screen::$11 ]
|
||||
reg byte a [ init_angle_screen::$12 ]
|
||||
reg byte a [ init_angle_screen::$13 ]
|
||||
reg byte a [ init_squares::$3 ]
|
||||
reg byte a [ init_squares::$4 ]
|
||||
reg byte a [ sqr::$0 ]
|
||||
|
@ -522,7 +522,7 @@ div32u16u: {
|
||||
jsr divr16u
|
||||
// divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
lda.z quotient_hi+1
|
||||
|
@ -6663,7 +6663,7 @@ div32u16u: {
|
||||
// div32u16u::@2
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// [111] div32u16u::quotient_lo#0 = divr16u::return#3
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
// [112] div32u16u::return#0 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
|
@ -381,7 +381,7 @@ div32u16u: {
|
||||
jsr divr16u
|
||||
// divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
lda.z quotient_hi+1
|
||||
|
@ -6474,7 +6474,7 @@ div32u16u: {
|
||||
// div32u16u::@2
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// [78] div32u16u::quotient_lo#0 = divr16u::return#3
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
// [79] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
|
@ -511,7 +511,7 @@ div32u16u: {
|
||||
jsr divr16u
|
||||
// divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
lda.z quotient_hi+1
|
||||
|
@ -7066,7 +7066,7 @@ div32u16u: {
|
||||
// div32u16u::@2
|
||||
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
||||
// [126] div32u16u::quotient_lo#0 = divr16u::return#4
|
||||
// MAKEDWORD( quotient_hi, quotient_lo )
|
||||
// MAKELONG( quotient_hi, quotient_lo )
|
||||
// [127] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3
|
||||
lda.z quotient_hi
|
||||
sta.z return+2
|
||||
|
@ -1042,7 +1042,7 @@ mulf8u_prepared: {
|
||||
sm4:
|
||||
sbc mulf_sqr2_hi,x
|
||||
sta memB
|
||||
// return { *memB, *resL };
|
||||
// MAKEWORD( *memB, *resL )
|
||||
sta.z return+1
|
||||
lda resL
|
||||
sta.z return
|
||||
|
@ -504,7 +504,8 @@ mulf8u_prepared: scope:[mulf8u_prepared] from mulf8s_prepared mulf8u::@1
|
||||
mulf8u_prepared::b#2 = phi( mulf8s_prepared/mulf8u_prepared::b#1, mulf8u::@1/mulf8u_prepared::b#0 )
|
||||
*mulf8u_prepared::memB = mulf8u_prepared::b#2
|
||||
asm { ldxmemB sec sm1: ldamulf_sqr1_lo,x sm2: sbcmulf_sqr2_lo,x staresL sm3: ldamulf_sqr1_hi,x sm4: sbcmulf_sqr2_hi,x stamemB }
|
||||
mulf8u_prepared::return#0 = ((word)) { *mulf8u_prepared::memB, *mulf8u_prepared::resL }
|
||||
mulf8u_prepared::$0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL
|
||||
mulf8u_prepared::return#0 = mulf8u_prepared::$0
|
||||
to:mulf8u_prepared::@return
|
||||
mulf8u_prepared::@return: scope:[mulf8u_prepared] from mulf8u_prepared
|
||||
mulf8u_prepared::return#4 = phi( mulf8u_prepared/mulf8u_prepared::return#0 )
|
||||
@ -1974,6 +1975,7 @@ byte mulf8u_prepare::a#1
|
||||
byte mulf8u_prepare::a#2
|
||||
constant byte* const mulf8u_prepare::memA = (byte*)$fd
|
||||
word mulf8u_prepared(byte mulf8u_prepared::b)
|
||||
word~ mulf8u_prepared::$0
|
||||
byte mulf8u_prepared::b
|
||||
byte mulf8u_prepared::b#0
|
||||
byte mulf8u_prepared::b#1
|
||||
@ -2594,8 +2596,6 @@ word print_uint::w#5
|
||||
word print_uint::w#6
|
||||
word print_uint::w#7
|
||||
|
||||
Fixing inline constructor with mulf8u_prepared::$0 = (byte)*mulf8u_prepared::memB w= (byte)*mulf8u_prepared::resL
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#16
|
||||
Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#24 + $28
|
||||
Adding number conversion cast (snumber) 0 in print_sint::$0 = print_sint::w#4 < 0
|
||||
@ -2691,8 +2691,6 @@ Simplifying constant integer cast $1ff
|
||||
Simplifying constant integer cast $100
|
||||
Simplifying constant integer cast $1ff
|
||||
Simplifying constant integer cast 1
|
||||
Simplifying constant integer cast *mulf8u_prepared::memB
|
||||
Simplifying constant integer cast *mulf8u_prepared::resL
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 0
|
||||
Simplifying constant integer cast 5
|
||||
@ -10169,7 +10167,7 @@ mulf8u_prepared: {
|
||||
sm4:
|
||||
sbc mulf_sqr2_hi,x
|
||||
sta memB
|
||||
// return { *memB, *resL };
|
||||
// MAKEWORD( *memB, *resL )
|
||||
// [302] mulf8u_prepared::return#0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL -- vwuz1=_deref_pbuc1_word__deref_pbuc2
|
||||
sta.z return+1
|
||||
lda resL
|
||||
|
Loading…
x
Reference in New Issue
Block a user