1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-26 03:32:23 +00:00

Working on deprecating lo/hi operators. Closes #667

This commit is contained in:
jespergravgaard 2021-06-13 09:23:37 +02:00
parent 459c220af3
commit c2638ff86c
25 changed files with 426 additions and 469 deletions

View File

@ -642,8 +642,9 @@ bitmap_plot: {
lda.z plotter+1
adc.z __0+1
sta.z plotter+1
// *plotter |= bitmap_plot_bit[(char)x]
// BYTE0(x)
ldx.z x
// *plotter |= bitmap_plot_bit[BYTE0(x)]
lda bitmap_plot_bit,x
ldy #0
ora (plotter),y

View File

@ -273,7 +273,7 @@ bitmap_plot: scope:[bitmap_plot] from main::@13
[137] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0]
[138] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8
[139] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
[140] bitmap_plot::$1 = (byte)bitmap_plot::x#0
[140] bitmap_plot::$1 = < bitmap_plot::x#0
[141] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot

View File

@ -601,7 +601,7 @@ bitmap_plot: scope:[bitmap_plot] from main::@17
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 = (byte)bitmap_plot::x#1
bitmap_plot::$1 = < bitmap_plot::x#1
*bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
@ -2995,7 +2995,7 @@ bitmap_plot: scope:[bitmap_plot] from main::@13
[137] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0]
[138] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8
[139] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
[140] bitmap_plot::$1 = (byte)bitmap_plot::x#0
[140] bitmap_plot::$1 = < bitmap_plot::x#0
[141] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
@ -3240,7 +3240,7 @@ byte* bitmap_plot::plotter
word bitmap_plot::plotter#0 500.5
byte* bitmap_plot::plotter#1 1501.5
word bitmap_plot::x
word bitmap_plot::x#0 220.39999999999998
word bitmap_plot::x#0 420.59999999999997
byte bitmap_plot::y
byte bitmap_plot::y#0 2103.0
byte* bitmap_screen
@ -4150,7 +4150,7 @@ Uplift Scope [sin16s] 110,511.5: zp[4]:31 [ sin16s::x#6 sin16s::x#4 sin16s::x#0
Uplift Scope [mul16s] 82,508.25: zp[4]:26 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 ] 20,002: zp[2]:140 [ mul16s::$6 ] 20,002: zp[2]:142 [ mul16s::$11 ] 20,002: zp[2]:144 [ mul16s::$9 ] 20,002: zp[2]:146 [ mul16s::$12 ] 3,065.85: zp[2]:22 [ mul16s::a#3 mul16s::a#2 mul16s::a#1 mul16s::a#0 ] 2,240.8: zp[4]:148 [ mul16s::return#1 ] 2,002: zp[4]:122 [ mul16s::return#0 ] 1,331.55: zp[2]:24 [ mul16s::b#3 mul16s::b#2 mul16s::b#1 ] 202: zp[4]:75 [ mul16s::return#3 ] 202: zp[4]:95 [ mul16s::return#4 ]
Uplift Scope [memset] 35,672.33: zp[2]:42 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 1,833.67: zp[2]:203 [ memset::end#0 ] 1,250.12: zp[1]:41 [ memset::c#4 ] 1,001: zp[2]:37 [ memset::num#2 ] 0: zp[2]:39 [ memset::str#3 ]
Uplift Scope [bitmap_init] 3,628.62: zp[2]:20 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 3,169.83: zp[1]:17 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 2,002: zp[1]:18 [ bitmap_init::x#2 bitmap_init::x#1 ] 2,002: zp[1]:19 [ bitmap_init::y#2 bitmap_init::y#1 ] 2,002: zp[1]:133 [ bitmap_init::$4 ] 2,002: zp[1]:134 [ bitmap_init::$5 ] 2,002: zp[1]:135 [ bitmap_init::$6 ] 500.5: zp[1]:132 [ bitmap_init::$7 ]
Uplift Scope [bitmap_plot] 2,103: zp[1]:111 [ bitmap_plot::y#0 ] 2,002: zp[2]:154 [ bitmap_plot::$0 ] 2,002: zp[1]:158 [ bitmap_plot::$1 ] 1,501.5: zp[2]:156 [ bitmap_plot::plotter#1 ] 500.5: zp[2]:152 [ bitmap_plot::plotter#0 ] 220.4: zp[2]:109 [ bitmap_plot::x#0 ]
Uplift Scope [bitmap_plot] 2,103: zp[1]:111 [ bitmap_plot::y#0 ] 2,002: zp[2]:154 [ bitmap_plot::$0 ] 2,002: zp[1]:158 [ bitmap_plot::$1 ] 1,501.5: zp[2]:156 [ bitmap_plot::plotter#1 ] 500.5: zp[2]:152 [ bitmap_plot::plotter#0 ] 420.6: zp[2]:109 [ bitmap_plot::x#0 ]
Uplift Scope [sin16s_gen2] 2,233: zp[2]:9 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] 2,002: zp[4]:126 [ sin16s_gen2::$6 ] 1,251.25: zp[4]:11 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] 1,001: zp[2]:130 [ sin16s_gen2::$8 ] 940.33: zp[2]:15 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] 73.47: zp[4]:116 [ sin16s_gen2::step#0 ]
Uplift Scope [div32u16u] 2,002: zp[2]:165 [ div32u16u::quotient_lo#0 ] 400.4: zp[2]:161 [ div32u16u::quotient_hi#0 ] 367.33: zp[4]:167 [ div32u16u::return#1 ] 202: zp[4]:112 [ div32u16u::return#0 ]
Uplift Scope [main] 372.11: zp[1]:8 [ main::r_add#10 main::r_add#12 main::r_add#1 ] 202: zp[2]:69 [ main::$26 ] 202: zp[2]:71 [ main::$30 ] 202: zp[4]:79 [ main::xpos#0 ] 202: zp[2]:85 [ main::$7 ] 202: zp[2]:89 [ main::$27 ] 202: zp[2]:91 [ main::$31 ] 202: zp[4]:99 [ main::ypos#0 ] 202: zp[2]:105 [ main::$11 ] 139.77: zp[2]:2 [ main::idx_x#11 main::idx_x#10 main::idx_x#1 ] 139.63: zp[2]:6 [ main::idx_y#3 main::idx_y#10 main::idx_y#1 ] 101: zp[2]:73 [ main::cos_x#0 ] 101: zp[2]:83 [ main::$28 ] 101: zp[2]:93 [ main::sin_y#0 ] 101: zp[2]:103 [ main::$29 ] 62.04: zp[2]:4 [ main::r#10 main::r#1 ] 50.5: zp[2]:107 [ main::y#0 ] 8.42: zp[2]:87 [ main::x#0 ]
@ -5219,7 +5219,7 @@ bitmap_plot: {
lda.z plotter+1
adc.z __0+1
sta.z plotter+1
// [140] bitmap_plot::$1 = (byte)bitmap_plot::x#0 -- vbuxx=_byte_vwuz1
// [140] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1
ldx.z x
// [141] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
lda bitmap_plot_bit,x
@ -6244,7 +6244,7 @@ byte* bitmap_plot::plotter
word bitmap_plot::plotter#0 plotter zp[2]:37 500.5
byte* bitmap_plot::plotter#1 plotter zp[2]:37 1501.5
word bitmap_plot::x
word bitmap_plot::x#0 x zp[2]:28 220.39999999999998
word bitmap_plot::x#0 x zp[2]:28 420.59999999999997
byte bitmap_plot::y
byte bitmap_plot::y#0 reg byte x 2103.0
constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) }
@ -7423,9 +7423,10 @@ bitmap_plot: {
lda.z plotter+1
adc.z __0+1
sta.z plotter+1
// *plotter |= bitmap_plot_bit[(char)x]
// [140] bitmap_plot::$1 = (byte)bitmap_plot::x#0 -- vbuxx=_byte_vwuz1
// BYTE0(x)
// [140] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1
ldx.z x
// *plotter |= bitmap_plot_bit[BYTE0(x)]
// [141] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
lda bitmap_plot_bit,x
ldy #0

View File

@ -62,7 +62,7 @@ byte* bitmap_plot::plotter
word bitmap_plot::plotter#0 plotter zp[2]:37 500.5
byte* bitmap_plot::plotter#1 plotter zp[2]:37 1501.5
word bitmap_plot::x
word bitmap_plot::x#0 x zp[2]:28 220.39999999999998
word bitmap_plot::x#0 x zp[2]:28 420.59999999999997
byte bitmap_plot::y
byte bitmap_plot::y#0 reg byte x 2103.0
constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) }

View File

@ -372,9 +372,9 @@ mul8s: {
lda.z a
cmp #0
bpl __b1
// >m
// BYTE1(m)
lda.z m+1
// >m = (>m)-(char)b
// BYTE1(m) = BYTE1(m)-(char)b
sty.z $ff
sec
sbc.z $ff
@ -383,9 +383,9 @@ mul8s: {
// if(b<0)
cpy #0
bpl __b2
// >m
// BYTE1(m)
lda.z m+1
// >m = (>m)-(char)a
// BYTE1(m) = BYTE1(m)-(char)a
sec
sbc.z a
sta.z m+1
@ -418,9 +418,8 @@ utoa: {
cmp #max_digits-1
bcc __b2
// *buffer++ = DIGITS[(char)value]
lda.z value
tay
lda DIGITS,y
ldx.z value
lda DIGITS,x
ldy #0
sta (buffer),y
// *buffer++ = DIGITS[(char)value];

View File

@ -201,7 +201,7 @@ mul8s::@5: scope:[mul8s] from mul8s
mul8s::@3: scope:[mul8s] from mul8s::@5
[95] mul8s::$6 = > mul8s::m#0
[96] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#2
[97] mul8s::m#1 = mul8s::m#0 hi= mul8s::$11
[97] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11
to:mul8s::@1
mul8s::@1: scope:[mul8s] from mul8s::@3 mul8s::@5
[98] mul8s::m#5 = phi( mul8s::@3/mul8s::m#1, mul8s::@5/mul8s::m#0 )
@ -210,7 +210,7 @@ mul8s::@1: scope:[mul8s] from mul8s::@3 mul8s::@5
mul8s::@4: scope:[mul8s] from mul8s::@1
[100] mul8s::$9 = > mul8s::m#5
[101] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#2
[102] mul8s::m#2 = mul8s::m#5 hi= mul8s::$12
[102] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12
to:mul8s::@2
mul8s::@2: scope:[mul8s] from mul8s::@1 mul8s::@4
[103] mul8s::m#4 = phi( mul8s::@1/mul8s::m#5, mul8s::@4/mul8s::m#2 )

View File

@ -262,7 +262,7 @@ mul8s::@3: scope:[mul8s] from mul8s::@5
mul8s::$13 = (byte)mul8s::b#4
mul8s::$7 = mul8s::$6 - mul8s::$13
mul8s::$11 = mul8s::$7
mul8s::m#1 = mul8s::m#3 hi= mul8s::$11
mul8s::m#1 = mul8s::m#3 byte1= mul8s::$11
to:mul8s::@1
mul8s::@2: scope:[mul8s] from mul8s::@1 mul8s::@4
mul8s::m#4 = phi( mul8s::@1/mul8s::m#6, mul8s::@4/mul8s::m#2 )
@ -275,7 +275,7 @@ mul8s::@4: scope:[mul8s] from mul8s::@1
mul8s::$14 = (byte)mul8s::a#4
mul8s::$10 = mul8s::$9 - mul8s::$14
mul8s::$12 = mul8s::$10
mul8s::m#2 = mul8s::m#5 hi= mul8s::$12
mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12
to:mul8s::@2
mul8s::@return: scope:[mul8s] from mul8s::@2
mul8s::return#4 = phi( mul8s::@2/mul8s::return#0 )
@ -3277,7 +3277,7 @@ mul8s::@5: scope:[mul8s] from mul8s
mul8s::@3: scope:[mul8s] from mul8s::@5
[95] mul8s::$6 = > mul8s::m#0
[96] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#2
[97] mul8s::m#1 = mul8s::m#0 hi= mul8s::$11
[97] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11
to:mul8s::@1
mul8s::@1: scope:[mul8s] from mul8s::@3 mul8s::@5
[98] mul8s::m#5 = phi( mul8s::@3/mul8s::m#1, mul8s::@5/mul8s::m#0 )
@ -3286,7 +3286,7 @@ mul8s::@1: scope:[mul8s] from mul8s::@3 mul8s::@5
mul8s::@4: scope:[mul8s] from mul8s::@1
[100] mul8s::$9 = > mul8s::m#5
[101] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#2
[102] mul8s::m#2 = mul8s::m#5 hi= mul8s::$12
[102] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12
to:mul8s::@2
mul8s::@2: scope:[mul8s] from mul8s::@1 mul8s::@4
[103] mul8s::m#4 = phi( mul8s::@1/mul8s::m#5, mul8s::@4/mul8s::m#2 )
@ -3938,7 +3938,6 @@ Removing always clobbered register reg byte a as potential for zp[1]:20 [ mul8s:
Statement [93] mul8s::m#0 = mul8u::return#2 [ mul8s::a#2 mul8s::b#2 mul8s::m#0 ] ( main:7::mul8s:36 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::yd#0 printf_buffer mul8s::a#2 mul8s::b#2 mul8s::m#0 ] { { mul8s::b#0 = mul8s::b#2 mul8s::a#2 mul8s::a#0 main::xd#0 } } main:7::mul8s:40 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::$9 printf_buffer mul8s::a#2 mul8s::b#2 mul8s::m#0 ] { { mul8s::b#1 = mul8s::b#2 mul8s::a#2 mul8s::a#1 main::yd#0 } } ) always clobbers reg byte a
Statement [96] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#2 [ mul8s::a#2 mul8s::b#2 mul8s::m#0 mul8s::$11 ] ( main:7::mul8s:36 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::yd#0 printf_buffer mul8s::a#2 mul8s::b#2 mul8s::m#0 mul8s::$11 ] { { mul8s::b#0 = mul8s::b#2 mul8s::a#2 mul8s::a#0 main::xd#0 } } main:7::mul8s:40 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::$9 printf_buffer mul8s::a#2 mul8s::b#2 mul8s::m#0 mul8s::$11 ] { { mul8s::b#1 = mul8s::b#2 mul8s::a#2 mul8s::a#1 main::yd#0 } } ) always clobbers reg byte a
Statement [101] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#2 [ mul8s::m#5 mul8s::$12 ] ( main:7::mul8s:36 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::yd#0 printf_buffer mul8s::m#5 mul8s::$12 ] { { mul8s::b#0 = mul8s::b#2 mul8s::a#2 mul8s::a#0 main::xd#0 } } main:7::mul8s:40 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::$9 printf_buffer mul8s::m#5 mul8s::$12 ] { { mul8s::b#1 = mul8s::b#2 mul8s::a#2 mul8s::a#1 main::yd#0 } } ) always clobbers reg byte a
Statement [108] utoa::$11 = (byte)utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:7::printf_uint:23::utoa:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::buffer#11 utoa::$11 ] { { printf_uint::uvalue#0 = main::count#11 utoa::value#1 } } ) always clobbers reg byte a
Statement [109] *utoa::buffer#11 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#11 ] ( main:7::printf_uint:23::utoa:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::buffer#11 ] { { printf_uint::uvalue#0 = main::count#11 utoa::value#1 } } ) always clobbers reg byte a reg byte y
Statement [110] utoa::buffer#3 = ++ utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:7::printf_uint:23::utoa:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::buffer#3 ] { { printf_uint::uvalue#0 = main::count#11 utoa::value#1 } } ) always clobbers reg byte a
Statement [111] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:7::printf_uint:23::utoa:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] { { printf_uint::uvalue#0 = main::count#11 utoa::value#1 } } ) always clobbers reg byte a reg byte y
@ -4010,7 +4009,6 @@ Statement [92] mul8u::return#2 = mul8u::res#2 [ mul8s::a#2 mul8s::b#2 mul8u::ret
Statement [93] mul8s::m#0 = mul8u::return#2 [ mul8s::a#2 mul8s::b#2 mul8s::m#0 ] ( main:7::mul8s:36 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::yd#0 printf_buffer mul8s::a#2 mul8s::b#2 mul8s::m#0 ] { { mul8s::b#0 = mul8s::b#2 mul8s::a#2 mul8s::a#0 main::xd#0 } } main:7::mul8s:40 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::$9 printf_buffer mul8s::a#2 mul8s::b#2 mul8s::m#0 ] { { mul8s::b#1 = mul8s::b#2 mul8s::a#2 mul8s::a#1 main::yd#0 } } ) always clobbers reg byte a
Statement [96] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#2 [ mul8s::a#2 mul8s::b#2 mul8s::m#0 mul8s::$11 ] ( main:7::mul8s:36 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::yd#0 printf_buffer mul8s::a#2 mul8s::b#2 mul8s::m#0 mul8s::$11 ] { { mul8s::b#0 = mul8s::b#2 mul8s::a#2 mul8s::a#0 main::xd#0 } } main:7::mul8s:40 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::$9 printf_buffer mul8s::a#2 mul8s::b#2 mul8s::m#0 mul8s::$11 ] { { mul8s::b#1 = mul8s::b#2 mul8s::a#2 mul8s::a#1 main::yd#0 } } ) always clobbers reg byte a
Statement [101] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#2 [ mul8s::m#5 mul8s::$12 ] ( main:7::mul8s:36 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::yd#0 printf_buffer mul8s::m#5 mul8s::$12 ] { { mul8s::b#0 = mul8s::b#2 mul8s::a#2 mul8s::a#0 main::xd#0 } } main:7::mul8s:40 [ main::y#2 main::count#10 main::sc#10 main::x#2 main::$9 printf_buffer mul8s::m#5 mul8s::$12 ] { { mul8s::b#1 = mul8s::b#2 mul8s::a#2 mul8s::a#1 main::yd#0 } } ) always clobbers reg byte a
Statement [108] utoa::$11 = (byte)utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:7::printf_uint:23::utoa:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::buffer#11 utoa::$11 ] { { printf_uint::uvalue#0 = main::count#11 utoa::value#1 } } ) always clobbers reg byte a
Statement [109] *utoa::buffer#11 = DIGITS[utoa::$11] [ printf_buffer utoa::buffer#11 ] ( main:7::printf_uint:23::utoa:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::buffer#11 ] { { printf_uint::uvalue#0 = main::count#11 utoa::value#1 } } ) always clobbers reg byte a reg byte y
Statement [110] utoa::buffer#3 = ++ utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:7::printf_uint:23::utoa:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer utoa::buffer#3 ] { { printf_uint::uvalue#0 = main::count#11 utoa::value#1 } } ) always clobbers reg byte a
Statement [111] *utoa::buffer#3 = 0 [ printf_buffer ] ( main:7::printf_uint:23::utoa:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] { { printf_uint::uvalue#0 = main::count#11 utoa::value#1 } } ) always clobbers reg byte a reg byte y
@ -4143,39 +4141,39 @@ Uplifting [cputc] best 109469 combination reg byte a [ cputc::c#3 cputc::c#0 cpu
Uplifting [cputs] best 109399 combination zp[2]:17 [ cputs::s#3 cputs::s#4 cputs::s#0 ] reg byte a [ cputs::c#1 ]
Uplifting [mul8s] best 109375 combination zp[2]:21 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] reg byte a [ mul8s::$6 ] reg byte a [ mul8s::$11 ] reg byte a [ mul8s::$9 ] reg byte a [ mul8s::$12 ] zp[1]:20 [ mul8s::b#2 mul8s::b#1 mul8s::b#0 ] zp[1]:19 [ mul8s::a#2 mul8s::a#1 mul8s::a#0 ]
Limited combination testing to 100 combinations of 2304 possible.
Uplifting [utoa] best 109261 combination zp[2]:27 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:24 [ utoa::value#2 utoa::value#6 utoa::value#1 utoa::value#0 ] zp[1]:23 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:91 [ utoa::digit_value#0 ] reg byte a [ utoa::$11 ] zp[2]:88 [ utoa::buffer#3 ]
Uplifting [main] best 107561 combination zp[2]:4 [ main::count#11 main::count#10 main::count#12 main::count#1 ] zp[1]:8 [ main::x#2 main::x#1 ] reg byte a [ main::$5 ] reg byte a [ main::$7 ] zp[2]:60 [ main::$10 ] zp[2]:62 [ main::dist_sq#0 ] zp[2]:6 [ main::sc#8 main::sc#10 main::sc#1 ] reg byte x [ main::xd#0 ] zp[1]:57 [ main::yd#0 ] zp[2]:58 [ main::$9 ] zp[1]:3 [ main::y#2 main::y#1 ]
Uplifting [utoa] best 109259 combination zp[2]:27 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:24 [ utoa::value#2 utoa::value#6 utoa::value#1 utoa::value#0 ] zp[1]:23 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:91 [ utoa::digit_value#0 ] reg byte x [ utoa::$11 ] zp[2]:88 [ utoa::buffer#3 ]
Uplifting [main] best 107559 combination zp[2]:4 [ main::count#11 main::count#10 main::count#12 main::count#1 ] zp[1]:8 [ main::x#2 main::x#1 ] reg byte a [ main::$5 ] reg byte a [ main::$7 ] zp[2]:60 [ main::$10 ] zp[2]:62 [ main::dist_sq#0 ] zp[2]:6 [ main::sc#8 main::sc#10 main::sc#1 ] reg byte x [ main::xd#0 ] zp[1]:57 [ main::yd#0 ] zp[2]:58 [ main::$9 ] zp[1]:3 [ main::y#2 main::y#1 ]
Limited combination testing to 100 combinations of 576 possible.
Uplifting [gotoxy] best 107545 combination zp[2]:66 [ gotoxy::$8 ] zp[2]:68 [ gotoxy::$9 ] zp[2]:72 [ gotoxy::$5 ] zp[2]:74 [ gotoxy::$6 ] reg byte x [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] zp[2]:64 [ gotoxy::$7 ] zp[2]:70 [ gotoxy::line_offset#0 ]
Uplifting [printf_number_buffer] best 107538 combination reg byte a [ printf_number_buffer::buffer_sign#0 ]
Uplifting [printf_uint] best 107538 combination zp[2]:52 [ printf_uint::uvalue#0 ]
Uplifting [conio_c64_init] best 107526 combination reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ]
Uplifting [cputln] best 107526 combination
Uplifting [MOS6526_CIA] best 107526 combination
Uplifting [MOS6569_VICII] best 107526 combination
Uplifting [MOS6581_SID] best 107526 combination
Uplifting [cscroll] best 107526 combination
Uplifting [RADIX] best 107526 combination
Uplifting [printf_format_number] best 107526 combination
Uplifting [printf_buffer_number] best 107526 combination
Uplifting [printf_format_string] best 107526 combination
Uplifting [__start] best 107526 combination
Uplifting [gotoxy] best 107543 combination zp[2]:66 [ gotoxy::$8 ] zp[2]:68 [ gotoxy::$9 ] zp[2]:72 [ gotoxy::$5 ] zp[2]:74 [ gotoxy::$6 ] reg byte x [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] zp[2]:64 [ gotoxy::$7 ] zp[2]:70 [ gotoxy::line_offset#0 ]
Uplifting [printf_number_buffer] best 107536 combination reg byte a [ printf_number_buffer::buffer_sign#0 ]
Uplifting [printf_uint] best 107536 combination zp[2]:52 [ printf_uint::uvalue#0 ]
Uplifting [conio_c64_init] best 107524 combination reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ]
Uplifting [cputln] best 107524 combination
Uplifting [MOS6526_CIA] best 107524 combination
Uplifting [MOS6569_VICII] best 107524 combination
Uplifting [MOS6581_SID] best 107524 combination
Uplifting [cscroll] best 107524 combination
Uplifting [RADIX] best 107524 combination
Uplifting [printf_format_number] best 107524 combination
Uplifting [printf_buffer_number] best 107524 combination
Uplifting [printf_format_string] best 107524 combination
Uplifting [__start] best 107524 combination
Attempting to uplift remaining variables inzp[1]:47 [ conio_cursor_y ]
Uplifting [] best 107526 combination zp[1]:47 [ conio_cursor_y ]
Uplifting [] best 107524 combination zp[1]:47 [ conio_cursor_y ]
Attempting to uplift remaining variables inzp[1]:46 [ conio_cursor_x ]
Uplifting [] best 107526 combination zp[1]:46 [ conio_cursor_x ]
Uplifting [] best 107524 combination zp[1]:46 [ conio_cursor_x ]
Attempting to uplift remaining variables inzp[1]:23 [ utoa::digit#2 utoa::digit#1 ]
Uplifting [utoa] best 107526 combination zp[1]:23 [ utoa::digit#2 utoa::digit#1 ]
Uplifting [utoa] best 107524 combination zp[1]:23 [ utoa::digit#2 utoa::digit#1 ]
Attempting to uplift remaining variables inzp[1]:20 [ mul8s::b#2 mul8s::b#1 mul8s::b#0 ]
Uplifting [mul8s] best 107325 combination reg byte y [ mul8s::b#2 mul8s::b#1 mul8s::b#0 ]
Uplifting [mul8s] best 107323 combination reg byte y [ mul8s::b#2 mul8s::b#1 mul8s::b#0 ]
Attempting to uplift remaining variables inzp[1]:19 [ mul8s::a#2 mul8s::a#1 mul8s::a#0 ]
Uplifting [mul8s] best 107325 combination zp[1]:19 [ mul8s::a#2 mul8s::a#1 mul8s::a#0 ]
Uplifting [mul8s] best 107323 combination zp[1]:19 [ mul8s::a#2 mul8s::a#1 mul8s::a#0 ]
Attempting to uplift remaining variables inzp[1]:8 [ main::x#2 main::x#1 ]
Uplifting [main] best 107325 combination zp[1]:8 [ main::x#2 main::x#1 ]
Uplifting [main] best 107323 combination zp[1]:8 [ main::x#2 main::x#1 ]
Attempting to uplift remaining variables inzp[1]:57 [ main::yd#0 ]
Uplifting [main] best 107325 combination zp[1]:57 [ main::yd#0 ]
Uplifting [main] best 107323 combination zp[1]:57 [ main::yd#0 ]
Attempting to uplift remaining variables inzp[1]:3 [ main::y#2 main::y#1 ]
Uplifting [main] best 107325 combination zp[1]:3 [ main::y#2 main::y#1 ]
Uplifting [main] best 107323 combination zp[1]:3 [ main::y#2 main::y#1 ]
Coalescing zero page register [ zp[2]:4 [ main::count#11 main::count#10 main::count#12 main::count#1 ] ] with [ zp[2]:52 [ printf_uint::uvalue#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:10 [ memset::num#3 ] ] with [ zp[2]:76 [ memset::end#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:12 [ memset::str#4 ] ] with [ zp[2]:15 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1
@ -4804,13 +4802,13 @@ mul8s: {
jmp __b3
// mul8s::@3
__b3:
// [95] mul8s::$6 = > mul8s::m#0 -- vbuaa=_hi_vwuz1
// [95] mul8s::$6 = > mul8s::m#0 -- vbuaa=_byte1_vwuz1
lda.z m+1
// [96] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#2 -- vbuaa=vbuaa_minus_vbuyy
sty.z $ff
sec
sbc.z $ff
// [97] mul8s::m#1 = mul8s::m#0 hi= mul8s::$11 -- vwuz1=vwuz1_sethi_vbuaa
// [97] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [98] phi from mul8s::@3 mul8s::@5 to mul8s::@1 [phi:mul8s::@3/mul8s::@5->mul8s::@1]
__b1_from___b3:
@ -4825,12 +4823,12 @@ mul8s: {
jmp __b4
// mul8s::@4
__b4:
// [100] mul8s::$9 = > mul8s::m#5 -- vbuaa=_hi_vwuz1
// [100] mul8s::$9 = > mul8s::m#5 -- vbuaa=_byte1_vwuz1
lda.z m+1
// [101] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#2 -- vbuaa=vbuaa_minus_vbuz1
sec
sbc.z a
// [102] mul8s::m#2 = mul8s::m#5 hi= mul8s::$12 -- vwuz1=vwuz1_sethi_vbuaa
// [102] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [103] phi from mul8s::@1 mul8s::@4 to mul8s::@2 [phi:mul8s::@1/mul8s::@4->mul8s::@2]
__b2_from___b1:
@ -4881,11 +4879,10 @@ utoa: {
jmp __b3
// utoa::@3
__b3:
// [108] utoa::$11 = (byte)utoa::value#2 -- vbuaa=_byte_vwuz1
lda.z value
// [109] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuaa
tay
lda DIGITS,y
// [108] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1
ldx.z value
// [109] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx
lda DIGITS,x
ldy #0
sta (buffer),y
// [110] utoa::buffer#3 = ++ utoa::buffer#11 -- pbuz1=_inc_pbuz1
@ -5786,7 +5783,7 @@ word printf_uint::uvalue
word printf_uint::uvalue#0 uvalue zp[2]:3 37.33333333333333
void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix)
byte~ utoa::$10 reg byte a 20002.0
byte~ utoa::$11 reg byte a 2002.0
byte~ utoa::$11 reg byte x 2002.0
byte* utoa::buffer
byte* utoa::buffer#11 buffer zp[2]:20 3000.4285714285716
byte* utoa::buffer#14 buffer zp[2]:20 15001.5
@ -5858,7 +5855,7 @@ reg byte a [ mul8s::$6 ]
reg byte a [ mul8s::$11 ]
reg byte a [ mul8s::$9 ]
reg byte a [ mul8s::$12 ]
reg byte a [ utoa::$11 ]
reg byte x [ utoa::$11 ]
reg byte a [ utoa::$10 ]
zp[2]:28 [ utoa::digit_value#0 utoa_append::sub#0 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ]
reg byte a [ mul8u::$1 ]
@ -5867,7 +5864,7 @@ mem[12] [ printf_buffer ]
FINAL ASSEMBLER
Score: 86187
Score: 86185
// File Comments
// Plot a r=9 circle on the screen using chars - count how many chars are used
@ -6421,15 +6418,15 @@ mul8s: {
cmp #0
bpl __b1
// mul8s::@3
// >m
// [95] mul8s::$6 = > mul8s::m#0 -- vbuaa=_hi_vwuz1
// BYTE1(m)
// [95] mul8s::$6 = > mul8s::m#0 -- vbuaa=_byte1_vwuz1
lda.z m+1
// >m = (>m)-(char)b
// BYTE1(m) = BYTE1(m)-(char)b
// [96] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#2 -- vbuaa=vbuaa_minus_vbuyy
sty.z $ff
sec
sbc.z $ff
// [97] mul8s::m#1 = mul8s::m#0 hi= mul8s::$11 -- vwuz1=vwuz1_sethi_vbuaa
// [97] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [98] phi from mul8s::@3 mul8s::@5 to mul8s::@1 [phi:mul8s::@3/mul8s::@5->mul8s::@1]
// [98] phi mul8s::m#5 = mul8s::m#1 [phi:mul8s::@3/mul8s::@5->mul8s::@1#0] -- register_copy
@ -6440,14 +6437,14 @@ mul8s: {
cpy #0
bpl __b2
// mul8s::@4
// >m
// [100] mul8s::$9 = > mul8s::m#5 -- vbuaa=_hi_vwuz1
// BYTE1(m)
// [100] mul8s::$9 = > mul8s::m#5 -- vbuaa=_byte1_vwuz1
lda.z m+1
// >m = (>m)-(char)a
// BYTE1(m) = BYTE1(m)-(char)a
// [101] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#2 -- vbuaa=vbuaa_minus_vbuz1
sec
sbc.z a
// [102] mul8s::m#2 = mul8s::m#5 hi= mul8s::$12 -- vwuz1=vwuz1_sethi_vbuaa
// [102] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [103] phi from mul8s::@1 mul8s::@4 to mul8s::@2 [phi:mul8s::@1/mul8s::@4->mul8s::@2]
// [103] phi mul8s::m#4 = mul8s::m#5 [phi:mul8s::@1/mul8s::@4->mul8s::@2#0] -- register_copy
@ -6492,11 +6489,10 @@ utoa: {
bcc __b2
// utoa::@3
// *buffer++ = DIGITS[(char)value]
// [108] utoa::$11 = (byte)utoa::value#2 -- vbuaa=_byte_vwuz1
lda.z value
// [109] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuaa
tay
lda DIGITS,y
// [108] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1
ldx.z value
// [109] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx
lda DIGITS,x
ldy #0
sta (buffer),y
// *buffer++ = DIGITS[(char)value];

View File

@ -171,7 +171,7 @@ word printf_uint::uvalue
word printf_uint::uvalue#0 uvalue zp[2]:3 37.33333333333333
void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix)
byte~ utoa::$10 reg byte a 20002.0
byte~ utoa::$11 reg byte a 2002.0
byte~ utoa::$11 reg byte x 2002.0
byte* utoa::buffer
byte* utoa::buffer#11 buffer zp[2]:20 3000.4285714285716
byte* utoa::buffer#14 buffer zp[2]:20 15001.5
@ -243,7 +243,7 @@ reg byte a [ mul8s::$6 ]
reg byte a [ mul8s::$11 ]
reg byte a [ mul8s::$9 ]
reg byte a [ mul8s::$12 ]
reg byte a [ utoa::$11 ]
reg byte x [ utoa::$11 ]
reg byte a [ utoa::$10 ]
zp[2]:28 [ utoa::digit_value#0 utoa_append::sub#0 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ]
reg byte a [ mul8u::$1 ]

View File

@ -169,9 +169,9 @@ anim: {
lda.z yr+1
adc.z __12+1
sta.z yr+1
// >xr
// BYTE1(xr)
lda.z xr+1
// signed int xpos = ((signed char) >xr) + 24 /*border*/ + 149
// signed int xpos = ((signed char) BYTE1(xr)) + 24 /*border*/ + 149
tax
clc
adc #<$18+$95
@ -185,8 +185,8 @@ anim: {
sta.z xpos+1
// sprite_msb = sprite_msb/2
lsr.z sprite_msb
// >xpos
// if(>xpos!=0)
// BYTE1(xpos)
// if(BYTE1(xpos)!=0)
cmp #0
beq __b5
// sprite_msb |= $80
@ -194,9 +194,9 @@ anim: {
ora.z sprite_msb
sta.z sprite_msb
__b5:
// (>yr) + 89
// BYTE1(yr) + 89
lda.z yr+1
// char ypos = (>yr) + 89 /*center*/+ 51
// char ypos = BYTE1(yr) + 89 /*center*/+ 51
clc
adc #$59+$33
tay
@ -204,9 +204,9 @@ anim: {
lda.z i
asl
tax
// <xpos
// BYTE0(xpos)
lda.z xpos
// SPRITES_XPOS[i2] = <xpos
// SPRITES_XPOS[i2] = BYTE0(xpos)
sta SPRITES_XPOS,x
// SPRITES_YPOS[i2] = ypos
tya
@ -357,16 +357,16 @@ mulf_init: {
inc.z sqr+1
!:
__b3:
// <sqr
// BYTE0(sqr)
lda.z sqr
// *sqr1_lo = <sqr
// *sqr1_lo = BYTE0(sqr)
ldy #0
sta (sqr1_lo),y
// >sqr
// BYTE1(sqr)
lda.z sqr+1
// *sqr1_hi++ = >sqr
// *sqr1_hi++ = BYTE1(sqr)
sta (sqr1_hi),y
// *sqr1_hi++ = >sqr;
// *sqr1_hi++ = BYTE1(sqr);
inc.z sqr1_hi
bne !+
inc.z sqr1_hi+1
@ -443,9 +443,9 @@ mulf8s_prepared: {
lda memA
cmp #0
bpl __b1
// >m
// BYTE1(m)
lda.z m+1
// >m = (>m)-(char)b
// BYTE1(m) = BYTE1(m)-(char)b
sty.z $ff
sec
sbc.z $ff
@ -454,9 +454,9 @@ mulf8s_prepared: {
// if(b<0)
cpy #0
bpl __b2
// >m
// BYTE1(m)
lda.z m+1
// >m = (>m)-(char)*memA
// BYTE1(m) = BYTE1(m)-(char)*memA
sec
sbc memA
sta.z m+1
@ -489,7 +489,7 @@ clock: {
// print_ulong_at(dword zp($11) dw)
print_ulong_at: {
.label dw = $11
// print_uint_at(>dw, at)
// print_uint_at(WORD1(dw), at)
lda.z dw+2
sta.z print_uint_at.w
lda.z dw+3
@ -499,7 +499,7 @@ print_ulong_at: {
lda #>SCREEN
sta.z print_uint_at.at+1
jsr print_uint_at
// print_uint_at(<dw, at+4)
// print_uint_at(WORD0(dw), at+4)
lda.z dw
sta.z print_uint_at.w
lda.z dw+1
@ -547,11 +547,11 @@ mulf8u_prepared: {
print_uint_at: {
.label w = $d
.label at = $f
// print_uchar_at(>w, at)
// print_uchar_at(BYTE1(w), at)
lda.z w+1
sta.z print_uchar_at.b
jsr print_uchar_at
// print_uchar_at(<w, at+2)
// print_uchar_at(BYTE0(w), at+2)
lda.z w
sta.z print_uchar_at.b
lda #2

View File

@ -221,7 +221,7 @@ mulf8s_prepared::@5: scope:[mulf8s_prepared] from mulf8s_prepared
mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@5
[113] mulf8s_prepared::$6 = > mulf8s_prepared::m#0
[114] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#4
[115] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 hi= mulf8s_prepared::$11
[115] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11
to:mulf8s_prepared::@1
mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@5
[116] mulf8s_prepared::m#5 = phi( mulf8s_prepared::@3/mulf8s_prepared::m#1, mulf8s_prepared::@5/mulf8s_prepared::m#0 )
@ -230,7 +230,7 @@ mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_pr
mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1
[118] mulf8s_prepared::$9 = > mulf8s_prepared::m#5
[119] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA
[120] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12
[120] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12
to:mulf8s_prepared::@2
mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4
[121] mulf8s_prepared::m#4 = phi( mulf8s_prepared::@1/mulf8s_prepared::m#5, mulf8s_prepared::@4/mulf8s_prepared::m#2 )
@ -249,11 +249,11 @@ clock::@return: scope:[clock] from clock
void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at)
print_ulong_at: scope:[print_ulong_at] from anim::@14
[125] print_uint_at::w#0 = > print_ulong_at::dw#0
[125] print_uint_at::w#0 = _word1_ print_ulong_at::dw#0
[126] call print_uint_at
to:print_ulong_at::@1
print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at
[127] print_uint_at::w#1 = < print_ulong_at::dw#0
[127] print_uint_at::w#1 = _word0_ print_ulong_at::dw#0
[128] call print_uint_at
to:print_ulong_at::@return
print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1

View File

@ -162,7 +162,7 @@ mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@5
mulf8s_prepared::$13 = (byte)mulf8s_prepared::b#6
mulf8s_prepared::$7 = mulf8s_prepared::$6 - mulf8s_prepared::$13
mulf8s_prepared::$11 = mulf8s_prepared::$7
mulf8s_prepared::m#1 = mulf8s_prepared::m#3 hi= mulf8s_prepared::$11
mulf8s_prepared::m#1 = mulf8s_prepared::m#3 byte1= mulf8s_prepared::$11
to:mulf8s_prepared::@1
mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4
mulf8s_prepared::m#4 = phi( mulf8s_prepared::@1/mulf8s_prepared::m#6, mulf8s_prepared::@4/mulf8s_prepared::m#2 )
@ -174,7 +174,7 @@ mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1
mulf8s_prepared::$14 = (byte)*mulf8s_prepared::memA
mulf8s_prepared::$10 = mulf8s_prepared::$9 - mulf8s_prepared::$14
mulf8s_prepared::$12 = mulf8s_prepared::$10
mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12
mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12
to:mulf8s_prepared::@2
mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2
mulf8s_prepared::return#6 = phi( mulf8s_prepared::@2/mulf8s_prepared::return#0 )
@ -233,7 +233,7 @@ void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at)
print_ulong_at: scope:[print_ulong_at] from anim::@17
print_ulong_at::at#1 = phi( anim::@17/print_ulong_at::at#0 )
print_ulong_at::dw#1 = phi( anim::@17/print_ulong_at::dw#0 )
print_ulong_at::$0 = > print_ulong_at::dw#1
print_ulong_at::$0 = _word1_ print_ulong_at::dw#1
print_uint_at::w#0 = print_ulong_at::$0
print_uint_at::at#0 = print_ulong_at::at#1
call print_uint_at
@ -241,7 +241,7 @@ print_ulong_at: scope:[print_ulong_at] from anim::@17
print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at
print_ulong_at::at#2 = phi( print_ulong_at/print_ulong_at::at#1 )
print_ulong_at::dw#2 = phi( print_ulong_at/print_ulong_at::dw#1 )
print_ulong_at::$2 = < print_ulong_at::dw#2
print_ulong_at::$2 = _word0_ print_ulong_at::dw#2
print_ulong_at::$3 = print_ulong_at::at#2 + 4
print_uint_at::w#1 = print_ulong_at::$2
print_uint_at::at#1 = print_ulong_at::$3
@ -1734,7 +1734,7 @@ mulf8s_prepared::@5: scope:[mulf8s_prepared] from mulf8s_prepared
mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@5
[113] mulf8s_prepared::$6 = > mulf8s_prepared::m#0
[114] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#4
[115] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 hi= mulf8s_prepared::$11
[115] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11
to:mulf8s_prepared::@1
mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@5
[116] mulf8s_prepared::m#5 = phi( mulf8s_prepared::@3/mulf8s_prepared::m#1, mulf8s_prepared::@5/mulf8s_prepared::m#0 )
@ -1743,7 +1743,7 @@ mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_pr
mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1
[118] mulf8s_prepared::$9 = > mulf8s_prepared::m#5
[119] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA
[120] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12
[120] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12
to:mulf8s_prepared::@2
mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4
[121] mulf8s_prepared::m#4 = phi( mulf8s_prepared::@1/mulf8s_prepared::m#5, mulf8s_prepared::@4/mulf8s_prepared::m#2 )
@ -1762,11 +1762,11 @@ clock::@return: scope:[clock] from clock
void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at)
print_ulong_at: scope:[print_ulong_at] from anim::@14
[125] print_uint_at::w#0 = > print_ulong_at::dw#0
[125] print_uint_at::w#0 = _word1_ print_ulong_at::dw#0
[126] call print_uint_at
to:print_ulong_at::@1
print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at
[127] print_uint_at::w#1 = < print_ulong_at::dw#0
[127] print_uint_at::w#1 = _word0_ print_ulong_at::dw#0
[128] call print_uint_at
to:print_ulong_at::@return
print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1
@ -2225,8 +2225,8 @@ Statement [112] if(*mulf8s_prepared::memA>=0) goto mulf8s_prepared::@1 [ mulf8s_
Statement [114] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] ( anim:3::mulf8s_prepared:25 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#0 = mulf8s_prepared::b#4 anim::x#0 } } anim:3::mulf8s_prepared:29 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#1 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:35 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#2 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:40 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#3 = mulf8s_prepared::b#4 anim::x#0 } } ) always clobbers reg byte a
Statement [119] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA [ mulf8s_prepared::m#5 mulf8s_prepared::$12 ] ( anim:3::mulf8s_prepared:25 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#0 = mulf8s_prepared::b#4 anim::x#0 } } anim:3::mulf8s_prepared:29 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#1 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:35 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#2 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:40 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#3 = mulf8s_prepared::b#4 anim::x#0 } } ) always clobbers reg byte a
Statement [123] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( anim:3::clock:61 [ anim::angle#1 clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
Statement [125] print_uint_at::w#0 = > print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement [127] print_uint_at::w#1 = < print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_uint_at::w#1 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement [125] print_uint_at::w#0 = _word1_ print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement [127] print_uint_at::w#1 = _word0_ print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_uint_at::w#1 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement 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 } always clobbers reg byte a reg byte x
Removing always clobbered register reg byte x as potential for zp[1]:34 [ anim::x#0 ]
Removing always clobbered register reg byte x as potential for zp[1]:35 [ anim::y#0 ]
@ -2298,8 +2298,8 @@ Statement [112] if(*mulf8s_prepared::memA>=0) goto mulf8s_prepared::@1 [ mulf8s_
Statement [114] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] ( anim:3::mulf8s_prepared:25 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#0 = mulf8s_prepared::b#4 anim::x#0 } } anim:3::mulf8s_prepared:29 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#1 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:35 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#2 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:40 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#3 = mulf8s_prepared::b#4 anim::x#0 } } ) always clobbers reg byte a
Statement [119] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA [ mulf8s_prepared::m#5 mulf8s_prepared::$12 ] ( anim:3::mulf8s_prepared:25 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#0 = mulf8s_prepared::b#4 anim::x#0 } } anim:3::mulf8s_prepared:29 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#1 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:35 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#2 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:40 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#3 = mulf8s_prepared::b#4 anim::x#0 } } ) always clobbers reg byte a
Statement [123] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( anim:3::clock:61 [ anim::angle#1 clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
Statement [125] print_uint_at::w#0 = > print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement [127] print_uint_at::w#1 = < print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_uint_at::w#1 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement [125] print_uint_at::w#0 = _word1_ print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement [127] print_uint_at::w#1 = _word0_ print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_uint_at::w#1 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement 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 } always clobbers reg byte a reg byte x
Statement [132] mulf8u_prepared::return#0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL [ mulf8u_prepared::return#0 ] ( anim:3::mulf8s_prepared:25::mulf8u_prepared:109 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] { { mulf8s_prepared::b#0 = mulf8s_prepared::b#4 anim::x#0 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } } anim:3::mulf8s_prepared:29::mulf8u_prepared:109 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] { { mulf8s_prepared::b#1 = mulf8s_prepared::b#4 anim::y#0 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } } anim:3::mulf8s_prepared:35::mulf8u_prepared:109 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] { { mulf8s_prepared::b#2 = mulf8s_prepared::b#4 anim::y#0 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } } anim:3::mulf8s_prepared:40::mulf8u_prepared:109 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] { { mulf8s_prepared::b#3 = mulf8s_prepared::b#4 anim::x#0 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } } ) always clobbers reg byte a
Statement [136] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( anim:3::print_ulong_at:66::print_uint_at:126 [ anim::angle#1 print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } anim:3::print_ulong_at:66::print_uint_at:128 [ anim::angle#1 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
@ -2361,8 +2361,8 @@ Statement [112] if(*mulf8s_prepared::memA>=0) goto mulf8s_prepared::@1 [ mulf8s_
Statement [114] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#4 [ mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] ( anim:3::mulf8s_prepared:25 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#0 = mulf8s_prepared::b#4 anim::x#0 } } anim:3::mulf8s_prepared:29 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#1 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:35 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#2 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:40 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8s_prepared::m#0 mulf8s_prepared::$11 ] { { mulf8s_prepared::b#3 = mulf8s_prepared::b#4 anim::x#0 } } ) always clobbers reg byte a
Statement [119] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA [ mulf8s_prepared::m#5 mulf8s_prepared::$12 ] ( anim:3::mulf8s_prepared:25 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#0 = mulf8s_prepared::b#4 anim::x#0 } } anim:3::mulf8s_prepared:29 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#1 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:35 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#2 = mulf8s_prepared::b#4 anim::y#0 } } anim:3::mulf8s_prepared:40 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::m#5 mulf8s_prepared::$12 ] { { mulf8s_prepared::b#3 = mulf8s_prepared::b#4 anim::x#0 } } ) always clobbers reg byte a
Statement [123] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( anim:3::clock:61 [ anim::angle#1 clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a
Statement [125] print_uint_at::w#0 = > print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement [127] print_uint_at::w#1 = < print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_uint_at::w#1 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement [125] print_uint_at::w#0 = _word1_ print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement [127] print_uint_at::w#1 = _word0_ print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( anim:3::print_ulong_at:66 [ anim::angle#1 print_uint_at::w#1 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a
Statement 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 } always clobbers reg byte a reg byte x
Statement [132] mulf8u_prepared::return#0 = *mulf8u_prepared::memB w= *mulf8u_prepared::resL [ mulf8u_prepared::return#0 ] ( anim:3::mulf8s_prepared:25::mulf8u_prepared:109 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] { { mulf8s_prepared::b#0 = mulf8s_prepared::b#4 anim::x#0 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } } anim:3::mulf8s_prepared:29::mulf8u_prepared:109 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::y#0 anim::xr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] { { mulf8s_prepared::b#1 = mulf8s_prepared::b#4 anim::y#0 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } } anim:3::mulf8s_prepared:35::mulf8u_prepared:109 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::x#0 anim::xr#0 anim::yr#0 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] { { mulf8s_prepared::b#2 = mulf8s_prepared::b#4 anim::y#0 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } } anim:3::mulf8s_prepared:40::mulf8u_prepared:109 [ anim::angle#9 anim::i#10 anim::sprite_msb#10 anim::yr#0 anim::xr#1 mulf8s_prepared::b#4 mulf8u_prepared::return#0 ] { { mulf8s_prepared::b#3 = mulf8s_prepared::b#4 anim::x#0 } { mulf8u_prepared::return#0 = mulf8u_prepared::return#2 } } ) always clobbers reg byte a
Statement [136] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( anim:3::print_ulong_at:66::print_uint_at:126 [ anim::angle#1 print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } anim:3::print_ulong_at:66::print_uint_at:128 [ anim::angle#1 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = anim::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a
@ -2815,7 +2815,7 @@ anim: {
lda.z yr+1
adc.z __12+1
sta.z yr+1
// [44] anim::$14 = > anim::xr#1 -- vbuaa=_hi_vwsz1
// [44] anim::$14 = > anim::xr#1 -- vbuaa=_byte1_vwsz1
lda.z xr+1
// [45] anim::xpos#0 = (signed byte)anim::$14 + $18+$95 -- vwsz1=vbsaa_plus_vwsc1
tax
@ -2831,7 +2831,7 @@ anim: {
sta.z xpos+1
// [46] anim::sprite_msb#1 = anim::sprite_msb#10 >> 1 -- vbuz1=vbuz1_ror_1
lsr.z sprite_msb
// [47] anim::$17 = > anim::xpos#0 -- vbuaa=_hi_vwsz1
// [47] anim::$17 = > anim::xpos#0 -- vbuaa=_byte1_vwsz1
lda.z xpos+1
// [48] if(anim::$17==0) goto anim::@5 -- vbuaa_eq_0_then_la1
cmp #0
@ -2850,7 +2850,7 @@ anim: {
jmp __b5
// anim::@5
__b5:
// [51] anim::$21 = > anim::yr#1 -- vbuaa=_hi_vwsz1
// [51] anim::$21 = > anim::yr#1 -- vbuaa=_byte1_vwsz1
lda.z yr+1
// [52] anim::ypos#0 = anim::$21 + $59+$33 -- vbuyy=vbuaa_plus_vbuc1
clc
@ -2860,7 +2860,7 @@ anim: {
lda.z i
asl
tax
// [54] anim::$24 = < anim::xpos#0 -- vbuaa=_lo_vwsz1
// [54] anim::$24 = < anim::xpos#0 -- vbuaa=_byte0_vwsz1
lda.z xpos
// [55] SPRITES_XPOS[anim::i2#0] = anim::$24 -- pbuc1_derefidx_vbuxx=vbuaa
sta SPRITES_XPOS,x
@ -3086,12 +3086,12 @@ mulf_init: {
jmp __b3
// mulf_init::@3
__b3:
// [90] mulf_init::$4 = < mulf_init::sqr#3 -- vbuaa=_lo_vwuz1
// [90] mulf_init::$4 = < mulf_init::sqr#3 -- vbuaa=_byte0_vwuz1
lda.z sqr
// [91] *mulf_init::sqr1_lo#2 = mulf_init::$4 -- _deref_pbuz1=vbuaa
ldy #0
sta (sqr1_lo),y
// [92] mulf_init::$5 = > mulf_init::sqr#3 -- vbuaa=_hi_vwuz1
// [92] mulf_init::$5 = > mulf_init::sqr#3 -- vbuaa=_byte1_vwuz1
lda.z sqr+1
// [93] *mulf_init::sqr1_hi#2 = mulf_init::$5 -- _deref_pbuz1=vbuaa
ldy #0
@ -3198,13 +3198,13 @@ mulf8s_prepared: {
jmp __b3
// mulf8s_prepared::@3
__b3:
// [113] mulf8s_prepared::$6 = > mulf8s_prepared::m#0 -- vbuaa=_hi_vwuz1
// [113] mulf8s_prepared::$6 = > mulf8s_prepared::m#0 -- vbuaa=_byte1_vwuz1
lda.z m+1
// [114] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#4 -- vbuaa=vbuaa_minus_vbuyy
sty.z $ff
sec
sbc.z $ff
// [115] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 hi= mulf8s_prepared::$11 -- vwuz1=vwuz1_sethi_vbuaa
// [115] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [116] phi from mulf8s_prepared::@3 mulf8s_prepared::@5 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1]
__b1_from___b3:
@ -3219,12 +3219,12 @@ mulf8s_prepared: {
jmp __b4
// mulf8s_prepared::@4
__b4:
// [118] mulf8s_prepared::$9 = > mulf8s_prepared::m#5 -- vbuaa=_hi_vwuz1
// [118] mulf8s_prepared::$9 = > mulf8s_prepared::m#5 -- vbuaa=_byte1_vwuz1
lda.z m+1
// [119] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA -- vbuaa=vbuaa_minus__deref_pbuc1
sec
sbc memA
// [120] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12 -- vwuz1=vwuz1_sethi_vbuaa
// [120] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [121] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2]
__b2_from___b1:
@ -3269,7 +3269,7 @@ clock: {
// print_ulong_at(dword zp($11) dw)
print_ulong_at: {
.label dw = $11
// [125] print_uint_at::w#0 = > print_ulong_at::dw#0 -- vwuz1=_hi_vduz2
// [125] print_uint_at::w#0 = _word1_ print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
lda.z dw+2
sta.z print_uint_at.w
lda.z dw+3
@ -3287,7 +3287,7 @@ print_ulong_at: {
jmp __b1
// print_ulong_at::@1
__b1:
// [127] print_uint_at::w#1 = < print_ulong_at::dw#0 -- vwuz1=_lo_vduz2
// [127] print_uint_at::w#1 = _word0_ print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
lda.z dw
sta.z print_uint_at.w
lda.z dw+1
@ -3348,7 +3348,7 @@ mulf8u_prepared: {
print_uint_at: {
.label w = $d
.label at = $f
// [135] print_uchar_at::b#0 = > print_uint_at::w#2 -- vbuz1=_hi_vwuz2
// [135] print_uchar_at::b#0 = > print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
lda.z w+1
sta.z print_uchar_at.b
// [136] print_uchar_at::at#0 = print_uint_at::at#2
@ -3361,7 +3361,7 @@ print_uint_at: {
jmp __b1
// print_uint_at::@1
__b1:
// [138] print_uchar_at::b#1 = < print_uint_at::w#2 -- vbuz1=_lo_vwuz2
// [138] print_uchar_at::b#1 = < print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
lda.z w
sta.z print_uchar_at.b
// [139] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1
@ -4134,10 +4134,10 @@ anim: {
lda.z yr+1
adc.z __12+1
sta.z yr+1
// >xr
// [44] anim::$14 = > anim::xr#1 -- vbuaa=_hi_vwsz1
// BYTE1(xr)
// [44] anim::$14 = > anim::xr#1 -- vbuaa=_byte1_vwsz1
lda.z xr+1
// signed int xpos = ((signed char) >xr) + 24 /*border*/ + 149
// signed int xpos = ((signed char) BYTE1(xr)) + 24 /*border*/ + 149
// [45] anim::xpos#0 = (signed byte)anim::$14 + $18+$95 -- vwsz1=vbsaa_plus_vwsc1
tax
clc
@ -4153,9 +4153,9 @@ anim: {
// sprite_msb = sprite_msb/2
// [46] anim::sprite_msb#1 = anim::sprite_msb#10 >> 1 -- vbuz1=vbuz1_ror_1
lsr.z sprite_msb
// >xpos
// [47] anim::$17 = > anim::xpos#0 -- vbuaa=_hi_vwsz1
// if(>xpos!=0)
// BYTE1(xpos)
// [47] anim::$17 = > anim::xpos#0 -- vbuaa=_byte1_vwsz1
// if(BYTE1(xpos)!=0)
// [48] if(anim::$17==0) goto anim::@5 -- vbuaa_eq_0_then_la1
cmp #0
beq __b5
@ -4169,10 +4169,10 @@ anim: {
// [50] phi anim::sprite_msb#5 = anim::sprite_msb#1 [phi:anim::@13/anim::@6->anim::@5#0] -- register_copy
// anim::@5
__b5:
// (>yr) + 89
// [51] anim::$21 = > anim::yr#1 -- vbuaa=_hi_vwsz1
// BYTE1(yr) + 89
// [51] anim::$21 = > anim::yr#1 -- vbuaa=_byte1_vwsz1
lda.z yr+1
// char ypos = (>yr) + 89 /*center*/+ 51
// char ypos = BYTE1(yr) + 89 /*center*/+ 51
// [52] anim::ypos#0 = anim::$21 + $59+$33 -- vbuyy=vbuaa_plus_vbuc1
clc
adc #$59+$33
@ -4182,10 +4182,10 @@ anim: {
lda.z i
asl
tax
// <xpos
// [54] anim::$24 = < anim::xpos#0 -- vbuaa=_lo_vwsz1
// BYTE0(xpos)
// [54] anim::$24 = < anim::xpos#0 -- vbuaa=_byte0_vwsz1
lda.z xpos
// SPRITES_XPOS[i2] = <xpos
// SPRITES_XPOS[i2] = BYTE0(xpos)
// [55] SPRITES_XPOS[anim::i2#0] = anim::$24 -- pbuc1_derefidx_vbuxx=vbuaa
sta SPRITES_XPOS,x
// SPRITES_YPOS[i2] = ypos
@ -4405,20 +4405,20 @@ mulf_init: {
// [89] phi mulf_init::sqr#3 = mulf_init::sqr#4 [phi:mulf_init::@2/mulf_init::@4->mulf_init::@3#1] -- register_copy
// mulf_init::@3
__b3:
// <sqr
// [90] mulf_init::$4 = < mulf_init::sqr#3 -- vbuaa=_lo_vwuz1
// BYTE0(sqr)
// [90] mulf_init::$4 = < mulf_init::sqr#3 -- vbuaa=_byte0_vwuz1
lda.z sqr
// *sqr1_lo = <sqr
// *sqr1_lo = BYTE0(sqr)
// [91] *mulf_init::sqr1_lo#2 = mulf_init::$4 -- _deref_pbuz1=vbuaa
ldy #0
sta (sqr1_lo),y
// >sqr
// [92] mulf_init::$5 = > mulf_init::sqr#3 -- vbuaa=_hi_vwuz1
// BYTE1(sqr)
// [92] mulf_init::$5 = > mulf_init::sqr#3 -- vbuaa=_byte1_vwuz1
lda.z sqr+1
// *sqr1_hi++ = >sqr
// *sqr1_hi++ = BYTE1(sqr)
// [93] *mulf_init::sqr1_hi#2 = mulf_init::$5 -- _deref_pbuz1=vbuaa
sta (sqr1_hi),y
// *sqr1_hi++ = >sqr;
// *sqr1_hi++ = BYTE1(sqr);
// [94] mulf_init::sqr1_hi#1 = ++ mulf_init::sqr1_hi#2 -- pbuz1=_inc_pbuz1
inc.z sqr1_hi
bne !+
@ -4525,15 +4525,15 @@ mulf8s_prepared: {
cmp #0
bpl __b1
// mulf8s_prepared::@3
// >m
// [113] mulf8s_prepared::$6 = > mulf8s_prepared::m#0 -- vbuaa=_hi_vwuz1
// BYTE1(m)
// [113] mulf8s_prepared::$6 = > mulf8s_prepared::m#0 -- vbuaa=_byte1_vwuz1
lda.z m+1
// >m = (>m)-(char)b
// BYTE1(m) = BYTE1(m)-(char)b
// [114] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#4 -- vbuaa=vbuaa_minus_vbuyy
sty.z $ff
sec
sbc.z $ff
// [115] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 hi= mulf8s_prepared::$11 -- vwuz1=vwuz1_sethi_vbuaa
// [115] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [116] phi from mulf8s_prepared::@3 mulf8s_prepared::@5 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1]
// [116] phi mulf8s_prepared::m#5 = mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1#0] -- register_copy
@ -4544,14 +4544,14 @@ mulf8s_prepared: {
cpy #0
bpl __b2
// mulf8s_prepared::@4
// >m
// [118] mulf8s_prepared::$9 = > mulf8s_prepared::m#5 -- vbuaa=_hi_vwuz1
// BYTE1(m)
// [118] mulf8s_prepared::$9 = > mulf8s_prepared::m#5 -- vbuaa=_byte1_vwuz1
lda.z m+1
// >m = (>m)-(char)*memA
// BYTE1(m) = BYTE1(m)-(char)*memA
// [119] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA -- vbuaa=vbuaa_minus__deref_pbuc1
sec
sbc memA
// [120] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12 -- vwuz1=vwuz1_sethi_vbuaa
// [120] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [121] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2]
// [121] phi mulf8s_prepared::m#4 = mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy
@ -4592,8 +4592,8 @@ clock: {
// print_ulong_at(dword zp($11) dw)
print_ulong_at: {
.label dw = $11
// print_uint_at(>dw, at)
// [125] print_uint_at::w#0 = > print_ulong_at::dw#0 -- vwuz1=_hi_vduz2
// print_uint_at(WORD1(dw), at)
// [125] print_uint_at::w#0 = _word1_ print_ulong_at::dw#0 -- vwuz1=_word1_vduz2
lda.z dw+2
sta.z print_uint_at.w
lda.z dw+3
@ -4608,8 +4608,8 @@ print_ulong_at: {
// [134] phi print_uint_at::w#2 = print_uint_at::w#0 [phi:print_ulong_at->print_uint_at#1] -- register_copy
jsr print_uint_at
// print_ulong_at::@1
// print_uint_at(<dw, at+4)
// [127] print_uint_at::w#1 = < print_ulong_at::dw#0 -- vwuz1=_lo_vduz2
// print_uint_at(WORD0(dw), at+4)
// [127] print_uint_at::w#1 = _word0_ print_ulong_at::dw#0 -- vwuz1=_word0_vduz2
lda.z dw
sta.z print_uint_at.w
lda.z dw+1
@ -4670,8 +4670,8 @@ mulf8u_prepared: {
print_uint_at: {
.label w = $d
.label at = $f
// print_uchar_at(>w, at)
// [135] print_uchar_at::b#0 = > print_uint_at::w#2 -- vbuz1=_hi_vwuz2
// print_uchar_at(BYTE1(w), at)
// [135] print_uchar_at::b#0 = > print_uint_at::w#2 -- vbuz1=_byte1_vwuz2
lda.z w+1
sta.z print_uchar_at.b
// [136] print_uchar_at::at#0 = print_uint_at::at#2
@ -4681,8 +4681,8 @@ print_uint_at: {
// [142] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy
jsr print_uchar_at
// print_uint_at::@1
// print_uchar_at(<w, at+2)
// [138] print_uchar_at::b#1 = < print_uint_at::w#2 -- vbuz1=_lo_vwuz2
// print_uchar_at(BYTE0(w), at+2)
// [138] print_uchar_at::b#1 = < print_uint_at::w#2 -- vbuz1=_byte0_vwuz2
lda.z w
sta.z print_uchar_at.b
// [139] print_uchar_at::at#1 = print_uint_at::at#2 + 2 -- pbuz1=pbuz1_plus_vbuc1

View File

@ -792,8 +792,9 @@ bitmap_plot: {
lda.z plotter+1
adc.z __0+1
sta.z plotter+1
// *plotter |= bitmap_plot_bit[(char)x]
// BYTE0(x)
ldx.z x
// *plotter |= bitmap_plot_bit[BYTE0(x)]
lda bitmap_plot_bit,x
ldy #0
ora (plotter),y

View File

@ -355,7 +355,7 @@ bitmap_plot: scope:[bitmap_plot] from render_sine::@4 render_sine::@6
[172] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#2] w= bitmap_plot_ylo[bitmap_plot::y#2]
[173] bitmap_plot::$0 = bitmap_plot::x#2 & $fff8
[174] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
[175] bitmap_plot::$1 = (byte)bitmap_plot::x#2
[175] bitmap_plot::$1 = < bitmap_plot::x#2
[176] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot

View File

@ -642,7 +642,7 @@ bitmap_plot: scope:[bitmap_plot] from render_sine::@5 render_sine::@7
bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#2], bitmap_plot_ylo[bitmap_plot::y#2] }
bitmap_plot::$0 = bitmap_plot::x#2 & $fff8
bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0
bitmap_plot::$1 = (byte)bitmap_plot::x#2
bitmap_plot::$1 = < bitmap_plot::x#2
*bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
@ -2946,7 +2946,7 @@ bitmap_plot: scope:[bitmap_plot] from render_sine::@4 render_sine::@6
[172] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#2] w= bitmap_plot_ylo[bitmap_plot::y#2]
[173] bitmap_plot::$0 = bitmap_plot::x#2 & $fff8
[174] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0
[175] bitmap_plot::$1 = (byte)bitmap_plot::x#2
[175] bitmap_plot::$1 = < bitmap_plot::x#2
[176] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1]
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
@ -3078,7 +3078,7 @@ byte* bitmap_plot::plotter#1 1501.5
word bitmap_plot::x
word bitmap_plot::x#0 101.0
word bitmap_plot::x#1 101.0
word bitmap_plot::x#2 300.75
word bitmap_plot::x#2 551.0
byte bitmap_plot::y
byte bitmap_plot::y#0 202.0
byte bitmap_plot::y#1 202.0
@ -3874,7 +3874,7 @@ Uplift Scope [divr16u] 90,147.42: zp[2]:42 [ divr16u::rem#5 divr16u::rem#10 divr
Uplift Scope [mulu16_sel] 21,012: zp[2]:49 [ mulu16_sel::v1#5 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 mulu16_sel::v1#3 ] 20,002: zp[4]:180 [ mulu16_sel::$0 ] 20,002: zp[4]:184 [ mulu16_sel::$1 ] 15,010.5: zp[2]:51 [ mulu16_sel::v2#5 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 mulu16_sel::v2#3 ] 2,143.71: zp[2]:188 [ mulu16_sel::return#12 ] 2,002: zp[2]:126 [ mulu16_sel::return#0 ] 2,002: zp[2]:130 [ mulu16_sel::return#1 ] 2,002: zp[2]:134 [ mulu16_sel::return#2 ] 2,002: zp[2]:140 [ mulu16_sel::return#10 ] 2,002: zp[2]:144 [ mulu16_sel::return#11 ] 1,666.83: zp[1]:53 [ mulu16_sel::select#5 ]
Uplift Scope [sin16s] 11,061.5: zp[4]:27 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] 4,705: zp[2]:31 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] 2,002: zp[4]:120 [ sin16s::$4 ] 2,002: zp[2]:128 [ sin16s::x2#0 ] 2,002: zp[2]:136 [ sin16s::x3_6#0 ] 2,002: zp[2]:142 [ sin16s::x4#0 ] 2,002: zp[2]:146 [ sin16s::x5#0 ] 2,002: zp[2]:148 [ sin16s::x5_128#0 ] 500.5: zp[2]:132 [ sin16s::x3#0 ] 500.5: zp[2]:150 [ sin16s::usinx#1 ] 318.5: zp[2]:124 [ sin16s::x1#0 ] 202: zp[2]:78 [ sin16s::return#0 ] 166.83: zp[2]:138 [ sin16s::usinx#0 ] 30.33: zp[1]:26 [ sin16s::isUpper#2 ]
Uplift Scope [mul16s] 5,005: zp[4]:33 [ mul16s::m#4 mul16s::m#1 mul16s::m#0 ] 2,002: zp[2]:156 [ mul16s::$6 ] 2,002: zp[2]:158 [ mul16s::$11 ] 367.33: zp[4]:160 [ mul16s::return#1 ] 220.4: zp[2]:80 [ mul16s::a#0 ] 202: zp[4]:82 [ mul16s::return#0 ]
Uplift Scope [bitmap_plot] 2,608: zp[1]:39 [ bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 ] 2,002: zp[2]:167 [ bitmap_plot::$0 ] 2,002: zp[1]:171 [ bitmap_plot::$1 ] 1,501.5: zp[2]:169 [ bitmap_plot::plotter#1 ] 502.75: zp[2]:40 [ bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 ] 500.5: zp[2]:165 [ bitmap_plot::plotter#0 ]
Uplift Scope [bitmap_plot] 2,608: zp[1]:39 [ bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 ] 2,002: zp[2]:167 [ bitmap_plot::$0 ] 2,002: zp[1]:171 [ bitmap_plot::$1 ] 1,501.5: zp[2]:169 [ bitmap_plot::plotter#1 ] 753: zp[2]:40 [ bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 ] 500.5: zp[2]:165 [ bitmap_plot::plotter#0 ]
Uplift Scope [memset] 3,572.33: zp[2]:24 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 183.67: zp[2]:106 [ memset::end#0 ] 125.12: zp[1]:23 [ memset::c#4 ] 101: zp[2]:19 [ memset::num#2 ] 0: zp[2]:21 [ memset::str#3 ]
Uplift Scope [bitmap_init] 366.12: zp[2]:5 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 319.83: zp[1]:2 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 202: zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ] 202: zp[1]:4 [ bitmap_init::y#2 bitmap_init::y#1 ] 202: zp[1]:67 [ bitmap_init::$4 ] 202: zp[1]:68 [ bitmap_init::$5 ] 202: zp[1]:69 [ bitmap_init::$6 ] 50.5: zp[1]:66 [ bitmap_init::$7 ]
Uplift Scope [render_sine] 221.24: zp[2]:17 [ render_sine::xpos#3 render_sine::xpos#9 render_sine::xpos#1 ] 218.16: zp[2]:15 [ render_sine::sin_idx#2 render_sine::sin_idx#1 ] 202: zp[2]:94 [ render_sine::$1 ] 202: zp[2]:96 [ render_sine::sin_val#0 ] 202: zp[2]:100 [ render_sine::$4 ] 202: zp[2]:102 [ render_sine::sin2_val#0 ] 101: zp[1]:99 [ render_sine::ypos#0 ] 101: zp[1]:105 [ render_sine::ypos2#0 ] 30.3: zp[2]:92 [ render_sine::$11 ]
@ -5167,7 +5167,7 @@ bitmap_plot: {
lda.z plotter+1
adc.z __0+1
sta.z plotter+1
// [175] bitmap_plot::$1 = (byte)bitmap_plot::x#2 -- vbuxx=_byte_vwuz1
// [175] bitmap_plot::$1 = < bitmap_plot::x#2 -- vbuxx=_byte0_vwuz1
ldx.z x
// [176] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
lda bitmap_plot_bit,x
@ -5748,7 +5748,7 @@ byte* bitmap_plot::plotter#1 plotter zp[2]:35 1501.5
word bitmap_plot::x
word bitmap_plot::x#0 x zp[2]:8 101.0
word bitmap_plot::x#1 x zp[2]:8 101.0
word bitmap_plot::x#2 x zp[2]:8 300.75
word bitmap_plot::x#2 x zp[2]:8 551.0
byte bitmap_plot::y
byte bitmap_plot::y#0 reg byte x 202.0
byte bitmap_plot::y#1 reg byte x 202.0
@ -7145,9 +7145,10 @@ bitmap_plot: {
lda.z plotter+1
adc.z __0+1
sta.z plotter+1
// *plotter |= bitmap_plot_bit[(char)x]
// [175] bitmap_plot::$1 = (byte)bitmap_plot::x#2 -- vbuxx=_byte_vwuz1
// BYTE0(x)
// [175] bitmap_plot::$1 = < bitmap_plot::x#2 -- vbuxx=_byte0_vwuz1
ldx.z x
// *plotter |= bitmap_plot_bit[BYTE0(x)]
// [176] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$1] -- _deref_pbuz1=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
lda bitmap_plot_bit,x
ldy #0

View File

@ -57,7 +57,7 @@ byte* bitmap_plot::plotter#1 plotter zp[2]:35 1501.5
word bitmap_plot::x
word bitmap_plot::x#0 x zp[2]:8 101.0
word bitmap_plot::x#1 x zp[2]:8 101.0
word bitmap_plot::x#2 x zp[2]:8 300.75
word bitmap_plot::x#2 x zp[2]:8 551.0
byte bitmap_plot::y
byte bitmap_plot::y#0 reg byte x 202.0
byte bitmap_plot::y#1 reg byte x 202.0

View File

@ -3540,48 +3540,6 @@ Uplift Scope [progress_inc]
Uplifting [gen_chargen_sprite] best 1064084 combination zp[1]:39 [ gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ] zp[2]:42 [ gen_chargen_sprite::sprite#3 gen_chargen_sprite::sprite#10 gen_chargen_sprite::sprite#11 gen_chargen_sprite::sprite#0 gen_chargen_sprite::sprite#2 gen_chargen_sprite::sprite#4 gen_chargen_sprite::sprite#1 ] reg byte y [ gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::s_gen_cnt#1 ] reg byte a [ gen_chargen_sprite::$5 ] reg byte x [ gen_chargen_sprite::b#2 gen_chargen_sprite::b#1 ] reg byte a [ gen_chargen_sprite::$2 ] zp[1]:37 [ gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ] zp[1]:36 [ gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 ] zp[1]:38 [ gen_chargen_sprite::c#3 ] zp[1]:35 [ gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 ] zp[2]:67 [ gen_chargen_sprite::chargen#0 ] zp[2]:63 [ gen_chargen_sprite::$14 ] zp[2]:65 [ gen_chargen_sprite::$0 ] zp[1]:58 [ gen_chargen_sprite::ch#0 ]
Limited combination testing to 100 combinations of 9216 possible.
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Warning! Unknown fragment for statement [35] anim::x_msb#1 = anim::$7 | anim::$8
Missing ASM fragment Fragment not found vbuz1=vbuz2_bor__byte1_vwuz3. Attempted variations vbuz1=vbuz2_bor__byte1_vwuz3
/Users/jespergravgaard/c64/kickc/src/test/kc/examples/c64/sinsprites/sinus-sprites.c:77:9:
Uplifting [anim] best 1062884 combination zp[1]:9 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ] zp[1]:5 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 ] reg byte a [ anim::$8 ] reg byte a [ anim::$10 ] zp[1]:10 [ anim::j#2 anim::j#1 ] zp[1]:6 [ anim::x_msb#2 anim::x_msb#1 ] zp[1]:54 [ anim::$7 ] zp[1]:8 [ anim::j2#2 anim::j2#1 ] zp[2]:52 [ anim::x#0 ]
Limited combination testing to 100 combinations of 19440 possible.
Uplifting [setFAC] best 1062872 combination reg byte a [ setFAC::prepareMEM1_$0 ] reg byte a [ setFAC::prepareMEM1_$1 ] zp[2]:44 [ setFAC::prepareMEM1_mem#0 setFAC::w#0 setFAC::w#4 setFAC::w#3 setFAC::w#1 ]

View File

@ -248,20 +248,20 @@ sin16s_genb: {
// }
rts
__b2:
// sin16sb(>x)
// sin16sb(WORD1(x))
lda.z x+2
sta.z sin16sb.x
lda.z x+3
sta.z sin16sb.x+1
jsr sin16sb
// *sintab++ = sin16sb(>x)
// *sintab++ = sin16sb(WORD1(x))
ldy #0
lda.z __3
sta (sintab),y
iny
lda.z __3+1
sta (sintab),y
// *sintab++ = sin16sb(>x);
// *sintab++ = sin16sb(WORD1(x));
lda #SIZEOF_SIGNED_WORD
clc
adc.z sintab
@ -356,7 +356,7 @@ div32u16u: {
.label return = $1f
.label quotient_hi = $27
.label quotient_lo = $29
// divr16u(>dividend, divisor, 0)
// divr16u(WORD1(dividend), divisor, 0)
lda #<PI2_u4f28>>$10
sta.z divr16u.dividend
lda #>PI2_u4f28>>$10
@ -365,20 +365,20 @@ div32u16u: {
sta.z divr16u.rem
sta.z divr16u.rem+1
jsr divr16u
// divr16u(>dividend, divisor, 0)
// unsigned int quotient_hi = divr16u(>dividend, divisor, 0)
// divr16u(WORD1(dividend), divisor, 0)
// unsigned int quotient_hi = divr16u(WORD1(dividend), divisor, 0)
lda.z divr16u.return
sta.z quotient_hi
lda.z divr16u.return+1
sta.z quotient_hi+1
// divr16u(<dividend, divisor, rem16u)
// divr16u(WORD0(dividend), divisor, rem16u)
lda #<PI2_u4f28&$ffff
sta.z divr16u.dividend
lda #>PI2_u4f28&$ffff
sta.z divr16u.dividend+1
jsr divr16u
// divr16u(<dividend, divisor, rem16u)
// unsigned int quotient_lo = divr16u(<dividend, divisor, rem16u)
// divr16u(WORD0(dividend), divisor, rem16u)
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
// unsigned long quotient = { quotient_hi, quotient_lo}
lda.z quotient_hi
sta.z return+2
@ -497,7 +497,7 @@ sin16s: {
rol.z __4+1
rol.z __4+2
rol.z __4+3
// unsigned int x1 = >x<<3
// unsigned int x1 = WORD1(x<<3)
lda.z __4+2
sta.z x1
lda.z __4+3
@ -818,10 +818,10 @@ print_char: {
// print_uint(word zp($d) w)
print_uint: {
.label w = $d
// print_uchar(>w)
// print_uchar(BYTE1(w))
ldx.z w+1
jsr print_uchar
// print_uchar(<w)
// print_uchar(BYTE0(w))
ldx.z w
jsr print_uchar
// }
@ -845,11 +845,11 @@ divr16u: {
// rem = rem << 1
asl.z rem
rol.z rem+1
// >dividend
// BYTE1(dividend)
lda.z dividend+1
// >dividend & $80
// BYTE1(dividend) & $80
and #$80
// if( (>dividend & $80) != 0 )
// if( (BYTE1(dividend) & $80) != 0 )
cmp #0
beq __b2
// rem = rem | 1
@ -921,7 +921,7 @@ mulu16_sel: {
dex
bne !-
!e:
// >mul16u(v1, v2)<<select
// WORD1(mul16u(v1, v2)<<select)
lda.z __1+2
sta.z return
lda.z __1+3

View File

@ -93,7 +93,7 @@ sin16s_genb::@return: scope:[sin16s_genb] from sin16s_genb::@1
[42] return
to:@return
sin16s_genb::@2: scope:[sin16s_genb] from sin16s_genb::@1
[43] sin16sb::x#0 = > sin16s_genb::x#2
[43] sin16sb::x#0 = _word1_ sin16s_genb::x#2
[44] call sin16sb
[45] sin16sb::return#0 = sin16sb::return#1
to:sin16s_genb::@4
@ -197,7 +197,7 @@ sin16s::@5: scope:[sin16s] from sin16s::@1
sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5
[86] sin16s::x#6 = phi( sin16s::@1/sin16s::x#4, sin16s::@5/sin16s::x#2 )
[87] sin16s::$4 = sin16s::x#6 << 3
[88] sin16s::x1#0 = > sin16s::$4
[88] sin16s::x1#0 = _word1_ sin16s::$4
[89] mulu16_sel::v1#0 = sin16s::x1#0
[90] mulu16_sel::v2#0 = sin16s::x1#0
[91] call mulu16_sel
@ -362,7 +362,7 @@ print_uint::@return: scope:[print_uint] from print_uint::@1
word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem)
divr16u: scope:[divr16u] from div32u16u div32u16u::@1
[175] divr16u::dividend#5 = phi( div32u16u/>PI2_u4f28, div32u16u::@1/<PI2_u4f28 )
[175] divr16u::dividend#5 = phi( div32u16u/_word1_PI2_u4f28, div32u16u::@1/_word0_PI2_u4f28 )
[175] divr16u::rem#10 = phi( div32u16u/0, div32u16u::@1/divr16u::rem#4 )
to:divr16u::@1
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
@ -414,7 +414,7 @@ mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@
mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel
[198] mulu16_sel::$0 = mul16u::return#0
[199] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#10
[200] mulu16_sel::return#17 = > mulu16_sel::$1
[200] mulu16_sel::return#17 = _word1_ mulu16_sel::$1
to:mulu16_sel::@return
mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1
[201] return

File diff suppressed because one or more lines are too long

View File

@ -146,16 +146,16 @@ mulf_init: {
inc.z sqr+1
!:
__b3:
// <sqr
// BYTE0(sqr)
lda.z sqr
// *sqr1_lo = <sqr
// *sqr1_lo = BYTE0(sqr)
ldy #0
sta (sqr1_lo),y
// >sqr
// BYTE1(sqr)
lda.z sqr+1
// *sqr1_hi++ = >sqr
// *sqr1_hi++ = BYTE1(sqr)
sta (sqr1_hi),y
// *sqr1_hi++ = >sqr;
// *sqr1_hi++ = BYTE1(sqr);
inc.z sqr1_hi
bne !+
inc.z sqr1_hi+1
@ -1008,12 +1008,12 @@ mul16s: {
// if(a<0)
lda.z a+1
bpl __b1
// >m
// WORD1(m)
lda.z m+2
sta.z __6
lda.z m+3
sta.z __6+1
// >m = (>m)-(unsigned int)b
// WORD1(m) = WORD1(m)-(unsigned int)b
lda.z __11
sec
sbc.z b
@ -1029,12 +1029,12 @@ mul16s: {
// if(b<0)
lda.z b+1
bpl __b2
// >m
// WORD1(m)
lda.z m+2
sta.z __9
lda.z m+3
sta.z __9+1
// >m = (>m)-(unsigned int)a
// WORD1(m) = WORD1(m)-(unsigned int)a
lda.z __12
sec
sbc.z a
@ -1078,12 +1078,12 @@ mulf16s: {
// if(a<0)
lda.z a+1
bpl __b1
// >m
// WORD1(m)
lda.z m+2
sta.z __6
lda.z m+3
sta.z __6+1
// >m = (>m)-(unsigned int)b
// WORD1(m) = WORD1(m)-(unsigned int)b
lda.z __11
sec
sbc.z b
@ -1099,12 +1099,12 @@ mulf16s: {
// if(b<0)
lda.z b+1
bpl __b2
// >m
// WORD1(m)
lda.z m+2
sta.z __9
lda.z m+3
sta.z __9+1
// >m = (>m)-(unsigned int)a
// WORD1(m) = WORD1(m)-(unsigned int)a
lda.z __12
sec
sbc.z a
@ -1219,10 +1219,10 @@ print_char: {
// print_uint(word zp($18) w)
print_uint: {
.label w = $18
// print_uchar(>w)
// print_uchar(BYTE1(w))
ldx.z w+1
jsr print_uchar
// print_uchar(<w)
// print_uchar(BYTE0(w))
ldx.z w
jsr print_uchar
// }
@ -1232,13 +1232,13 @@ print_uint: {
// print_ulong(dword zp(8) dw)
print_ulong: {
.label dw = 8
// print_uint(>dw)
// print_uint(WORD1(dw))
lda.z dw+2
sta.z print_uint.w
lda.z dw+3
sta.z print_uint.w+1
jsr print_uint
// print_uint(<dw)
// print_uint(WORD0(dw))
lda.z dw
sta.z print_uint.w
lda.z dw+1

View File

@ -469,18 +469,18 @@ mul16s::@5: scope:[mul16s] from mul16s
[215] if(mul16s::a#0>=0) goto mul16s::@1
to:mul16s::@3
mul16s::@3: scope:[mul16s] from mul16s::@5
[216] mul16s::$6 = > mul16s::m#0
[216] mul16s::$6 = _word1_ mul16s::m#0
[217] mul16s::$11 = mul16s::$6 - (word)mul16s::b#0
[218] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11
[218] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11
to:mul16s::@1
mul16s::@1: scope:[mul16s] from mul16s::@3 mul16s::@5
[219] mul16s::m#5 = phi( mul16s::@3/mul16s::m#1, mul16s::@5/mul16s::m#0 )
[220] if(mul16s::b#0>=0) goto mul16s::@2
to:mul16s::@4
mul16s::@4: scope:[mul16s] from mul16s::@1
[221] mul16s::$9 = > mul16s::m#5
[221] mul16s::$9 = _word1_ mul16s::m#5
[222] mul16s::$12 = mul16s::$9 - (word)mul16s::a#0
[223] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12
[223] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12
to:mul16s::@2
mul16s::@2: scope:[mul16s] from mul16s::@1 mul16s::@4
[224] mul16s::m#4 = phi( mul16s::@1/mul16s::m#5, mul16s::@4/mul16s::m#2 )
@ -502,18 +502,18 @@ mulf16s::@5: scope:[mulf16s] from mulf16s
[232] if(mulf16s::a#0>=0) goto mulf16s::@1
to:mulf16s::@3
mulf16s::@3: scope:[mulf16s] from mulf16s::@5
[233] mulf16s::$6 = > mulf16s::m#0
[233] mulf16s::$6 = _word1_ mulf16s::m#0
[234] mulf16s::$11 = mulf16s::$6 - (word)mulf16s::b#0
[235] mulf16s::m#1 = mulf16s::m#0 hi= mulf16s::$11
[235] mulf16s::m#1 = mulf16s::m#0 word1= mulf16s::$11
to:mulf16s::@1
mulf16s::@1: scope:[mulf16s] from mulf16s::@3 mulf16s::@5
[236] mulf16s::m#5 = phi( mulf16s::@3/mulf16s::m#1, mulf16s::@5/mulf16s::m#0 )
[237] if(mulf16s::b#0>=0) goto mulf16s::@2
to:mulf16s::@4
mulf16s::@4: scope:[mulf16s] from mulf16s::@1
[238] mulf16s::$9 = > mulf16s::m#5
[238] mulf16s::$9 = _word1_ mulf16s::m#5
[239] mulf16s::$12 = mulf16s::$9 - (word)mulf16s::a#0
[240] mulf16s::m#2 = mulf16s::m#5 hi= mulf16s::$12
[240] mulf16s::m#2 = mulf16s::m#5 word1= mulf16s::$12
to:mulf16s::@2
mulf16s::@2: scope:[mulf16s] from mulf16s::@1 mulf16s::@4
[241] mulf16s::m#4 = phi( mulf16s::@1/mulf16s::m#5, mulf16s::@4/mulf16s::m#2 )
@ -602,11 +602,11 @@ void print_ulong(dword print_ulong::dw)
print_ulong: scope:[print_ulong] from mul16u_error::@5 mul16u_error::@7 mul16u_error::@9 print_slong::@2
[277] print_char_cursor#141 = phi( mul16u_error::@5/print_char_cursor#1, mul16u_error::@7/print_char_cursor#1, mul16u_error::@9/print_char_cursor#1, print_slong::@2/print_char_cursor#21 )
[277] print_ulong::dw#4 = phi( mul16u_error::@5/print_ulong::dw#1, mul16u_error::@7/print_ulong::dw#2, mul16u_error::@9/print_ulong::dw#3, print_slong::@2/print_ulong::dw#0 )
[278] print_uint::w#1 = > print_ulong::dw#4
[278] print_uint::w#1 = _word1_ print_ulong::dw#4
[279] call print_uint
to:print_ulong::@1
print_ulong::@1: scope:[print_ulong] from print_ulong
[280] print_uint::w#2 = < print_ulong::dw#4
[280] print_uint::w#2 = _word0_ print_ulong::dw#4
[281] call print_uint
to:print_ulong::@return
print_ulong::@return: scope:[print_ulong] from print_ulong::@1

File diff suppressed because one or more lines are too long

View File

@ -150,16 +150,16 @@ mulf_init: {
inc.z sqr+1
!:
__b3:
// <sqr
// BYTE0(sqr)
lda.z sqr
// *sqr1_lo = <sqr
// *sqr1_lo = BYTE0(sqr)
ldy #0
sta (sqr1_lo),y
// >sqr
// BYTE1(sqr)
lda.z sqr+1
// *sqr1_hi++ = >sqr
// *sqr1_hi++ = BYTE1(sqr)
sta (sqr1_hi),y
// *sqr1_hi++ = >sqr;
// *sqr1_hi++ = BYTE1(sqr);
inc.z sqr1_hi
bne !+
inc.z sqr1_hi+1
@ -607,10 +607,10 @@ print_ln: {
// print_uint(word zp(2) w)
print_uint: {
.label w = 2
// print_uchar(>w)
// print_uchar(BYTE1(w))
ldx.z w+1
jsr print_uchar
// print_uchar(<w)
// print_uchar(BYTE0(w))
ldx.z w
jsr print_uchar
// }
@ -877,9 +877,9 @@ mul8s: {
lda.z a
cmp #0
bpl __b1
// >m
// BYTE1(m)
lda.z m+1
// >m = (>m)-(char)b
// BYTE1(m) = BYTE1(m)-(char)b
sty.z $ff
sec
sbc.z $ff
@ -888,9 +888,9 @@ mul8s: {
// if(b<0)
cpy #0
bpl __b2
// >m
// BYTE1(m)
lda.z m+1
// >m = (>m)-(char)a
// BYTE1(m) = BYTE1(m)-(char)a
sec
sbc.z a
sta.z m+1
@ -1064,9 +1064,9 @@ mulf8s_prepared: {
lda memA
cmp #0
bpl __b1
// >m
// BYTE1(m)
lda.z m+1
// >m = (>m)-(char)b
// BYTE1(m) = BYTE1(m)-(char)b
sec
sbc.z b
sta.z m+1
@ -1075,9 +1075,9 @@ mulf8s_prepared: {
lda.z b
cmp #0
bpl __b2
// >m
// BYTE1(m)
lda.z m+1
// >m = (>m)-(char)*memA
// BYTE1(m) = BYTE1(m)-(char)*memA
sec
sbc memA
sta.z m+1

View File

@ -555,7 +555,7 @@ mul8s::@5: scope:[mul8s] from mul8s
mul8s::@3: scope:[mul8s] from mul8s::@5
[250] mul8s::$6 = > mul8s::m#0
[251] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#0
[252] mul8s::m#1 = mul8s::m#0 hi= mul8s::$11
[252] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11
to:mul8s::@1
mul8s::@1: scope:[mul8s] from mul8s::@3 mul8s::@5
[253] mul8s::m#5 = phi( mul8s::@3/mul8s::m#1, mul8s::@5/mul8s::m#0 )
@ -564,7 +564,7 @@ mul8s::@1: scope:[mul8s] from mul8s::@3 mul8s::@5
mul8s::@4: scope:[mul8s] from mul8s::@1
[255] mul8s::$9 = > mul8s::m#5
[256] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#0
[257] mul8s::m#2 = mul8s::m#5 hi= mul8s::$12
[257] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12
to:mul8s::@2
mul8s::@2: scope:[mul8s] from mul8s::@1 mul8s::@4
[258] mul8s::m#4 = phi( mul8s::@1/mul8s::m#5, mul8s::@4/mul8s::m#2 )
@ -684,7 +684,7 @@ mulf8s_prepared::@5: scope:[mulf8s_prepared] from mulf8s_prepared
mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@5
[309] mulf8s_prepared::$6 = > mulf8s_prepared::m#0
[310] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#0
[311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 hi= mulf8s_prepared::$11
[311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11
to:mulf8s_prepared::@1
mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@5
[312] mulf8s_prepared::m#5 = phi( mulf8s_prepared::@3/mulf8s_prepared::m#1, mulf8s_prepared::@5/mulf8s_prepared::m#0 )
@ -693,7 +693,7 @@ mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_pr
mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1
[314] mulf8s_prepared::$9 = > mulf8s_prepared::m#5
[315] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA
[316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12
[316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12
to:mulf8s_prepared::@2
mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4
[317] mulf8s_prepared::m#4 = phi( mulf8s_prepared::@1/mulf8s_prepared::m#5, mulf8s_prepared::@4/mulf8s_prepared::m#2 )

View File

@ -366,7 +366,7 @@ mul8s::@3: scope:[mul8s] from mul8s::@5
mul8s::$13 = (byte)mul8s::b#3
mul8s::$7 = mul8s::$6 - mul8s::$13
mul8s::$11 = mul8s::$7
mul8s::m#1 = mul8s::m#3 hi= mul8s::$11
mul8s::m#1 = mul8s::m#3 byte1= mul8s::$11
to:mul8s::@1
mul8s::@2: scope:[mul8s] from mul8s::@1 mul8s::@4
mul8s::m#4 = phi( mul8s::@1/mul8s::m#6, mul8s::@4/mul8s::m#2 )
@ -379,7 +379,7 @@ mul8s::@4: scope:[mul8s] from mul8s::@1
mul8s::$14 = (byte)mul8s::a#3
mul8s::$10 = mul8s::$9 - mul8s::$14
mul8s::$12 = mul8s::$10
mul8s::m#2 = mul8s::m#5 hi= mul8s::$12
mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12
to:mul8s::@2
mul8s::@return: scope:[mul8s] from mul8s::@2
mul8s::return#3 = phi( mul8s::@2/mul8s::return#0 )
@ -566,7 +566,7 @@ mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@5
mulf8s_prepared::$13 = (byte)mulf8s_prepared::b#3
mulf8s_prepared::$7 = mulf8s_prepared::$6 - mulf8s_prepared::$13
mulf8s_prepared::$11 = mulf8s_prepared::$7
mulf8s_prepared::m#1 = mulf8s_prepared::m#3 hi= mulf8s_prepared::$11
mulf8s_prepared::m#1 = mulf8s_prepared::m#3 byte1= mulf8s_prepared::$11
to:mulf8s_prepared::@1
mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4
mulf8s_prepared::m#4 = phi( mulf8s_prepared::@1/mulf8s_prepared::m#6, mulf8s_prepared::@4/mulf8s_prepared::m#2 )
@ -578,7 +578,7 @@ mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1
mulf8s_prepared::$14 = (byte)*mulf8s_prepared::memA
mulf8s_prepared::$10 = mulf8s_prepared::$9 - mulf8s_prepared::$14
mulf8s_prepared::$12 = mulf8s_prepared::$10
mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12
mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12
to:mulf8s_prepared::@2
mulf8s_prepared::@return: scope:[mulf8s_prepared] from mulf8s_prepared::@2
mulf8s_prepared::return#3 = phi( mulf8s_prepared::@2/mulf8s_prepared::return#0 )
@ -4311,7 +4311,7 @@ mul8s::@5: scope:[mul8s] from mul8s
mul8s::@3: scope:[mul8s] from mul8s::@5
[250] mul8s::$6 = > mul8s::m#0
[251] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#0
[252] mul8s::m#1 = mul8s::m#0 hi= mul8s::$11
[252] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11
to:mul8s::@1
mul8s::@1: scope:[mul8s] from mul8s::@3 mul8s::@5
[253] mul8s::m#5 = phi( mul8s::@3/mul8s::m#1, mul8s::@5/mul8s::m#0 )
@ -4320,7 +4320,7 @@ mul8s::@1: scope:[mul8s] from mul8s::@3 mul8s::@5
mul8s::@4: scope:[mul8s] from mul8s::@1
[255] mul8s::$9 = > mul8s::m#5
[256] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#0
[257] mul8s::m#2 = mul8s::m#5 hi= mul8s::$12
[257] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12
to:mul8s::@2
mul8s::@2: scope:[mul8s] from mul8s::@1 mul8s::@4
[258] mul8s::m#4 = phi( mul8s::@1/mul8s::m#5, mul8s::@4/mul8s::m#2 )
@ -4440,7 +4440,7 @@ mulf8s_prepared::@5: scope:[mulf8s_prepared] from mulf8s_prepared
mulf8s_prepared::@3: scope:[mulf8s_prepared] from mulf8s_prepared::@5
[309] mulf8s_prepared::$6 = > mulf8s_prepared::m#0
[310] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#0
[311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 hi= mulf8s_prepared::$11
[311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11
to:mulf8s_prepared::@1
mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_prepared::@5
[312] mulf8s_prepared::m#5 = phi( mulf8s_prepared::@3/mulf8s_prepared::m#1, mulf8s_prepared::@5/mulf8s_prepared::m#0 )
@ -4449,7 +4449,7 @@ mulf8s_prepared::@1: scope:[mulf8s_prepared] from mulf8s_prepared::@3 mulf8s_pr
mulf8s_prepared::@4: scope:[mulf8s_prepared] from mulf8s_prepared::@1
[314] mulf8s_prepared::$9 = > mulf8s_prepared::m#5
[315] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA
[316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12
[316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12
to:mulf8s_prepared::@2
mulf8s_prepared::@2: scope:[mulf8s_prepared] from mulf8s_prepared::@1 mulf8s_prepared::@4
[317] mulf8s_prepared::m#4 = phi( mulf8s_prepared::@1/mulf8s_prepared::m#5, mulf8s_prepared::@4/mulf8s_prepared::m#2 )
@ -5790,12 +5790,12 @@ mulf_init: {
jmp __b3
// mulf_init::@3
__b3:
// [38] mulf_init::$4 = < mulf_init::sqr#3 -- vbuaa=_lo_vwuz1
// [38] mulf_init::$4 = < mulf_init::sqr#3 -- vbuaa=_byte0_vwuz1
lda.z sqr
// [39] *mulf_init::sqr1_lo#2 = mulf_init::$4 -- _deref_pbuz1=vbuaa
ldy #0
sta (sqr1_lo),y
// [40] mulf_init::$5 = > mulf_init::sqr#3 -- vbuaa=_hi_vwuz1
// [40] mulf_init::$5 = > mulf_init::sqr#3 -- vbuaa=_byte1_vwuz1
lda.z sqr+1
// [41] *mulf_init::sqr1_hi#2 = mulf_init::$5 -- _deref_pbuz1=vbuaa
ldy #0
@ -6578,7 +6578,7 @@ print_ln: {
// print_uint(word zp(2) w)
print_uint: {
.label w = 2
// [172] print_uchar::b#1 = > print_uint::w#6 -- vbuxx=_hi_vwuz1
// [172] print_uchar::b#1 = > print_uint::w#6 -- vbuxx=_byte1_vwuz1
ldx.z w+1
// [173] call print_uchar
// [287] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
@ -6589,7 +6589,7 @@ print_uint: {
jmp __b1
// print_uint::@1
__b1:
// [174] print_uchar::b#2 = < print_uint::w#6 -- vbuxx=_lo_vwuz1
// [174] print_uchar::b#2 = < print_uint::w#6 -- vbuxx=_byte0_vwuz1
ldx.z w
// [175] call print_uchar
// [287] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
@ -7102,13 +7102,13 @@ mul8s: {
jmp __b3
// mul8s::@3
__b3:
// [250] mul8s::$6 = > mul8s::m#0 -- vbuaa=_hi_vwuz1
// [250] mul8s::$6 = > mul8s::m#0 -- vbuaa=_byte1_vwuz1
lda.z m+1
// [251] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#0 -- vbuaa=vbuaa_minus_vbuyy
sty.z $ff
sec
sbc.z $ff
// [252] mul8s::m#1 = mul8s::m#0 hi= mul8s::$11 -- vwuz1=vwuz1_sethi_vbuaa
// [252] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [253] phi from mul8s::@3 mul8s::@5 to mul8s::@1 [phi:mul8s::@3/mul8s::@5->mul8s::@1]
__b1_from___b3:
@ -7123,12 +7123,12 @@ mul8s: {
jmp __b4
// mul8s::@4
__b4:
// [255] mul8s::$9 = > mul8s::m#5 -- vbuaa=_hi_vwuz1
// [255] mul8s::$9 = > mul8s::m#5 -- vbuaa=_byte1_vwuz1
lda.z m+1
// [256] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#0 -- vbuaa=vbuaa_minus_vbuz1
sec
sbc.z a
// [257] mul8s::m#2 = mul8s::m#5 hi= mul8s::$12 -- vwuz1=vwuz1_sethi_vbuaa
// [257] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [258] phi from mul8s::@1 mul8s::@4 to mul8s::@2 [phi:mul8s::@1/mul8s::@4->mul8s::@2]
__b2_from___b1:
@ -7439,12 +7439,12 @@ mulf8s_prepared: {
jmp __b3
// mulf8s_prepared::@3
__b3:
// [309] mulf8s_prepared::$6 = > mulf8s_prepared::m#0 -- vbuaa=_hi_vwuz1
// [309] mulf8s_prepared::$6 = > mulf8s_prepared::m#0 -- vbuaa=_byte1_vwuz1
lda.z m+1
// [310] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#0 -- vbuaa=vbuaa_minus_vbuz1
sec
sbc.z b
// [311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 hi= mulf8s_prepared::$11 -- vwuz1=vwuz1_sethi_vbuaa
// [311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [312] phi from mulf8s_prepared::@3 mulf8s_prepared::@5 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1]
__b1_from___b3:
@ -7460,12 +7460,12 @@ mulf8s_prepared: {
jmp __b4
// mulf8s_prepared::@4
__b4:
// [314] mulf8s_prepared::$9 = > mulf8s_prepared::m#5 -- vbuaa=_hi_vwuz1
// [314] mulf8s_prepared::$9 = > mulf8s_prepared::m#5 -- vbuaa=_byte1_vwuz1
lda.z m+1
// [315] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA -- vbuaa=vbuaa_minus__deref_pbuc1
sec
sbc memA
// [316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12 -- vwuz1=vwuz1_sethi_vbuaa
// [316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [317] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2]
__b2_from___b1:
@ -8698,20 +8698,20 @@ mulf_init: {
// [37] phi mulf_init::sqr#3 = mulf_init::sqr#4 [phi:mulf_init::@2/mulf_init::@4->mulf_init::@3#1] -- register_copy
// mulf_init::@3
__b3:
// <sqr
// [38] mulf_init::$4 = < mulf_init::sqr#3 -- vbuaa=_lo_vwuz1
// BYTE0(sqr)
// [38] mulf_init::$4 = < mulf_init::sqr#3 -- vbuaa=_byte0_vwuz1
lda.z sqr
// *sqr1_lo = <sqr
// *sqr1_lo = BYTE0(sqr)
// [39] *mulf_init::sqr1_lo#2 = mulf_init::$4 -- _deref_pbuz1=vbuaa
ldy #0
sta (sqr1_lo),y
// >sqr
// [40] mulf_init::$5 = > mulf_init::sqr#3 -- vbuaa=_hi_vwuz1
// BYTE1(sqr)
// [40] mulf_init::$5 = > mulf_init::sqr#3 -- vbuaa=_byte1_vwuz1
lda.z sqr+1
// *sqr1_hi++ = >sqr
// *sqr1_hi++ = BYTE1(sqr)
// [41] *mulf_init::sqr1_hi#2 = mulf_init::$5 -- _deref_pbuz1=vbuaa
sta (sqr1_hi),y
// *sqr1_hi++ = >sqr;
// *sqr1_hi++ = BYTE1(sqr);
// [42] mulf_init::sqr1_hi#1 = ++ mulf_init::sqr1_hi#2 -- pbuz1=_inc_pbuz1
inc.z sqr1_hi
bne !+
@ -9426,8 +9426,8 @@ print_ln: {
// print_uint(word zp(2) w)
print_uint: {
.label w = 2
// print_uchar(>w)
// [172] print_uchar::b#1 = > print_uint::w#6 -- vbuxx=_hi_vwuz1
// print_uchar(BYTE1(w))
// [172] print_uchar::b#1 = > print_uint::w#6 -- vbuxx=_byte1_vwuz1
ldx.z w+1
// [173] call print_uchar
// [287] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
@ -9435,8 +9435,8 @@ print_uint: {
// [287] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- register_copy
jsr print_uchar
// print_uint::@1
// print_uchar(<w)
// [174] print_uchar::b#2 = < print_uint::w#6 -- vbuxx=_lo_vwuz1
// print_uchar(BYTE0(w))
// [174] print_uchar::b#2 = < print_uint::w#6 -- vbuxx=_byte0_vwuz1
ldx.z w
// [175] call print_uchar
// [287] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
@ -9893,15 +9893,15 @@ mul8s: {
cmp #0
bpl __b1
// mul8s::@3
// >m
// [250] mul8s::$6 = > mul8s::m#0 -- vbuaa=_hi_vwuz1
// BYTE1(m)
// [250] mul8s::$6 = > mul8s::m#0 -- vbuaa=_byte1_vwuz1
lda.z m+1
// >m = (>m)-(char)b
// BYTE1(m) = BYTE1(m)-(char)b
// [251] mul8s::$11 = mul8s::$6 - (byte)mul8s::b#0 -- vbuaa=vbuaa_minus_vbuyy
sty.z $ff
sec
sbc.z $ff
// [252] mul8s::m#1 = mul8s::m#0 hi= mul8s::$11 -- vwuz1=vwuz1_sethi_vbuaa
// [252] mul8s::m#1 = mul8s::m#0 byte1= mul8s::$11 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [253] phi from mul8s::@3 mul8s::@5 to mul8s::@1 [phi:mul8s::@3/mul8s::@5->mul8s::@1]
// [253] phi mul8s::m#5 = mul8s::m#1 [phi:mul8s::@3/mul8s::@5->mul8s::@1#0] -- register_copy
@ -9912,14 +9912,14 @@ mul8s: {
cpy #0
bpl __b2
// mul8s::@4
// >m
// [255] mul8s::$9 = > mul8s::m#5 -- vbuaa=_hi_vwuz1
// BYTE1(m)
// [255] mul8s::$9 = > mul8s::m#5 -- vbuaa=_byte1_vwuz1
lda.z m+1
// >m = (>m)-(char)a
// BYTE1(m) = BYTE1(m)-(char)a
// [256] mul8s::$12 = mul8s::$9 - (byte)mul8s::a#0 -- vbuaa=vbuaa_minus_vbuz1
sec
sbc.z a
// [257] mul8s::m#2 = mul8s::m#5 hi= mul8s::$12 -- vwuz1=vwuz1_sethi_vbuaa
// [257] mul8s::m#2 = mul8s::m#5 byte1= mul8s::$12 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [258] phi from mul8s::@1 mul8s::@4 to mul8s::@2 [phi:mul8s::@1/mul8s::@4->mul8s::@2]
// [258] phi mul8s::m#4 = mul8s::m#5 [phi:mul8s::@1/mul8s::@4->mul8s::@2#0] -- register_copy
@ -10201,14 +10201,14 @@ mulf8s_prepared: {
cmp #0
bpl __b1
// mulf8s_prepared::@3
// >m
// [309] mulf8s_prepared::$6 = > mulf8s_prepared::m#0 -- vbuaa=_hi_vwuz1
// BYTE1(m)
// [309] mulf8s_prepared::$6 = > mulf8s_prepared::m#0 -- vbuaa=_byte1_vwuz1
lda.z m+1
// >m = (>m)-(char)b
// BYTE1(m) = BYTE1(m)-(char)b
// [310] mulf8s_prepared::$11 = mulf8s_prepared::$6 - (byte)mulf8s_prepared::b#0 -- vbuaa=vbuaa_minus_vbuz1
sec
sbc.z b
// [311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 hi= mulf8s_prepared::$11 -- vwuz1=vwuz1_sethi_vbuaa
// [311] mulf8s_prepared::m#1 = mulf8s_prepared::m#0 byte1= mulf8s_prepared::$11 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [312] phi from mulf8s_prepared::@3 mulf8s_prepared::@5 to mulf8s_prepared::@1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1]
// [312] phi mulf8s_prepared::m#5 = mulf8s_prepared::m#1 [phi:mulf8s_prepared::@3/mulf8s_prepared::@5->mulf8s_prepared::@1#0] -- register_copy
@ -10220,14 +10220,14 @@ mulf8s_prepared: {
cmp #0
bpl __b2
// mulf8s_prepared::@4
// >m
// [314] mulf8s_prepared::$9 = > mulf8s_prepared::m#5 -- vbuaa=_hi_vwuz1
// BYTE1(m)
// [314] mulf8s_prepared::$9 = > mulf8s_prepared::m#5 -- vbuaa=_byte1_vwuz1
lda.z m+1
// >m = (>m)-(char)*memA
// BYTE1(m) = BYTE1(m)-(char)*memA
// [315] mulf8s_prepared::$12 = mulf8s_prepared::$9 - (byte)*mulf8s_prepared::memA -- vbuaa=vbuaa_minus__deref_pbuc1
sec
sbc memA
// [316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 hi= mulf8s_prepared::$12 -- vwuz1=vwuz1_sethi_vbuaa
// [316] mulf8s_prepared::m#2 = mulf8s_prepared::m#5 byte1= mulf8s_prepared::$12 -- vwuz1=vwuz1_setbyte1_vbuaa
sta.z m+1
// [317] phi from mulf8s_prepared::@1 mulf8s_prepared::@4 to mulf8s_prepared::@2 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2]
// [317] phi mulf8s_prepared::m#4 = mulf8s_prepared::m#5 [phi:mulf8s_prepared::@1/mulf8s_prepared::@4->mulf8s_prepared::@2#0] -- register_copy