diff --git a/src/test/ref/bitmap-line-anim-1.asm b/src/test/ref/bitmap-line-anim-1.asm index d61448a71..a52b67ce7 100644 --- a/src/test/ref/bitmap-line-anim-1.asm +++ b/src/test/ref/bitmap-line-anim-1.asm @@ -514,8 +514,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 diff --git a/src/test/ref/bitmap-line-anim-1.cfg b/src/test/ref/bitmap-line-anim-1.cfg index 65170e9ab..4edaec324 100644 --- a/src/test/ref/bitmap-line-anim-1.cfg +++ b/src/test/ref/bitmap-line-anim-1.cfg @@ -252,7 +252,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li [118] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [119] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [121] bitmap_plot::$1 = (byte)bitmap_plot::x#4 + [121] bitmap_plot::$1 = < bitmap_plot::x#4 [122] *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 diff --git a/src/test/ref/bitmap-line-anim-1.log b/src/test/ref/bitmap-line-anim-1.log index 0f1651b20..81d9b0bbd 100644 --- a/src/test/ref/bitmap-line-anim-1.log +++ b/src/test/ref/bitmap-line-anim-1.log @@ -125,7 +125,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] } bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0 - bitmap_plot::$1 = (byte)bitmap_plot::x#4 + bitmap_plot::$1 = < bitmap_plot::x#4 *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 @@ -1818,7 +1818,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li [118] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [119] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [121] bitmap_plot::$1 = (byte)bitmap_plot::x#4 + [121] bitmap_plot::$1 = < bitmap_plot::x#4 [122] *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 @@ -1914,7 +1914,7 @@ word bitmap_plot::x word bitmap_plot::x#1 10001.0 word bitmap_plot::x#2 101.0 word bitmap_plot::x#3 10001.0 -word bitmap_plot::x#4 30026.0 +word bitmap_plot::x#4 55026.25 byte bitmap_plot::y byte bitmap_plot::y#1 20002.0 byte bitmap_plot::y#2 202.0 @@ -2226,7 +2226,7 @@ Potential registers zp[2]:66 [ bitmap_plot::plotter#1 ] : zp[2]:66 , Potential registers zp[1]:68 [ bitmap_plot::$1 ] : zp[1]:68 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [bitmap_plot] 260,311: zp[1]:31 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:64 [ bitmap_plot::$0 ] 200,002: zp[1]:68 [ bitmap_plot::$1 ] 150,001.5: zp[2]:66 [ bitmap_plot::plotter#1 ] 50,129: zp[2]:32 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:62 [ bitmap_plot::plotter#0 ] +Uplift Scope [bitmap_plot] 260,311: zp[1]:31 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:64 [ bitmap_plot::$0 ] 200,002: zp[1]:68 [ bitmap_plot::$1 ] 150,001.5: zp[2]:66 [ bitmap_plot::plotter#1 ] 75,129.25: zp[2]:32 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:62 [ bitmap_plot::plotter#0 ] Uplift Scope [bitmap_line] 69,036.46: zp[2]:12 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ] 55,005.5: zp[2]:14 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ] 52,560.77: zp[2]:10 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 52,560.77: zp[2]:16 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 868.77: zp[2]:46 [ bitmap_line::dy#0 ] 800.18: zp[2]:42 [ bitmap_line::dx#0 ] 773.19: zp[2]:54 [ bitmap_line::sy#0 ] 693.21: zp[2]:50 [ bitmap_line::sx#0 ] 340.47: zp[2]:34 [ bitmap_line::x2#0 ] Uplift Scope [abs_u16] 3,531: zp[2]:25 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ] 2,002: zp[1]:58 [ abs_u16::$0 ] 2,002: zp[1]:59 [ abs_u16::$1 ] 202: zp[2]:40 [ abs_u16::return#0 ] 202: zp[2]:44 [ abs_u16::return#1 ] Uplift Scope [sgn_u16] 2,002: zp[1]:60 [ sgn_u16::$0 ] 2,002: zp[1]:61 [ sgn_u16::$1 ] 1,304: zp[2]:27 [ sgn_u16::w#2 sgn_u16::w#0 ] 202: zp[2]:48 [ sgn_u16::return#0 ] 202: zp[2]:52 [ sgn_u16::return#1 ] 50.5: zp[2]:29 [ sgn_u16::return#4 ] @@ -3088,7 +3088,7 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // [121] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 + // [121] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 ldx.z x // [122] *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 @@ -3364,7 +3364,7 @@ word bitmap_plot::x word bitmap_plot::x#1 x zp[2]:8 10001.0 word bitmap_plot::x#2 x zp[2]:8 101.0 word bitmap_plot::x#3 x zp[2]:8 10001.0 -word bitmap_plot::x#4 x zp[2]:8 30026.0 +word bitmap_plot::x#4 x zp[2]:8 55026.25 byte bitmap_plot::y byte bitmap_plot::y#1 reg byte x 20002.0 byte bitmap_plot::y#2 reg byte x 202.0 @@ -4198,9 +4198,10 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // *plotter |= bitmap_plot_bit[(char)x] - // [121] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 + // BYTE0(x) + // [121] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 ldx.z x + // *plotter |= bitmap_plot_bit[BYTE0(x)] // [122] *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 diff --git a/src/test/ref/bitmap-line-anim-1.sym b/src/test/ref/bitmap-line-anim-1.sym index 815f5e747..888158e78 100644 --- a/src/test/ref/bitmap-line-anim-1.sym +++ b/src/test/ref/bitmap-line-anim-1.sym @@ -99,7 +99,7 @@ word bitmap_plot::x word bitmap_plot::x#1 x zp[2]:8 10001.0 word bitmap_plot::x#2 x zp[2]:8 101.0 word bitmap_plot::x#3 x zp[2]:8 10001.0 -word bitmap_plot::x#4 x zp[2]:8 30026.0 +word bitmap_plot::x#4 x zp[2]:8 55026.25 byte bitmap_plot::y byte bitmap_plot::y#1 reg byte x 20002.0 byte bitmap_plot::y#2 reg byte x 202.0 diff --git a/src/test/ref/bitmap-line-anim-2.asm b/src/test/ref/bitmap-line-anim-2.asm index 8be09f07b..bf110dc29 100644 --- a/src/test/ref/bitmap-line-anim-2.asm +++ b/src/test/ref/bitmap-line-anim-2.asm @@ -495,8 +495,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 diff --git a/src/test/ref/bitmap-line-anim-2.cfg b/src/test/ref/bitmap-line-anim-2.cfg index 945e9606c..8baee8a68 100644 --- a/src/test/ref/bitmap-line-anim-2.cfg +++ b/src/test/ref/bitmap-line-anim-2.cfg @@ -239,7 +239,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [114] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [116] bitmap_plot::$1 = (byte)bitmap_plot::x#4 + [116] bitmap_plot::$1 = < bitmap_plot::x#4 [117] *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 diff --git a/src/test/ref/bitmap-line-anim-2.log b/src/test/ref/bitmap-line-anim-2.log index 3a1f831cd..78b919cd6 100644 --- a/src/test/ref/bitmap-line-anim-2.log +++ b/src/test/ref/bitmap-line-anim-2.log @@ -125,7 +125,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] } bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0 - bitmap_plot::$1 = (byte)bitmap_plot::x#4 + bitmap_plot::$1 = < bitmap_plot::x#4 *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 @@ -1799,7 +1799,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [114] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [116] bitmap_plot::$1 = (byte)bitmap_plot::x#4 + [116] bitmap_plot::$1 = < bitmap_plot::x#4 [117] *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 @@ -1895,7 +1895,7 @@ word bitmap_plot::x word bitmap_plot::x#1 10001.0 word bitmap_plot::x#2 101.0 word bitmap_plot::x#3 10001.0 -word bitmap_plot::x#4 30026.0 +word bitmap_plot::x#4 55026.25 byte bitmap_plot::y byte bitmap_plot::y#1 20002.0 byte bitmap_plot::y#2 202.0 @@ -2196,7 +2196,7 @@ Potential registers zp[2]:65 [ bitmap_plot::plotter#1 ] : zp[2]:65 , Potential registers zp[1]:67 [ bitmap_plot::$1 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [bitmap_plot] 260,311: zp[1]:30 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:63 [ bitmap_plot::$0 ] 200,002: zp[1]:67 [ bitmap_plot::$1 ] 150,001.5: zp[2]:65 [ bitmap_plot::plotter#1 ] 50,129: zp[2]:31 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:61 [ bitmap_plot::plotter#0 ] +Uplift Scope [bitmap_plot] 260,311: zp[1]:30 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:63 [ bitmap_plot::$0 ] 200,002: zp[1]:67 [ bitmap_plot::$1 ] 150,001.5: zp[2]:65 [ bitmap_plot::plotter#1 ] 75,129.25: zp[2]:31 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:61 [ bitmap_plot::plotter#0 ] Uplift Scope [bitmap_line] 69,036.46: zp[2]:11 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#12 bitmap_line::x#1 ] 55,005.5: zp[2]:13 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#1 bitmap_line::y#2 ] 52,560.77: zp[2]:9 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 52,560.77: zp[2]:15 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 868.77: zp[2]:45 [ bitmap_line::dy#0 ] 800.18: zp[2]:41 [ bitmap_line::dx#0 ] 773.19: zp[2]:53 [ bitmap_line::sy#0 ] 693.21: zp[2]:49 [ bitmap_line::sx#0 ] 340.47: zp[2]:33 [ bitmap_line::x2#0 ] Uplift Scope [abs_u16] 3,531: zp[2]:24 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 ] 2,002: zp[1]:57 [ abs_u16::$0 ] 2,002: zp[1]:58 [ abs_u16::$1 ] 202: zp[2]:39 [ abs_u16::return#0 ] 202: zp[2]:43 [ abs_u16::return#1 ] Uplift Scope [sgn_u16] 2,002: zp[1]:59 [ sgn_u16::$0 ] 2,002: zp[1]:60 [ sgn_u16::$1 ] 1,304: zp[2]:26 [ sgn_u16::w#2 sgn_u16::w#0 ] 202: zp[2]:47 [ sgn_u16::return#0 ] 202: zp[2]:51 [ sgn_u16::return#1 ] 50.5: zp[2]:28 [ sgn_u16::return#4 ] @@ -3031,7 +3031,7 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // [116] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 + // [116] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 ldx.z x // [117] *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 @@ -3315,7 +3315,7 @@ word bitmap_plot::x word bitmap_plot::x#1 x zp[2]:10 10001.0 word bitmap_plot::x#2 x zp[2]:10 101.0 word bitmap_plot::x#3 x zp[2]:10 10001.0 -word bitmap_plot::x#4 x zp[2]:10 30026.0 +word bitmap_plot::x#4 x zp[2]:10 55026.25 byte bitmap_plot::y byte bitmap_plot::y#1 reg byte x 20002.0 byte bitmap_plot::y#2 reg byte x 202.0 @@ -4119,9 +4119,10 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // *plotter |= bitmap_plot_bit[(char)x] - // [116] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 + // BYTE0(x) + // [116] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 ldx.z x + // *plotter |= bitmap_plot_bit[BYTE0(x)] // [117] *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 diff --git a/src/test/ref/bitmap-line-anim-2.sym b/src/test/ref/bitmap-line-anim-2.sym index a1a82ffc8..3478b30fb 100644 --- a/src/test/ref/bitmap-line-anim-2.sym +++ b/src/test/ref/bitmap-line-anim-2.sym @@ -100,7 +100,7 @@ word bitmap_plot::x word bitmap_plot::x#1 x zp[2]:10 10001.0 word bitmap_plot::x#2 x zp[2]:10 101.0 word bitmap_plot::x#3 x zp[2]:10 10001.0 -word bitmap_plot::x#4 x zp[2]:10 30026.0 +word bitmap_plot::x#4 x zp[2]:10 55026.25 byte bitmap_plot::y byte bitmap_plot::y#1 reg byte x 20002.0 byte bitmap_plot::y#2 reg byte x 202.0 diff --git a/src/test/ref/bitmap-plot-0.asm b/src/test/ref/bitmap-plot-0.asm index 7baa38949..7c1e551f1 100644 --- a/src/test/ref/bitmap-plot-0.asm +++ b/src/test/ref/bitmap-plot-0.asm @@ -315,8 +315,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 diff --git a/src/test/ref/bitmap-plot-0.cfg b/src/test/ref/bitmap-plot-0.cfg index 8ffc303bd..e62f7cbe3 100644 --- a/src/test/ref/bitmap-plot-0.cfg +++ b/src/test/ref/bitmap-plot-0.cfg @@ -162,7 +162,7 @@ bitmap_plot: scope:[bitmap_plot] from main::@2 [71] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [72] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [74] bitmap_plot::$1 = (byte)bitmap_plot::x#0 + [74] bitmap_plot::$1 = < bitmap_plot::x#0 [75] *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 diff --git a/src/test/ref/bitmap-plot-0.log b/src/test/ref/bitmap-plot-0.log index 9eca6b316..1048fa69f 100644 --- a/src/test/ref/bitmap-plot-0.log +++ b/src/test/ref/bitmap-plot-0.log @@ -130,7 +130,7 @@ bitmap_plot: scope:[bitmap_plot] from main::@2 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 @@ -1296,7 +1296,7 @@ bitmap_plot: scope:[bitmap_plot] from main::@2 [71] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [72] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [74] bitmap_plot::$1 = (byte)bitmap_plot::x#0 + [74] bitmap_plot::$1 = < bitmap_plot::x#0 [75] *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 @@ -1362,7 +1362,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 @@ -1584,7 +1584,7 @@ Potential registers zp[2]:35 [ memset::end#0 ] : zp[2]:35 , REGISTER UPLIFT SCOPES Uplift Scope [memset] 35,672.33: zp[2]:18 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 1,833.67: zp[2]:35 [ memset::end#0 ] 1,250.12: zp[1]:17 [ memset::c#4 ] 1,001: zp[2]:13 [ memset::num#2 ] 0: zp[2]:15 [ memset::str#3 ] Uplift Scope [bitmap_init] 3,628.62: zp[2]:11 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 3,169.83: zp[1]:8 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 2,002: zp[1]:9 [ bitmap_init::x#2 bitmap_init::x#1 ] 2,002: zp[1]:10 [ bitmap_init::y#2 bitmap_init::y#1 ] 2,002: zp[1]:25 [ bitmap_init::$4 ] 2,002: zp[1]:26 [ bitmap_init::$5 ] 2,002: zp[1]:27 [ bitmap_init::$6 ] 500.5: zp[1]:24 [ bitmap_init::$7 ] -Uplift Scope [bitmap_plot] 2,103: zp[1]:23 [ bitmap_plot::y#0 ] 2,002: zp[2]:30 [ bitmap_plot::$0 ] 2,002: zp[1]:34 [ bitmap_plot::$1 ] 1,501.5: zp[2]:32 [ bitmap_plot::plotter#1 ] 500.5: zp[2]:28 [ bitmap_plot::plotter#0 ] 220.4: zp[2]:21 [ bitmap_plot::x#0 ] +Uplift Scope [bitmap_plot] 2,103: zp[1]:23 [ bitmap_plot::y#0 ] 2,002: zp[2]:30 [ bitmap_plot::$0 ] 2,002: zp[1]:34 [ bitmap_plot::$1 ] 1,501.5: zp[2]:32 [ bitmap_plot::plotter#1 ] 500.5: zp[2]:28 [ bitmap_plot::plotter#0 ] 420.6: zp[2]:21 [ bitmap_plot::x#0 ] Uplift Scope [main] 387.17: zp[1]:7 [ main::vy#2 main::vy#8 main::vy#1 ] 303: zp[2]:5 [ main::vx#2 main::vx#6 main::vx#1 ] 112.48: zp[2]:2 [ main::x#2 main::x#1 ] 101: zp[1]:4 [ main::y#2 main::y#1 ] Uplift Scope [] 7.78: zp[1]:20 [ frame_cnt ] Uplift Scope [MOS6526_CIA] @@ -2127,7 +2127,7 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // [74] bitmap_plot::$1 = (byte)bitmap_plot::x#0 -- vbuxx=_byte_vwuz1 + // [74] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1 ldx.z x // [75] *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 @@ -2369,7 +2369,7 @@ byte* bitmap_plot::plotter word bitmap_plot::plotter#0 plotter zp[2]:10 500.5 byte* bitmap_plot::plotter#1 plotter zp[2]:10 1501.5 word bitmap_plot::x -word bitmap_plot::x#0 x zp[2]:2 220.39999999999998 +word bitmap_plot::x#0 x zp[2]:2 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) } @@ -2900,9 +2900,10 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // *plotter |= bitmap_plot_bit[(char)x] - // [74] bitmap_plot::$1 = (byte)bitmap_plot::x#0 -- vbuxx=_byte_vwuz1 + // BYTE0(x) + // [74] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1 ldx.z x + // *plotter |= bitmap_plot_bit[BYTE0(x)] // [75] *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 diff --git a/src/test/ref/bitmap-plot-0.sym b/src/test/ref/bitmap-plot-0.sym index eeddee1c6..e6df86ca7 100644 --- a/src/test/ref/bitmap-plot-0.sym +++ b/src/test/ref/bitmap-plot-0.sym @@ -56,7 +56,7 @@ byte* bitmap_plot::plotter word bitmap_plot::plotter#0 plotter zp[2]:10 500.5 byte* bitmap_plot::plotter#1 plotter zp[2]:10 1501.5 word bitmap_plot::x -word bitmap_plot::x#0 x zp[2]:2 220.39999999999998 +word bitmap_plot::x#0 x zp[2]:2 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) } diff --git a/src/test/ref/bitmap-plot-1.asm b/src/test/ref/bitmap-plot-1.asm index 4a398887b..9e2a42fd5 100644 --- a/src/test/ref/bitmap-plot-1.asm +++ b/src/test/ref/bitmap-plot-1.asm @@ -173,8 +173,8 @@ main: { rol.z __6+1 rol.z __6+2 rol.z __6+3 - // >(xpos<<4) - // word x = (word)(160 + >(xpos<<4)) + // WORD1(xpos<<4) + // word x = (word)(160 + WORD1(xpos<<4)) clc lda #<$a0 adc.z __6+2 @@ -229,8 +229,8 @@ main: { rol.z __10+1 rol.z __10+2 rol.z __10+3 - // >(ypos<<4) - // word y = (word)(100 + >(ypos<<4)) + // WORD1(ypos<<4) + // word y = (word)(100 + WORD1(ypos<<4)) clc lda #<$64 adc.z __10+2 @@ -239,7 +239,7 @@ main: { adc.z __10+3 sta.z y+1 // bitmap_plot(x, (byte)y) - lda.z y + ldx.z y jsr bitmap_plot // if(++idx_x==512) inc.z idx_x @@ -342,19 +342,19 @@ sin16s_gen2: { sta.z mul16s.b+1 jsr mul16s // mul16s(sin16s(x), ampl) - // >mul16s(sin16s(x), ampl) + // WORD1(mul16s(sin16s(x), ampl)) lda.z __6+2 sta.z __8 lda.z __6+3 sta.z __8+1 - // *sintab++ = offs + (signed int)>mul16s(sin16s(x), ampl) + // *sintab++ = offs + (signed int)WORD1(mul16s(sin16s(x), ampl)) ldy #0 lda.z __8 sta (sintab),y iny lda.z __8+1 sta (sintab),y - // *sintab++ = offs + (signed int)>mul16s(sin16s(x), ampl); + // *sintab++ = offs + (signed int)WORD1(mul16s(sin16s(x), ampl)); lda #SIZEOF_SIGNED_WORD clc adc.z sintab @@ -412,15 +412,15 @@ bitmap_init: { // y&$7 lda #7 sax.z __7 - // <yoffs + // BYTE0(yoffs) lda.z yoffs - // y&$7 | <yoffs + // y&$7 | BYTE0(yoffs) ora.z __7 - // bitmap_plot_ylo[y] = y&$7 | <yoffs + // bitmap_plot_ylo[y] = y&$7 | BYTE0(yoffs) sta bitmap_plot_ylo,x - // >yoffs + // BYTE1(yoffs) lda.z yoffs+1 - // bitmap_plot_yhi[y] = >yoffs + // bitmap_plot_yhi[y] = BYTE1(yoffs) sta bitmap_plot_yhi,x // if((y&$7)==7) lda #7 @@ -537,12 +537,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 @@ -558,12 +558,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 __9 sec sbc.z __12 @@ -581,16 +581,15 @@ mul16s: { rts } // Plot a single dot in the bitmap -// bitmap_plot(word zp($17) x, byte register(A) y) +// bitmap_plot(word zp($17) x, byte register(X) y) bitmap_plot: { .label __0 = $22 .label plotter = $20 .label x = $17 // char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] } - tay - lda bitmap_plot_yhi,y + lda bitmap_plot_yhi,x sta.z plotter+1 - lda bitmap_plot_ylo,y + lda bitmap_plot_ylo,x sta.z plotter // x & $fff8 lda.z x @@ -607,9 +606,9 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // <x + // BYTE0(x) ldx.z x - // *plotter |= bitmap_plot_bit[<x] + // *plotter |= bitmap_plot_bit[BYTE0(x)] lda bitmap_plot_bit,x ldy #0 ora (plotter),y @@ -623,7 +622,7 @@ div32u16u: { .label return = $1b .label quotient_hi = $28 .label quotient_lo = $14 - // divr16u(>dividend, divisor, 0) + // divr16u(WORD1(dividend), divisor, 0) lda #<PI2_u4f28>>$10 sta.z divr16u.dividend lda #>PI2_u4f28>>$10 @@ -632,13 +631,13 @@ 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.z rem16u sta.z divr16u.rem lda.z rem16u+1 @@ -648,8 +647,8 @@ div32u16u: { 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 @@ -768,7 +767,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 @@ -997,11 +996,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 @@ -1078,7 +1077,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 diff --git a/src/test/ref/bitmap-plot-1.cfg b/src/test/ref/bitmap-plot-1.cfg index f6904c713..5cfd56836 100644 --- a/src/test/ref/bitmap-plot-1.cfg +++ b/src/test/ref/bitmap-plot-1.cfg @@ -68,7 +68,7 @@ main::@2: scope:[main] from main::@1 main::@9: scope:[main] from main::@2 [28] main::xpos#0 = mul16s::return#3 [29] main::$6 = main::xpos#0 << 4 - [30] main::$7 = > main::$6 + [30] main::$7 = _word1_ main::$6 [31] main::x#0 = $a0 + main::$7 [32] main::$20 = main::idx_y#3 << 1 [33] main::$22 = SINE + main::$20 @@ -80,7 +80,7 @@ main::@9: scope:[main] from main::@2 main::@10: scope:[main] from main::@9 [38] main::ypos#0 = mul16s::return#4 [39] main::$10 = main::ypos#0 << 4 - [40] main::$11 = > main::$10 + [40] main::$11 = _word1_ main::$10 [41] main::y#0 = $64 + main::$11 [42] bitmap_plot::x#0 = main::x#0 [43] bitmap_plot::y#0 = (byte)main::y#0 @@ -136,7 +136,7 @@ sin16s_gen2::@4: scope:[sin16s_gen2] from sin16s_gen2::@2 to:sin16s_gen2::@5 sin16s_gen2::@5: scope:[sin16s_gen2] from sin16s_gen2::@4 [67] sin16s_gen2::$6 = mul16s::return#0 - [68] sin16s_gen2::$8 = > sin16s_gen2::$6 + [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8 [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD [71] sin16s_gen2::x#1 = sin16s_gen2::x#2 + sin16s_gen2::step#0 @@ -228,18 +228,18 @@ mul16s::@5: scope:[mul16s] from mul16s [116] if(mul16s::a#3>=0) goto mul16s::@1 to:mul16s::@3 mul16s::@3: scope:[mul16s] from mul16s::@5 - [117] mul16s::$6 = > mul16s::m#0 + [117] mul16s::$6 = _word1_ mul16s::m#0 [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3 - [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 + [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 to:mul16s::@1 mul16s::@1: scope:[mul16s] from mul16s::@3 mul16s::@5 [120] mul16s::m#5 = phi( mul16s::@3/mul16s::m#1, mul16s::@5/mul16s::m#0 ) [121] if(mul16s::b#3>=0) goto mul16s::@2 to:mul16s::@4 mul16s::@4: scope:[mul16s] from mul16s::@1 - [122] mul16s::$9 = > mul16s::m#5 + [122] mul16s::$9 = _word1_ mul16s::m#5 [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3 - [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 + [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 to:mul16s::@2 mul16s::@2: scope:[mul16s] from mul16s::@1 mul16s::@4 [125] mul16s::m#4 = phi( mul16s::@1/mul16s::m#5, mul16s::@4/mul16s::m#2 ) @@ -299,7 +299,7 @@ sin16s::@5: scope:[sin16s] from sin16s::@1 sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5 [149] sin16s::x#6 = phi( sin16s::@1/sin16s::x#4, sin16s::@5/sin16s::x#2 ) [150] sin16s::$4 = sin16s::x#6 << 3 - [151] sin16s::x1#0 = > sin16s::$4 + [151] sin16s::x1#0 = _word1_ sin16s::$4 [152] mulu16_sel::v1#0 = sin16s::x1#0 [153] mulu16_sel::v2#0 = sin16s::x1#0 [154] call mulu16_sel @@ -405,7 +405,7 @@ mul16u::@3: scope:[mul16u] from mul16u::@2 mul16u::@4 word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) divr16u: scope:[divr16u] from div32u16u div32u16u::@1 - [204] divr16u::dividend#5 = phi( div32u16u/>PI2_u4f28, div32u16u::@1/<PI2_u4f28 ) + [204] divr16u::dividend#5 = phi( div32u16u/_word1_PI2_u4f28, div32u16u::@1/_word0_PI2_u4f28 ) [204] divr16u::rem#10 = phi( div32u16u/0, div32u16u::@1/divr16u::rem#4 ) to:divr16u::@1 divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 @@ -457,7 +457,7 @@ mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@ mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel [227] mulu16_sel::$0 = mul16u::return#0 [228] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 - [229] mulu16_sel::return#12 = > mulu16_sel::$1 + [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 to:mulu16_sel::@return mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1 [230] return diff --git a/src/test/ref/bitmap-plot-1.log b/src/test/ref/bitmap-plot-1.log index 6b9ff04b3..f1cfb5e66 100644 --- a/src/test/ref/bitmap-plot-1.log +++ b/src/test/ref/bitmap-plot-1.log @@ -90,7 +90,7 @@ sin16s_gen2::@5: scope:[sin16s_gen2] from sin16s_gen2::@4 sin16s_gen2::offs#1 = phi( sin16s_gen2::@4/sin16s_gen2::offs#2 ) mul16s::return#5 = phi( sin16s_gen2::@4/mul16s::return#0 ) sin16s_gen2::$6 = mul16s::return#5 - sin16s_gen2::$7 = > sin16s_gen2::$6 + sin16s_gen2::$7 = _word1_ sin16s_gen2::$6 sin16s_gen2::$10 = (signed word)sin16s_gen2::$7 sin16s_gen2::$8 = sin16s_gen2::offs#1 + sin16s_gen2::$10 *sin16s_gen2::sintab#2 = sin16s_gen2::$8 @@ -130,7 +130,7 @@ sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5 sin16s::isUpper#7 = phi( sin16s::@1/sin16s::isUpper#8, sin16s::@5/sin16s::isUpper#9 ) sin16s::x#6 = phi( sin16s::@1/sin16s::x#4, sin16s::@5/sin16s::x#2 ) sin16s::$4 = sin16s::x#6 << 3 - sin16s::$5 = > sin16s::$4 + sin16s::$5 = _word1_ sin16s::$4 sin16s::x1#0 = sin16s::$5 mulu16_sel::v1#0 = sin16s::x1#0 mulu16_sel::v2#0 = sin16s::x1#0 @@ -241,7 +241,7 @@ mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel mul16u::return#4 = phi( mulu16_sel/mul16u::return#0 ) mulu16_sel::$0 = mul16u::return#4 mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 - mulu16_sel::$2 = > mulu16_sel::$1 + mulu16_sel::$2 = _word1_ mulu16_sel::$1 mulu16_sel::return#5 = mulu16_sel::$2 to:mulu16_sel::@return mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1 @@ -334,7 +334,7 @@ div32u16u: scope:[div32u16u] from sin16s_gen2 rem16u#24 = phi( sin16s_gen2/rem16u#22 ) div32u16u::divisor#1 = phi( sin16s_gen2/div32u16u::divisor#0 ) div32u16u::dividend#1 = phi( sin16s_gen2/div32u16u::dividend#0 ) - div32u16u::$0 = > div32u16u::dividend#1 + div32u16u::$0 = _word1_ div32u16u::dividend#1 divr16u::dividend#1 = div32u16u::$0 divr16u::divisor#0 = div32u16u::divisor#1 divr16u::rem#3 = 0 @@ -349,7 +349,7 @@ div32u16u::@1: scope:[div32u16u] from div32u16u div32u16u::$1 = divr16u::return#5 rem16u#4 = rem16u#15 div32u16u::quotient_hi#0 = div32u16u::$1 - div32u16u::$2 = < div32u16u::dividend#2 + div32u16u::$2 = _word0_ div32u16u::dividend#2 divr16u::dividend#2 = div32u16u::$2 divr16u::divisor#1 = div32u16u::divisor#2 divr16u::rem#4 = rem16u#4 @@ -454,11 +454,11 @@ mul16s::@3: scope:[mul16s] from mul16s::@5 mul16s::a#7 = phi( mul16s::@5/mul16s::a#4 ) mul16s::b#5 = phi( mul16s::@5/mul16s::b#6 ) mul16s::m#3 = phi( mul16s::@5/mul16s::m#0 ) - mul16s::$6 = > mul16s::m#3 + mul16s::$6 = _word1_ mul16s::m#3 mul16s::$13 = (word)mul16s::b#5 mul16s::$7 = mul16s::$6 - mul16s::$13 mul16s::$11 = mul16s::$7 - mul16s::m#1 = mul16s::m#3 hi= mul16s::$11 + mul16s::m#1 = mul16s::m#3 word1= mul16s::$11 to:mul16s::@1 mul16s::@2: scope:[mul16s] from mul16s::@1 mul16s::@4 mul16s::m#4 = phi( mul16s::@1/mul16s::m#6, mul16s::@4/mul16s::m#2 ) @@ -467,11 +467,11 @@ mul16s::@2: scope:[mul16s] from mul16s::@1 mul16s::@4 mul16s::@4: scope:[mul16s] from mul16s::@1 mul16s::a#5 = phi( mul16s::@1/mul16s::a#6 ) mul16s::m#5 = phi( mul16s::@1/mul16s::m#6 ) - mul16s::$9 = > mul16s::m#5 + mul16s::$9 = _word1_ mul16s::m#5 mul16s::$14 = (word)mul16s::a#5 mul16s::$10 = mul16s::$9 - mul16s::$14 mul16s::$12 = mul16s::$10 - mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 + mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 to:mul16s::@2 mul16s::@return: scope:[mul16s] from mul16s::@2 mul16s::return#6 = phi( mul16s::@2/mul16s::return#1 ) @@ -760,7 +760,7 @@ main::@12: scope:[main] from main::@2 main::$5 = mul16s::return#7 main::xpos#0 = main::$5 main::$6 = main::xpos#0 << 4 - main::$7 = > main::$6 + main::$7 = _word1_ main::$6 main::$8 = $a0 + main::$7 main::x#0 = (word)main::$8 main::$20 = main::idx_y#3 * SIZEOF_SIGNED_WORD @@ -781,7 +781,7 @@ main::@13: scope:[main] from main::@12 main::$9 = mul16s::return#8 main::ypos#0 = main::$9 main::$10 = main::ypos#0 << 4 - main::$11 = > main::$10 + main::$11 = _word1_ main::$10 main::$12 = $64 + main::$11 main::y#0 = (word)main::$12 bitmap_plot::x#0 = main::x#1 @@ -1237,7 +1237,7 @@ signed word main::sin_y signed word main::sin_y#0 number~ main::toD0181_$0 number~ main::toD0181_$1 -number~ main::toD0181_$2 +byte~ main::toD0181_$2 byte~ main::toD0181_$3 number~ main::toD0181_$4 number~ main::toD0181_$5 @@ -1686,7 +1686,6 @@ Adding number conversion cast (unumber) $3fff in main::toD0181_$0 = main::toD018 Adding number conversion cast (unumber) main::toD0181_$0 in main::toD0181_$0 = main::toD0181_$7 & (unumber)$3fff Adding number conversion cast (unumber) 4 in main::toD0181_$1 = main::toD0181_$0 * 4 Adding number conversion cast (unumber) main::toD0181_$1 in main::toD0181_$1 = main::toD0181_$0 * (unumber)4 -Adding number conversion cast (unumber) main::toD0181_$2 in main::toD0181_$2 = > main::toD0181_$1 Adding number conversion cast (unumber) 4 in main::toD0181_$4 = main::toD0181_$3 / 4 Adding number conversion cast (unumber) main::toD0181_$4 in main::toD0181_$4 = main::toD0181_$3 / (unumber)4 Adding number conversion cast (unumber) $f in main::toD0181_$5 = main::toD0181_$4 & $f @@ -1870,7 +1869,6 @@ Inferred type updated to byte in bitmap_clear::$1 = bitmap_clear::$0 + bitmap_cl Inferred type updated to word in bitmap_plot::$0 = bitmap_plot::x#1 & $fff8 Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4 -Inferred type updated to byte in main::toD0181_$2 = > main::toD0181_$1 Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -2223,15 +2221,15 @@ Alias main::x#0 = main::$8 Alias main::y#0 = main::$12 Successful SSA optimization Pass2AliasElimination Constant right-side identified [0] sin16s_gen2::ampl#0 = sin16s_gen2::max#0 - sin16s_gen2::min#0 -Constant right-side identified [91] divr16u::dividend#1 = > div32u16u::dividend#0 -Constant right-side identified [95] divr16u::dividend#2 = < div32u16u::dividend#0 +Constant right-side identified [91] divr16u::dividend#1 = _word1_ div32u16u::dividend#0 +Constant right-side identified [95] divr16u::dividend#2 = _word0_ div32u16u::dividend#0 Constant right-side identified [153] bitmap_clear::col#0 = bitmap_clear::fgcol#0 * $10 Constant right-side identified [179] main::toD0181_$0 = main::toD0181_$7 & $3fff Constant right-side identified [182] main::toD0181_$3 = > (word)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant sin16s_gen2::ampl#0 = sin16s_gen2::max#0-sin16s_gen2::min#0 -Constant divr16u::dividend#1 = >div32u16u::dividend#0 -Constant divr16u::dividend#2 = <div32u16u::dividend#0 +Constant divr16u::dividend#1 = _word1_div32u16u::dividend#0 +Constant divr16u::dividend#2 = _word0_div32u16u::dividend#0 Constant bitmap_clear::col#0 = bitmap_clear::fgcol#0*$10 Constant main::toD0181_$0 = main::toD0181_$7&$3fff Constant main::toD0181_$3 = >(word)main::toD0181_gfx#0 @@ -2362,8 +2360,8 @@ Constant inlined memset::str#1 = (void*)BITMAP Constant inlined mul16s::a#2 = $64 Constant inlined memset::str#0 = (void*)SCREEN Constant inlined bitmap_clear::fgcol#0 = WHITE -Constant inlined divr16u::dividend#1 = >PI2_u4f28 -Constant inlined divr16u::dividend#2 = <PI2_u4f28 +Constant inlined divr16u::dividend#1 = _word1_PI2_u4f28 +Constant inlined divr16u::dividend#2 = _word0_PI2_u4f28 Constant inlined bitmap_screen#0 = SCREEN Constant inlined mulu16_sel::v2#2 = (word)$10000/6 Constant inlined bitmap_init::y#0 = 0 @@ -2621,7 +2619,7 @@ main::@2: scope:[main] from main::@1 main::@9: scope:[main] from main::@2 [28] main::xpos#0 = mul16s::return#3 [29] main::$6 = main::xpos#0 << 4 - [30] main::$7 = > main::$6 + [30] main::$7 = _word1_ main::$6 [31] main::x#0 = $a0 + main::$7 [32] main::$20 = main::idx_y#3 << 1 [33] main::$22 = SINE + main::$20 @@ -2633,7 +2631,7 @@ main::@9: scope:[main] from main::@2 main::@10: scope:[main] from main::@9 [38] main::ypos#0 = mul16s::return#4 [39] main::$10 = main::ypos#0 << 4 - [40] main::$11 = > main::$10 + [40] main::$11 = _word1_ main::$10 [41] main::y#0 = $64 + main::$11 [42] bitmap_plot::x#0 = main::x#0 [43] bitmap_plot::y#0 = (byte)main::y#0 @@ -2689,7 +2687,7 @@ sin16s_gen2::@4: scope:[sin16s_gen2] from sin16s_gen2::@2 to:sin16s_gen2::@5 sin16s_gen2::@5: scope:[sin16s_gen2] from sin16s_gen2::@4 [67] sin16s_gen2::$6 = mul16s::return#0 - [68] sin16s_gen2::$8 = > sin16s_gen2::$6 + [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8 [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD [71] sin16s_gen2::x#1 = sin16s_gen2::x#2 + sin16s_gen2::step#0 @@ -2781,18 +2779,18 @@ mul16s::@5: scope:[mul16s] from mul16s [116] if(mul16s::a#3>=0) goto mul16s::@1 to:mul16s::@3 mul16s::@3: scope:[mul16s] from mul16s::@5 - [117] mul16s::$6 = > mul16s::m#0 + [117] mul16s::$6 = _word1_ mul16s::m#0 [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3 - [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 + [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 to:mul16s::@1 mul16s::@1: scope:[mul16s] from mul16s::@3 mul16s::@5 [120] mul16s::m#5 = phi( mul16s::@3/mul16s::m#1, mul16s::@5/mul16s::m#0 ) [121] if(mul16s::b#3>=0) goto mul16s::@2 to:mul16s::@4 mul16s::@4: scope:[mul16s] from mul16s::@1 - [122] mul16s::$9 = > mul16s::m#5 + [122] mul16s::$9 = _word1_ mul16s::m#5 [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3 - [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 + [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 to:mul16s::@2 mul16s::@2: scope:[mul16s] from mul16s::@1 mul16s::@4 [125] mul16s::m#4 = phi( mul16s::@1/mul16s::m#5, mul16s::@4/mul16s::m#2 ) @@ -2852,7 +2850,7 @@ sin16s::@5: scope:[sin16s] from sin16s::@1 sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5 [149] sin16s::x#6 = phi( sin16s::@1/sin16s::x#4, sin16s::@5/sin16s::x#2 ) [150] sin16s::$4 = sin16s::x#6 << 3 - [151] sin16s::x1#0 = > sin16s::$4 + [151] sin16s::x1#0 = _word1_ sin16s::$4 [152] mulu16_sel::v1#0 = sin16s::x1#0 [153] mulu16_sel::v2#0 = sin16s::x1#0 [154] call mulu16_sel @@ -2958,7 +2956,7 @@ mul16u::@3: scope:[mul16u] from mul16u::@2 mul16u::@4 word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) divr16u: scope:[divr16u] from div32u16u div32u16u::@1 - [204] divr16u::dividend#5 = phi( div32u16u/>PI2_u4f28, div32u16u::@1/<PI2_u4f28 ) + [204] divr16u::dividend#5 = phi( div32u16u/_word1_PI2_u4f28, div32u16u::@1/_word0_PI2_u4f28 ) [204] divr16u::rem#10 = phi( div32u16u/0, div32u16u::@1/divr16u::rem#4 ) to:divr16u::@1 divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 @@ -3010,7 +3008,7 @@ mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@ mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel [227] mulu16_sel::$0 = mul16u::return#0 [228] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 - [229] mulu16_sel::return#12 = > mulu16_sel::$1 + [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 to:mulu16_sel::@return mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1 [230] return @@ -3595,7 +3593,6 @@ Statement [38] main::ypos#0 = mul16s::return#4 [ frame_cnt main::idx_x#3 main::i Statement [39] main::$10 = main::ypos#0 << 4 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::$10 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::$10 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a Statement [41] main::y#0 = $64 + main::$11 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::y#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::y#0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a Statement [42] bitmap_plot::x#0 = main::x#0 [ frame_cnt main::idx_x#3 main::idx_y#3 main::y#0 bitmap_plot::x#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::y#0 bitmap_plot::x#0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a -Statement [43] bitmap_plot::y#0 = (byte)main::y#0 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::y#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a Statement [46] if(main::idx_x#1!=$200) goto main::@12 [ frame_cnt main::idx_y#3 main::idx_x#1 ] ( main:3 [ frame_cnt main::idx_y#3 main::idx_x#1 ] { } ) always clobbers reg byte a Statement [50] if(main::idx_y#1!=$200) goto main::@13 [ frame_cnt main::idx_x#10 main::idx_y#1 ] ( main:3 [ frame_cnt main::idx_x#10 main::idx_y#1 ] { } ) always clobbers reg byte a Statement [53] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt] [ frame_cnt main::idx_x#10 main::idx_y#10 ] ( main:3 [ frame_cnt main::idx_x#10 main::idx_y#10 ] { } ) always clobbers reg byte x @@ -3607,7 +3604,7 @@ Statement [63] sin16s::return#0 = sin16s::return#1 [ sin16s_gen2::step#0 sin16s_ Statement [64] mul16s::a#0 = sin16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [66] mul16s::return#0 = mul16s::return#1 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [67] sin16s_gen2::$6 = mul16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$6 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$6 ] { } ) always clobbers reg byte a -Statement [68] sin16s_gen2::$8 = > sin16s_gen2::$6 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] { } ) always clobbers reg byte a +Statement [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] { } ) always clobbers reg byte a Statement [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 ] { } ) always clobbers reg byte a reg byte y Statement [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#0 ] { } ) always clobbers reg byte a Statement [71] sin16s_gen2::x#1 = sin16s_gen2::x#2 + sin16s_gen2::step#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] { } ) always clobbers reg byte a @@ -3625,13 +3622,13 @@ Statement [112] mul16u::b#1 = (word)mul16s::b#3 [ mul16s::a#3 mul16s::b#3 mul16u Statement [114] mul16u::return#3 = mul16u::res#2 [ mul16s::a#3 mul16s::b#3 mul16u::return#3 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } } ) always clobbers reg byte a Statement [115] mul16s::m#0 = mul16u::return#3 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [116] if(mul16s::a#3>=0) goto mul16s::@1 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a -Statement [117] mul16s::$6 = > mul16s::m#0 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a +Statement [117] mul16s::$6 = _word1_ mul16s::m#0 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a -Statement [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 [ mul16s::a#3 mul16s::b#3 mul16s::m#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a +Statement [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 [ mul16s::a#3 mul16s::b#3 mul16s::m#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [121] if(mul16s::b#3>=0) goto mul16s::@2 [ mul16s::a#3 mul16s::m#5 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a -Statement [122] mul16s::$9 = > mul16s::m#5 [ mul16s::a#3 mul16s::m#5 mul16s::$9 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a +Statement [122] mul16s::$9 = _word1_ mul16s::m#5 [ mul16s::a#3 mul16s::m#5 mul16s::$9 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3 [ mul16s::m#5 mul16s::$12 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#5 mul16s::$12 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#5 mul16s::$12 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#5 mul16s::$12 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a -Statement [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 [ mul16s::m#2 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#2 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#2 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#2 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a +Statement [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 [ mul16s::m#2 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#2 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#2 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#2 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [126] mul16s::return#1 = (signed dword)mul16s::m#4 [ mul16s::return#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::return#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::return#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [ bitmap_plot::x#0 bitmap_plot::plotter#0 ] ( main:3::bitmap_plot:44 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::plotter#0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a Statement [129] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( main:3::bitmap_plot:44 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a @@ -3649,7 +3646,7 @@ Statement [147] if(sin16s::x#4<PI_HALF_u4f28) goto sin16s::@2 [ sin16s::x#4 sin1 Removing always clobbered register reg byte a as potential for zp[1]:27 [ sin16s::isUpper#2 ] Statement [148] sin16s::x#2 = PI_u4f28 - sin16s::x#4 [ sin16s::isUpper#2 sin16s::x#2 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x#2 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a Statement [150] sin16s::$4 = sin16s::x#6 << 3 [ sin16s::isUpper#2 sin16s::$4 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::$4 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a -Statement [151] sin16s::x1#0 = > sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a +Statement [151] sin16s::x1#0 = _word1_ sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [152] mulu16_sel::v1#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [153] mulu16_sel::v2#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [155] mulu16_sel::return#0 = mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a @@ -3696,7 +3693,7 @@ Statement [224] mul16u::b#0 = mulu16_sel::v2#5 [ mul16u::b#0 mul16u::a#0 mulu16_ Statement [226] mul16u::return#0 = mul16u::res#2 [ mulu16_sel::select#5 mul16u::return#0 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::a#0 = mul16u::a#6 mul16u::b#2 mul16u::b#0 mulu16_sel::v2#5 mulu16_sel::v2#0 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mul16u::return#0 = mul16u::res#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#1 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#1 sin16s::x2#0 } { mul16u::return#0 = mul16u::res#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#2 sin16s::x3#0 } { mul16u::return#0 = mul16u::res#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#3 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#3 sin16s::x3#0 } { mul16u::return#0 = mul16u::res#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#4 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#4 sin16s::x4#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a Statement [227] mulu16_sel::$0 = mul16u::return#0 [ mulu16_sel::select#5 mulu16_sel::$0 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [228] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 [ mulu16_sel::$1 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } } ) always clobbers reg byte a -Statement [229] mulu16_sel::return#12 = > mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } } ) always clobbers reg byte a +Statement [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [1] frame_cnt = 1 [ frame_cnt ] ( [ frame_cnt ] { } ) always clobbers reg byte a Statement [5] *BG_COLOR = WHITE [ frame_cnt ] ( [ frame_cnt ] { } ) always clobbers reg byte a Statement [6] if(0==frame_cnt) goto irq::@1 [ frame_cnt ] ( [ frame_cnt ] { } ) always clobbers reg byte a @@ -3722,7 +3719,6 @@ Statement [38] main::ypos#0 = mul16s::return#4 [ frame_cnt main::idx_x#3 main::i Statement [39] main::$10 = main::ypos#0 << 4 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::$10 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::$10 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a Statement [41] main::y#0 = $64 + main::$11 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::y#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 main::y#0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a Statement [42] bitmap_plot::x#0 = main::x#0 [ frame_cnt main::idx_x#3 main::idx_y#3 main::y#0 bitmap_plot::x#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 main::y#0 bitmap_plot::x#0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a -Statement [43] bitmap_plot::y#0 = (byte)main::y#0 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::y#0 ] ( main:3 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::y#0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a Statement [46] if(main::idx_x#1!=$200) goto main::@12 [ frame_cnt main::idx_y#3 main::idx_x#1 ] ( main:3 [ frame_cnt main::idx_y#3 main::idx_x#1 ] { } ) always clobbers reg byte a Statement [50] if(main::idx_y#1!=$200) goto main::@13 [ frame_cnt main::idx_x#10 main::idx_y#1 ] ( main:3 [ frame_cnt main::idx_x#10 main::idx_y#1 ] { } ) always clobbers reg byte a Statement [53] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt] [ frame_cnt main::idx_x#10 main::idx_y#10 ] ( main:3 [ frame_cnt main::idx_x#10 main::idx_y#10 ] { } ) always clobbers reg byte x @@ -3734,7 +3730,7 @@ Statement [63] sin16s::return#0 = sin16s::return#1 [ sin16s_gen2::step#0 sin16s_ Statement [64] mul16s::a#0 = sin16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [66] mul16s::return#0 = mul16s::return#1 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [67] sin16s_gen2::$6 = mul16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$6 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$6 ] { } ) always clobbers reg byte a -Statement [68] sin16s_gen2::$8 = > sin16s_gen2::$6 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] { } ) always clobbers reg byte a +Statement [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::$8 ] { } ) always clobbers reg byte a Statement [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 ] { } ) always clobbers reg byte a reg byte y Statement [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#0 ] { } ) always clobbers reg byte a Statement [71] sin16s_gen2::x#1 = sin16s_gen2::x#2 + sin16s_gen2::step#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] ( main:3::sin16s_gen2:12 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] { } ) always clobbers reg byte a @@ -3752,13 +3748,13 @@ Statement [112] mul16u::b#1 = (word)mul16s::b#3 [ mul16s::a#3 mul16s::b#3 mul16u Statement [114] mul16u::return#3 = mul16u::res#2 [ mul16s::a#3 mul16s::b#3 mul16u::return#3 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16u::return#3 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } { mul16u::b#1 = mul16u::b#2 } { mul16u::a#2 = mul16u::a#6 } { mul16u::return#3 = mul16u::res#2 } } ) always clobbers reg byte a Statement [115] mul16s::m#0 = mul16u::return#3 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [116] if(mul16s::a#3>=0) goto mul16s::@1 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a -Statement [117] mul16s::$6 = > mul16s::m#0 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a +Statement [117] mul16s::$6 = _word1_ mul16s::m#0 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$6 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3 [ mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#0 mul16s::$11 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a -Statement [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 [ mul16s::a#3 mul16s::b#3 mul16s::m#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a +Statement [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 [ mul16s::a#3 mul16s::b#3 mul16s::m#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::b#3 mul16s::m#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [121] if(mul16s::b#3>=0) goto mul16s::@2 [ mul16s::a#3 mul16s::m#5 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a -Statement [122] mul16s::$9 = > mul16s::m#5 [ mul16s::a#3 mul16s::m#5 mul16s::$9 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a +Statement [122] mul16s::$9 = _word1_ mul16s::m#5 [ mul16s::a#3 mul16s::m#5 mul16s::$9 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::a#3 mul16s::m#5 mul16s::$9 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3 [ mul16s::m#5 mul16s::$12 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#5 mul16s::$12 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#5 mul16s::$12 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#5 mul16s::$12 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a -Statement [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 [ mul16s::m#2 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#2 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#2 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#2 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a +Statement [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 [ mul16s::m#2 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::m#2 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::m#2 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::m#2 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [126] mul16s::return#1 = (signed dword)mul16s::m#4 [ mul16s::return#1 ] ( main:3::mul16s:26 [ frame_cnt main::idx_x#3 main::idx_y#3 mul16s::return#1 ] { { mul16s::b#1 = mul16s::b#3 main::cos_x#0 } { mul16s::return#1 = mul16s::return#3 } } main:3::mul16s:36 [ frame_cnt main::idx_x#3 main::idx_y#3 main::x#0 mul16s::return#1 ] { { mul16s::b#2 = mul16s::b#3 main::sin_y#0 } { mul16s::return#1 = mul16s::return#4 } } main:3::sin16s_gen2:12::mul16s:65 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 mul16s::return#1 ] { { mul16s::a#0 = mul16s::a#3 sin16s::return#0 } { mul16s::return#0 = mul16s::return#1 } } ) always clobbers reg byte a Statement [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [ bitmap_plot::x#0 bitmap_plot::plotter#0 ] ( main:3::bitmap_plot:44 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::plotter#0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a Statement [129] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] ( main:3::bitmap_plot:44 [ frame_cnt main::idx_x#3 main::idx_y#3 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$0 ] { { bitmap_plot::x#0 = main::x#0 } } ) always clobbers reg byte a @@ -3775,7 +3771,7 @@ Statement [145] sin16s::x#1 = sin16s::x#0 - PI_u4f28 [ sin16s::x#1 ] ( main:3::s Statement [147] if(sin16s::x#4<PI_HALF_u4f28) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#2 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::x#4 sin16s::isUpper#2 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a Statement [148] sin16s::x#2 = PI_u4f28 - sin16s::x#4 [ sin16s::isUpper#2 sin16s::x#2 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x#2 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a Statement [150] sin16s::$4 = sin16s::x#6 << 3 [ sin16s::isUpper#2 sin16s::$4 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::$4 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a -Statement [151] sin16s::x1#0 = > sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a +Statement [151] sin16s::x1#0 = _word1_ sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [152] mulu16_sel::v1#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [153] mulu16_sel::v2#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [155] mulu16_sel::return#0 = mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] ( main:3::sin16s_gen2:12::sin16s:62 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } ) always clobbers reg byte a @@ -3818,7 +3814,7 @@ Statement [224] mul16u::b#0 = mulu16_sel::v2#5 [ mul16u::b#0 mul16u::a#0 mulu16_ Statement [226] mul16u::return#0 = mul16u::res#2 [ mulu16_sel::select#5 mul16u::return#0 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::a#0 = mul16u::a#6 mul16u::b#2 mul16u::b#0 mulu16_sel::v2#5 mulu16_sel::v2#0 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mul16u::return#0 = mul16u::res#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#1 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#1 sin16s::x2#0 } { mul16u::return#0 = mul16u::res#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#2 sin16s::x3#0 } { mul16u::return#0 = mul16u::res#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#3 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#3 sin16s::x3#0 } { mul16u::return#0 = mul16u::res#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::b#0 = mul16u::b#2 mulu16_sel::v2#5 mulu16_sel::v2#4 sin16s::x1#0 } { mul16u::a#0 = mul16u::a#6 mulu16_sel::v1#5 mulu16_sel::v1#4 sin16s::x4#0 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a Statement [227] mulu16_sel::$0 = mul16u::return#0 [ mulu16_sel::select#5 mulu16_sel::$0 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [228] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 [ mulu16_sel::$1 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } } ) always clobbers reg byte a -Statement [229] mulu16_sel::return#12 = > mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } } ) always clobbers reg byte a +Statement [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:154 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:159 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:163 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:169 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } } main:3::sin16s_gen2:12::sin16s:62::mulu16_sel:174 [ frame_cnt sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen2::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::idx_x#3 main::idx_x#10 main::idx_x#1 ] : zp[2]:2 , Potential registers zp[2]:4 [ main::idx_y#3 main::idx_y#10 main::idx_y#1 ] : zp[2]:4 , Potential registers zp[2]:6 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] : zp[2]:6 , @@ -3947,26 +3943,26 @@ Uplifting [mul16s] best 27208 combination zp[4]:23 [ mul16s::m#4 mul16s::m#5 mul Uplifting [memset] best 27192 combination zp[2]:39 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:204 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:34 [ memset::num#2 ] zp[2]:36 [ memset::str#3 ] Uplifting [bitmap_init] best 26742 combination zp[2]:17 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte a [ bitmap_init::$4 ] zp[1]:135 [ bitmap_init::$5 ] zp[1]:136 [ bitmap_init::$6 ] zp[1]:133 [ bitmap_init::$7 ] Limited combination testing to 100 combinations of 15360 possible. -Uplifting [bitmap_plot] best 26705 combination reg byte a [ bitmap_plot::y#0 ] zp[2]:155 [ bitmap_plot::$0 ] reg byte x [ bitmap_plot::$1 ] zp[2]:157 [ bitmap_plot::plotter#1 ] zp[2]:153 [ bitmap_plot::plotter#0 ] zp[2]:110 [ bitmap_plot::x#0 ] -Uplifting [sin16s_gen2] best 26705 combination zp[2]:6 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] zp[4]:127 [ sin16s_gen2::$6 ] zp[4]:8 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] zp[2]:131 [ sin16s_gen2::$8 ] zp[2]:12 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] zp[4]:117 [ sin16s_gen2::step#0 ] -Uplifting [div32u16u] best 26705 combination zp[2]:166 [ div32u16u::quotient_lo#0 ] zp[2]:162 [ div32u16u::quotient_hi#0 ] zp[4]:168 [ div32u16u::return#1 ] zp[4]:113 [ div32u16u::return#0 ] -Uplifting [main] best 26465 combination zp[2]:4 [ main::idx_y#3 main::idx_y#10 main::idx_y#1 ] zp[2]:66 [ main::$19 ] zp[2]:68 [ main::$21 ] zp[2]:70 [ main::cos_x#0 ] zp[4]:76 [ main::xpos#0 ] zp[4]:80 [ main::$6 ] reg byte alu [ main::$7 ] zp[2]:88 [ main::$20 ] zp[2]:90 [ main::$22 ] zp[2]:92 [ main::sin_y#0 ] zp[4]:98 [ main::ypos#0 ] zp[4]:102 [ main::$10 ] reg byte alu [ main::$11 ] zp[2]:2 [ main::idx_x#3 main::idx_x#10 main::idx_x#1 ] zp[2]:108 [ main::y#0 ] zp[2]:86 [ main::x#0 ] -Uplifting [] best 26465 combination zp[2]:209 [ rem16u#14 ] zp[1]:65 [ frame_cnt ] -Uplifting [MOS6526_CIA] best 26465 combination -Uplifting [MOS6569_VICII] best 26465 combination -Uplifting [MOS6581_SID] best 26465 combination -Uplifting [bitmap_clear] best 26465 combination -Uplifting [init_irq] best 26465 combination -Uplifting [irq] best 26465 combination -Uplifting [__start] best 26465 combination +Uplifting [bitmap_plot] best 26703 combination reg byte x [ bitmap_plot::y#0 ] zp[2]:155 [ bitmap_plot::$0 ] reg byte x [ bitmap_plot::$1 ] zp[2]:157 [ bitmap_plot::plotter#1 ] zp[2]:153 [ bitmap_plot::plotter#0 ] zp[2]:110 [ bitmap_plot::x#0 ] +Uplifting [sin16s_gen2] best 26703 combination zp[2]:6 [ sin16s_gen2::i#2 sin16s_gen2::i#1 ] zp[4]:127 [ sin16s_gen2::$6 ] zp[4]:8 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] zp[2]:131 [ sin16s_gen2::$8 ] zp[2]:12 [ sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] zp[4]:117 [ sin16s_gen2::step#0 ] +Uplifting [div32u16u] best 26703 combination zp[2]:166 [ div32u16u::quotient_lo#0 ] zp[2]:162 [ div32u16u::quotient_hi#0 ] zp[4]:168 [ div32u16u::return#1 ] zp[4]:113 [ div32u16u::return#0 ] +Uplifting [main] best 26463 combination zp[2]:4 [ main::idx_y#3 main::idx_y#10 main::idx_y#1 ] zp[2]:66 [ main::$19 ] zp[2]:68 [ main::$21 ] zp[2]:70 [ main::cos_x#0 ] zp[4]:76 [ main::xpos#0 ] zp[4]:80 [ main::$6 ] reg byte alu [ main::$7 ] zp[2]:88 [ main::$20 ] zp[2]:90 [ main::$22 ] zp[2]:92 [ main::sin_y#0 ] zp[4]:98 [ main::ypos#0 ] zp[4]:102 [ main::$10 ] reg byte alu [ main::$11 ] zp[2]:2 [ main::idx_x#3 main::idx_x#10 main::idx_x#1 ] zp[2]:108 [ main::y#0 ] zp[2]:86 [ main::x#0 ] +Uplifting [] best 26463 combination zp[2]:209 [ rem16u#14 ] zp[1]:65 [ frame_cnt ] +Uplifting [MOS6526_CIA] best 26463 combination +Uplifting [MOS6569_VICII] best 26463 combination +Uplifting [MOS6581_SID] best 26463 combination +Uplifting [bitmap_clear] best 26463 combination +Uplifting [init_irq] best 26463 combination +Uplifting [irq] best 26463 combination +Uplifting [__start] best 26463 combination Attempting to uplift remaining variables inzp[1]:135 [ bitmap_init::$5 ] -Uplifting [bitmap_init] best 26405 combination reg byte a [ bitmap_init::$5 ] +Uplifting [bitmap_init] best 26403 combination reg byte a [ bitmap_init::$5 ] Attempting to uplift remaining variables inzp[1]:136 [ bitmap_init::$6 ] -Uplifting [bitmap_init] best 26345 combination reg byte a [ bitmap_init::$6 ] +Uplifting [bitmap_init] best 26343 combination reg byte a [ bitmap_init::$6 ] Attempting to uplift remaining variables inzp[1]:133 [ bitmap_init::$7 ] -Uplifting [bitmap_init] best 26345 combination zp[1]:133 [ bitmap_init::$7 ] +Uplifting [bitmap_init] best 26343 combination zp[1]:133 [ bitmap_init::$7 ] Attempting to uplift remaining variables inzp[1]:65 [ frame_cnt ] -Uplifting [] best 26345 combination zp[1]:65 [ frame_cnt ] +Uplifting [] best 26343 combination zp[1]:65 [ frame_cnt ] Coalescing zero page register [ zp[2]:32 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] ] with [ zp[2]:202 [ sin16s::usinx#1 ] ] - score: 2 Coalescing zero page register [ zp[2]:60 [ mulu16_sel::v1#5 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 mulu16_sel::v1#3 ] ] with [ zp[2]:184 [ sin16s::x3#0 ] ] - score: 2 Coalescing zero page register [ zp[2]:19 [ mul16s::a#3 mul16s::a#0 ] ] with [ zp[2]:121 [ sin16s::return#0 ] ] - score: 1 @@ -4302,8 +4298,8 @@ main: { rol.z __6+1 rol.z __6+2 rol.z __6+3 - // [30] main::$7 = > main::$6 - // [31] main::x#0 = $a0 + main::$7 -- vwuz1=vwuc1_plus__hi_vdsz2 + // [30] main::$7 = _word1_ main::$6 + // [31] main::x#0 = $a0 + main::$7 -- vwuz1=vwuc1_plus__word1_vdsz2 clc lda #<$a0 adc.z __6+2 @@ -4368,8 +4364,8 @@ main: { rol.z __10+1 rol.z __10+2 rol.z __10+3 - // [40] main::$11 = > main::$10 - // [41] main::y#0 = $64 + main::$11 -- vwuz1=vwuc1_plus__hi_vdsz2 + // [40] main::$11 = _word1_ main::$10 + // [41] main::y#0 = $64 + main::$11 -- vwuz1=vwuc1_plus__word1_vdsz2 clc lda #<$64 adc.z __10+2 @@ -4378,8 +4374,8 @@ main: { adc.z __10+3 sta.z y+1 // [42] bitmap_plot::x#0 = main::x#0 - // [43] bitmap_plot::y#0 = (byte)main::y#0 -- vbuaa=_byte_vwuz1 - lda.z y + // [43] bitmap_plot::y#0 = (byte)main::y#0 -- vbuxx=_byte_vwuz1 + ldx.z y // [44] call bitmap_plot jsr bitmap_plot jmp __b11 @@ -4555,7 +4551,7 @@ sin16s_gen2: { // sin16s_gen2::@5 __b5: // [67] sin16s_gen2::$6 = mul16s::return#0 - // [68] sin16s_gen2::$8 = > sin16s_gen2::$6 -- vwuz1=_hi_vdsz2 + // [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 -- vwuz1=_word1_vdsz2 lda.z __6+2 sta.z __8 lda.z __6+3 @@ -4668,13 +4664,13 @@ bitmap_init: { // [83] bitmap_init::$7 = bitmap_init::y#2 & 7 -- vbuz1=vbuxx_band_vbuc1 lda #7 sax.z __7 - // [84] bitmap_init::$4 = < bitmap_init::yoffs#2 -- vbuaa=_lo_pbuz1 + // [84] bitmap_init::$4 = < bitmap_init::yoffs#2 -- vbuaa=_byte0_pbuz1 lda.z yoffs // [85] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa ora.z __7 // [86] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x - // [87] bitmap_init::$6 = > bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 + // [87] bitmap_init::$6 = > bitmap_init::yoffs#2 -- vbuaa=_byte1_pbuz1 lda.z yoffs+1 // [88] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x @@ -4842,7 +4838,7 @@ mul16s: { jmp __b3 // mul16s::@3 __b3: - // [117] mul16s::$6 = > mul16s::m#0 -- vwuz1=_hi_vduz2 + // [117] mul16s::$6 = _word1_ mul16s::m#0 -- vwuz1=_word1_vduz2 lda.z m+2 sta.z __6 lda.z m+3 @@ -4855,7 +4851,7 @@ mul16s: { lda.z __11+1 sbc.z b+1 sta.z __11+1 - // [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 -- vduz1=vduz1_sethi_vwuz2 + // [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 -- vduz1=vduz1_setword1_vwuz2 lda.z __11 sta.z m+2 lda.z __11+1 @@ -4873,7 +4869,7 @@ mul16s: { jmp __b4 // mul16s::@4 __b4: - // [122] mul16s::$9 = > mul16s::m#5 -- vwuz1=_hi_vduz2 + // [122] mul16s::$9 = _word1_ mul16s::m#5 -- vwuz1=_word1_vduz2 lda.z m+2 sta.z __9 lda.z m+3 @@ -4886,7 +4882,7 @@ mul16s: { lda.z __9+1 sbc.z __12+1 sta.z __12+1 - // [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 -- vduz1=vduz1_sethi_vwuz2 + // [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 -- vduz1=vduz1_setword1_vwuz2 lda.z __12 sta.z m+2 lda.z __12+1 @@ -4907,16 +4903,15 @@ mul16s: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp($17) x, byte register(A) y) +// bitmap_plot(word zp($17) x, byte register(X) y) bitmap_plot: { .label __0 = $22 .label plotter = $20 .label x = $17 - // [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa - tay - lda bitmap_plot_yhi,y + // [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + lda bitmap_plot_yhi,x sta.z plotter+1 - lda bitmap_plot_ylo,y + lda bitmap_plot_ylo,x sta.z plotter // [129] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 -- vwuz1=vwuz2_band_vwuc1 lda.z x @@ -4933,7 +4928,7 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // [131] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_lo_vwuz1 + // [131] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1 ldx.z x // [132] *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 @@ -4957,7 +4952,7 @@ div32u16u: { // [135] call divr16u // [204] phi from div32u16u to divr16u [phi:div32u16u->divr16u] divr16u_from_div32u16u: - // [204] phi divr16u::dividend#5 = >PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 + // [204] phi divr16u::dividend#5 = _word1_PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 lda #<PI2_u4f28>>$10 sta.z divr16u.dividend lda #>PI2_u4f28>>$10 @@ -4985,7 +4980,7 @@ div32u16u: { // [139] call divr16u // [204] phi from div32u16u::@1 to divr16u [phi:div32u16u::@1->divr16u] divr16u_from___b1: - // [204] phi divr16u::dividend#5 = <PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 + // [204] phi divr16u::dividend#5 = _word0_PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 lda #<PI2_u4f28&$ffff sta.z divr16u.dividend lda #>PI2_u4f28&$ffff @@ -5140,7 +5135,7 @@ sin16s: { rol.z __4+1 rol.z __4+2 rol.z __4+3 - // [151] sin16s::x1#0 = > sin16s::$4 -- vwuz1=_hi_vduz2 + // [151] sin16s::x1#0 = _word1_ sin16s::$4 -- vwuz1=_word1_vduz2 lda.z __4+2 sta.z x1 lda.z __4+3 @@ -5493,7 +5488,7 @@ divr16u: { // [206] divr16u::rem#0 = divr16u::rem#5 << 1 -- vwuz1=vwuz1_rol_1 asl.z rem rol.z rem+1 - // [207] divr16u::$1 = > divr16u::dividend#3 -- vbuaa=_hi_vwuz1 + // [207] divr16u::$1 = > divr16u::dividend#3 -- vbuaa=_byte1_vwuz1 lda.z dividend+1 // [208] divr16u::$2 = divr16u::$1 & $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 @@ -5611,7 +5606,7 @@ mulu16_sel: { dex bne !- !e: - // [229] mulu16_sel::return#12 = > mulu16_sel::$1 -- vwuz1=_hi_vduz2 + // [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 -- vwuz1=_word1_vduz2 lda.z __1+2 sta.z return lda.z __1+3 @@ -5943,7 +5938,7 @@ byte* bitmap_plot::plotter#1 plotter zp[2]:32 1501.5 word bitmap_plot::x word bitmap_plot::x#0 x zp[2]:23 420.59999999999997 byte bitmap_plot::y -byte bitmap_plot::y#0 reg byte a 2103.0 +byte bitmap_plot::y#0 reg byte x 2103.0 constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } @@ -6187,7 +6182,7 @@ reg byte alu [ main::$7 ] zp[2]:23 [ main::x#0 bitmap_plot::x#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 sin16s_gen2::i#2 sin16s_gen2::i#1 ] reg byte alu [ main::$11 ] zp[2]:25 [ main::y#0 memset::num#2 memset::end#0 sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] -reg byte a [ bitmap_plot::y#0 ] +reg byte x [ bitmap_plot::y#0 ] zp[4]:27 [ div32u16u::return#0 sin16s_gen2::step#0 div32u16u::return#1 ] zp[1]:31 [ bitmap_init::$7 ] reg byte a [ bitmap_init::$4 ] @@ -6206,7 +6201,7 @@ zp[2]:44 [ rem16u#14 ] FINAL ASSEMBLER -Score: 20492 +Score: 20490 // File Comments // Tests the simple bitmap plotter - and counts plots per frame in an IRQ @@ -6442,10 +6437,10 @@ main: { rol.z __6+1 rol.z __6+2 rol.z __6+3 - // >(xpos<<4) - // [30] main::$7 = > main::$6 - // word x = (word)(160 + >(xpos<<4)) - // [31] main::x#0 = $a0 + main::$7 -- vwuz1=vwuc1_plus__hi_vdsz2 + // WORD1(xpos<<4) + // [30] main::$7 = _word1_ main::$6 + // word x = (word)(160 + WORD1(xpos<<4)) + // [31] main::x#0 = $a0 + main::$7 -- vwuz1=vwuc1_plus__word1_vdsz2 clc lda #<$a0 adc.z __6+2 @@ -6512,10 +6507,10 @@ main: { rol.z __10+1 rol.z __10+2 rol.z __10+3 - // >(ypos<<4) - // [40] main::$11 = > main::$10 - // word y = (word)(100 + >(ypos<<4)) - // [41] main::y#0 = $64 + main::$11 -- vwuz1=vwuc1_plus__hi_vdsz2 + // WORD1(ypos<<4) + // [40] main::$11 = _word1_ main::$10 + // word y = (word)(100 + WORD1(ypos<<4)) + // [41] main::y#0 = $64 + main::$11 -- vwuz1=vwuc1_plus__word1_vdsz2 clc lda #<$64 adc.z __10+2 @@ -6525,8 +6520,8 @@ main: { sta.z y+1 // bitmap_plot(x, (byte)y) // [42] bitmap_plot::x#0 = main::x#0 - // [43] bitmap_plot::y#0 = (byte)main::y#0 -- vbuaa=_byte_vwuz1 - lda.z y + // [43] bitmap_plot::y#0 = (byte)main::y#0 -- vbuxx=_byte_vwuz1 + ldx.z y // [44] call bitmap_plot jsr bitmap_plot // main::@11 @@ -6680,13 +6675,13 @@ sin16s_gen2: { // [66] mul16s::return#0 = mul16s::return#1 // sin16s_gen2::@5 // [67] sin16s_gen2::$6 = mul16s::return#0 - // >mul16s(sin16s(x), ampl) - // [68] sin16s_gen2::$8 = > sin16s_gen2::$6 -- vwuz1=_hi_vdsz2 + // WORD1(mul16s(sin16s(x), ampl)) + // [68] sin16s_gen2::$8 = _word1_ sin16s_gen2::$6 -- vwuz1=_word1_vdsz2 lda.z __6+2 sta.z __8 lda.z __6+3 sta.z __8+1 - // *sintab++ = offs + (signed int)>mul16s(sin16s(x), ampl) + // *sintab++ = offs + (signed int)WORD1(mul16s(sin16s(x), ampl)) // [69] *sin16s_gen2::sintab#2 = (signed word)sin16s_gen2::$8 -- _deref_pwsz1=vwsz2 ldy #0 lda.z __8 @@ -6694,7 +6689,7 @@ sin16s_gen2: { iny lda.z __8+1 sta (sintab),y - // *sintab++ = offs + (signed int)>mul16s(sin16s(x), ampl); + // *sintab++ = offs + (signed int)WORD1(mul16s(sin16s(x), ampl)); // [70] sin16s_gen2::sintab#0 = sin16s_gen2::sintab#2 + SIZEOF_SIGNED_WORD -- pwsz1=pwsz1_plus_vbuc1 lda #SIZEOF_SIGNED_WORD clc @@ -6787,19 +6782,19 @@ bitmap_init: { // [83] bitmap_init::$7 = bitmap_init::y#2 & 7 -- vbuz1=vbuxx_band_vbuc1 lda #7 sax.z __7 - // <yoffs - // [84] bitmap_init::$4 = < bitmap_init::yoffs#2 -- vbuaa=_lo_pbuz1 + // BYTE0(yoffs) + // [84] bitmap_init::$4 = < bitmap_init::yoffs#2 -- vbuaa=_byte0_pbuz1 lda.z yoffs - // y&$7 | <yoffs + // y&$7 | BYTE0(yoffs) // [85] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4 -- vbuaa=vbuz1_bor_vbuaa ora.z __7 - // bitmap_plot_ylo[y] = y&$7 | <yoffs + // bitmap_plot_ylo[y] = y&$7 | BYTE0(yoffs) // [86] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x - // >yoffs - // [87] bitmap_init::$6 = > bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 + // BYTE1(yoffs) + // [87] bitmap_init::$6 = > bitmap_init::yoffs#2 -- vbuaa=_byte1_pbuz1 lda.z yoffs+1 - // bitmap_plot_yhi[y] = >yoffs + // bitmap_plot_yhi[y] = BYTE1(yoffs) // [88] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x // if((y&$7)==7) @@ -6966,13 +6961,13 @@ mul16s: { lda.z a+1 bpl __b1 // mul16s::@3 - // >m - // [117] mul16s::$6 = > mul16s::m#0 -- vwuz1=_hi_vduz2 + // WORD1(m) + // [117] mul16s::$6 = _word1_ mul16s::m#0 -- vwuz1=_word1_vduz2 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 // [118] mul16s::$11 = mul16s::$6 - (word)mul16s::b#3 -- vwuz1=vwuz1_minus_vwuz2 lda.z __11 sec @@ -6981,7 +6976,7 @@ mul16s: { lda.z __11+1 sbc.z b+1 sta.z __11+1 - // [119] mul16s::m#1 = mul16s::m#0 hi= mul16s::$11 -- vduz1=vduz1_sethi_vwuz2 + // [119] mul16s::m#1 = mul16s::m#0 word1= mul16s::$11 -- vduz1=vduz1_setword1_vwuz2 lda.z __11 sta.z m+2 lda.z __11+1 @@ -6995,13 +6990,13 @@ mul16s: { lda.z b+1 bpl __b2 // mul16s::@4 - // >m - // [122] mul16s::$9 = > mul16s::m#5 -- vwuz1=_hi_vduz2 + // WORD1(m) + // [122] mul16s::$9 = _word1_ mul16s::m#5 -- vwuz1=_word1_vduz2 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 // [123] mul16s::$12 = mul16s::$9 - (word)mul16s::a#3 -- vwuz1=vwuz2_minus_vwuz1 lda.z __9 sec @@ -7010,7 +7005,7 @@ mul16s: { lda.z __9+1 sbc.z __12+1 sta.z __12+1 - // [124] mul16s::m#2 = mul16s::m#5 hi= mul16s::$12 -- vduz1=vduz1_sethi_vwuz2 + // [124] mul16s::m#2 = mul16s::m#5 word1= mul16s::$12 -- vduz1=vduz1_setword1_vwuz2 lda.z __12 sta.z m+2 lda.z __12+1 @@ -7028,17 +7023,16 @@ mul16s: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp($17) x, byte register(A) y) +// bitmap_plot(word zp($17) x, byte register(X) y) bitmap_plot: { .label __0 = $22 .label plotter = $20 .label x = $17 // char* plotter = (char*) { bitmap_plot_yhi[y], bitmap_plot_ylo[y] } - // [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa - tay - lda bitmap_plot_yhi,y + // [128] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx + lda bitmap_plot_yhi,x sta.z plotter+1 - lda bitmap_plot_ylo,y + lda bitmap_plot_ylo,x sta.z plotter // x & $fff8 // [129] bitmap_plot::$0 = bitmap_plot::x#0 & $fff8 -- vwuz1=vwuz2_band_vwuc1 @@ -7057,10 +7051,10 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // <x - // [131] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_lo_vwuz1 + // BYTE0(x) + // [131] bitmap_plot::$1 = < bitmap_plot::x#0 -- vbuxx=_byte0_vwuz1 ldx.z x - // *plotter |= bitmap_plot_bit[<x] + // *plotter |= bitmap_plot_bit[BYTE0(x)] // [132] *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 @@ -7078,10 +7072,10 @@ div32u16u: { .label return = $1b .label quotient_hi = $28 .label quotient_lo = $14 - // divr16u(>dividend, divisor, 0) + // divr16u(WORD1(dividend), divisor, 0) // [135] call divr16u // [204] phi from div32u16u to divr16u [phi:div32u16u->divr16u] - // [204] phi divr16u::dividend#5 = >PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 + // [204] phi divr16u::dividend#5 = _word1_PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 lda #<PI2_u4f28>>$10 sta.z divr16u.dividend lda #>PI2_u4f28>>$10 @@ -7091,16 +7085,16 @@ div32u16u: { sta.z divr16u.rem sta.z divr16u.rem+1 jsr divr16u - // divr16u(>dividend, divisor, 0) + // divr16u(WORD1(dividend), divisor, 0) // [136] divr16u::return#2 = divr16u::return#0 // div32u16u::@1 - // unsigned int quotient_hi = divr16u(>dividend, divisor, 0) + // unsigned int quotient_hi = divr16u(WORD1(dividend), divisor, 0) // [137] div32u16u::quotient_hi#0 = divr16u::return#2 -- vwuz1=vwuz2 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) // [138] divr16u::rem#4 = rem16u#14 -- vwuz1=vwuz2 lda.z rem16u sta.z divr16u.rem @@ -7108,17 +7102,17 @@ div32u16u: { sta.z divr16u.rem+1 // [139] call divr16u // [204] phi from div32u16u::@1 to divr16u [phi:div32u16u::@1->divr16u] - // [204] phi divr16u::dividend#5 = <PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 + // [204] phi divr16u::dividend#5 = _word0_PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 lda #<PI2_u4f28&$ffff sta.z divr16u.dividend lda #>PI2_u4f28&$ffff sta.z divr16u.dividend+1 // [204] phi divr16u::rem#10 = divr16u::rem#4 [phi:div32u16u::@1->divr16u#1] -- register_copy jsr divr16u - // divr16u(<dividend, divisor, rem16u) + // divr16u(WORD0(dividend), divisor, rem16u) // [140] divr16u::return#3 = divr16u::return#0 // div32u16u::@2 - // unsigned int quotient_lo = divr16u(<dividend, divisor, rem16u) + // unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u) // [141] div32u16u::quotient_lo#0 = divr16u::return#3 // unsigned long quotient = { quotient_hi, quotient_lo} // [142] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3 @@ -7259,8 +7253,8 @@ sin16s: { rol.z __4+1 rol.z __4+2 rol.z __4+3 - // unsigned int x1 = >x<<3 - // [151] sin16s::x1#0 = > sin16s::$4 -- vwuz1=_hi_vduz2 + // unsigned int x1 = WORD1(x<<3) + // [151] sin16s::x1#0 = _word1_ sin16s::$4 -- vwuz1=_word1_vduz2 lda.z __4+2 sta.z x1 lda.z __4+3 @@ -7602,13 +7596,13 @@ divr16u: { // [206] divr16u::rem#0 = divr16u::rem#5 << 1 -- vwuz1=vwuz1_rol_1 asl.z rem rol.z rem+1 - // >dividend - // [207] divr16u::$1 = > divr16u::dividend#3 -- vbuaa=_hi_vwuz1 + // BYTE1(dividend) + // [207] divr16u::$1 = > divr16u::dividend#3 -- vbuaa=_byte1_vwuz1 lda.z dividend+1 - // >dividend & $80 + // BYTE1(dividend) & $80 // [208] divr16u::$2 = divr16u::$1 & $80 -- vbuaa=vbuaa_band_vbuc1 and #$80 - // if( (>dividend & $80) != 0 ) + // if( (BYTE1(dividend) & $80) != 0 ) // [209] if(divr16u::$2==0) goto divr16u::@2 -- vbuaa_eq_0_then_la1 cmp #0 beq __b2 @@ -7718,8 +7712,8 @@ mulu16_sel: { dex bne !- !e: - // >mul16u(v1, v2)<<select - // [229] mulu16_sel::return#12 = > mulu16_sel::$1 -- vwuz1=_hi_vduz2 + // WORD1(mul16u(v1, v2)<<select) + // [229] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 -- vwuz1=_word1_vduz2 lda.z __1+2 sta.z return lda.z __1+3 diff --git a/src/test/ref/bitmap-plot-1.sym b/src/test/ref/bitmap-plot-1.sym index d7e8085d4..424701bfd 100644 --- a/src/test/ref/bitmap-plot-1.sym +++ b/src/test/ref/bitmap-plot-1.sym @@ -63,7 +63,7 @@ byte* bitmap_plot::plotter#1 plotter zp[2]:32 1501.5 word bitmap_plot::x word bitmap_plot::x#0 x zp[2]:23 420.59999999999997 byte bitmap_plot::y -byte bitmap_plot::y#0 reg byte a 2103.0 +byte bitmap_plot::y#0 reg byte x 2103.0 constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } @@ -307,7 +307,7 @@ reg byte alu [ main::$7 ] zp[2]:23 [ main::x#0 bitmap_plot::x#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 sin16s_gen2::i#2 sin16s_gen2::i#1 ] reg byte alu [ main::$11 ] zp[2]:25 [ main::y#0 memset::num#2 memset::end#0 sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] -reg byte a [ bitmap_plot::y#0 ] +reg byte x [ bitmap_plot::y#0 ] zp[4]:27 [ div32u16u::return#0 sin16s_gen2::step#0 div32u16u::return#1 ] zp[1]:31 [ bitmap_init::$7 ] reg byte a [ bitmap_init::$4 ] diff --git a/src/test/ref/bitmap-plot-3.asm b/src/test/ref/bitmap-plot-3.asm index 5f6eb5628..1d39364d1 100644 --- a/src/test/ref/bitmap-plot-3.asm +++ b/src/test/ref/bitmap-plot-3.asm @@ -523,8 +523,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 diff --git a/src/test/ref/bitmap-plot-3.cfg b/src/test/ref/bitmap-plot-3.cfg index f275caeee..a5adcee3f 100644 --- a/src/test/ref/bitmap-plot-3.cfg +++ b/src/test/ref/bitmap-plot-3.cfg @@ -254,7 +254,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [122] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [124] bitmap_plot::$1 = (byte)bitmap_plot::x#4 + [124] bitmap_plot::$1 = < bitmap_plot::x#4 [125] *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 diff --git a/src/test/ref/bitmap-plot-3.log b/src/test/ref/bitmap-plot-3.log index 8e61299e2..b545c0fd8 100644 --- a/src/test/ref/bitmap-plot-3.log +++ b/src/test/ref/bitmap-plot-3.log @@ -126,7 +126,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] } bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0 - bitmap_plot::$1 = (byte)bitmap_plot::x#4 + bitmap_plot::$1 = < bitmap_plot::x#4 *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 @@ -1927,7 +1927,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [122] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [124] bitmap_plot::$1 = (byte)bitmap_plot::x#4 + [124] bitmap_plot::$1 = < bitmap_plot::x#4 [125] *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 @@ -2028,7 +2028,7 @@ word bitmap_plot::x#0 101.0 word bitmap_plot::x#1 10001.0 word bitmap_plot::x#2 101.0 word bitmap_plot::x#3 10001.0 -word bitmap_plot::x#4 30051.25 +word bitmap_plot::x#4 55051.5 byte bitmap_plot::y byte bitmap_plot::y#0 202.0 byte bitmap_plot::y#1 20002.0 @@ -2426,7 +2426,7 @@ Potential registers zp[2]:71 [ bitmap_plot::plotter#1 ] : zp[2]:71 , Potential registers zp[1]:73 [ bitmap_plot::$1 ] : zp[1]:73 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [bitmap_plot] 260,614: zp[1]:30 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:69 [ bitmap_plot::$0 ] 200,002: zp[1]:73 [ bitmap_plot::$1 ] 150,001.5: zp[2]:71 [ bitmap_plot::plotter#1 ] 50,255.25: zp[2]:31 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:67 [ bitmap_plot::plotter#0 ] +Uplift Scope [bitmap_plot] 260,614: zp[1]:30 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 200,002: zp[2]:69 [ bitmap_plot::$0 ] 200,002: zp[1]:73 [ bitmap_plot::$1 ] 150,001.5: zp[2]:71 [ bitmap_plot::plotter#1 ] 75,255.5: zp[2]:31 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 50,000.5: zp[2]:67 [ bitmap_plot::plotter#0 ] Uplift Scope [bitmap_line] 69,095.99: zp[2]:11 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] 55,062.47: zp[2]:13 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] 52,560.77: zp[2]:9 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 52,560.77: zp[2]:15 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 844.64: zp[2]:51 [ bitmap_line::dy#0 ] 773.19: zp[2]:59 [ bitmap_line::sy#0 ] 760.17: zp[2]:47 [ bitmap_line::dx#0 ] 670.1: zp[2]:55 [ bitmap_line::sx#0 ] 319.19: zp[2]:39 [ bitmap_line::y2#0 ] 300.41: zp[2]:37 [ bitmap_line::x2#0 ] Uplift Scope [abs_u16] 3,758.25: zp[2]:24 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 ] 2,002: zp[1]:63 [ abs_u16::$0 ] 2,002: zp[1]:64 [ abs_u16::$1 ] 202: zp[2]:45 [ abs_u16::return#0 ] 202: zp[2]:49 [ abs_u16::return#1 ] Uplift Scope [sgn_u16] 2,002: zp[1]:65 [ sgn_u16::$0 ] 2,002: zp[1]:66 [ sgn_u16::$1 ] 1,607: zp[2]:26 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] 202: zp[2]:53 [ sgn_u16::return#0 ] 202: zp[2]:57 [ sgn_u16::return#1 ] 50.5: zp[2]:28 [ sgn_u16::return#4 ] @@ -3290,7 +3290,7 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // [124] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 + // [124] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 ldx.z x // [125] *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 @@ -3570,7 +3570,7 @@ word bitmap_plot::x#0 x zp[2]:6 101.0 word bitmap_plot::x#1 x zp[2]:6 10001.0 word bitmap_plot::x#2 x zp[2]:6 101.0 word bitmap_plot::x#3 x zp[2]:6 10001.0 -word bitmap_plot::x#4 x zp[2]:6 30051.25 +word bitmap_plot::x#4 x zp[2]:6 55051.5 byte bitmap_plot::y byte bitmap_plot::y#0 reg byte x 202.0 byte bitmap_plot::y#1 reg byte x 20002.0 @@ -4416,9 +4416,10 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // *plotter |= bitmap_plot_bit[(char)x] - // [124] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 + // BYTE0(x) + // [124] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 ldx.z x + // *plotter |= bitmap_plot_bit[BYTE0(x)] // [125] *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 diff --git a/src/test/ref/bitmap-plot-3.sym b/src/test/ref/bitmap-plot-3.sym index 98c47bc83..74fde0340 100644 --- a/src/test/ref/bitmap-plot-3.sym +++ b/src/test/ref/bitmap-plot-3.sym @@ -105,7 +105,7 @@ word bitmap_plot::x#0 x zp[2]:6 101.0 word bitmap_plot::x#1 x zp[2]:6 10001.0 word bitmap_plot::x#2 x zp[2]:6 101.0 word bitmap_plot::x#3 x zp[2]:6 10001.0 -word bitmap_plot::x#4 x zp[2]:6 30051.25 +word bitmap_plot::x#4 x zp[2]:6 55051.5 byte bitmap_plot::y byte bitmap_plot::y#0 reg byte x 202.0 byte bitmap_plot::y#1 reg byte x 20002.0 diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm index 63469c7c3..ebc4e3ef3 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm @@ -536,8 +536,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 diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg index bbed1f696..29aca5106 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg @@ -273,7 +273,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li [129] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [130] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [132] bitmap_plot::$1 = (byte)bitmap_plot::x#4 + [132] bitmap_plot::$1 = < bitmap_plot::x#4 [133] *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 diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log index 5ae2a7673..e566bb3f7 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log @@ -125,7 +125,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li bitmap_plot::plotter#0 = (byte*){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] } bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$0 - bitmap_plot::$1 = (byte)bitmap_plot::x#4 + bitmap_plot::$1 = < bitmap_plot::x#4 *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 @@ -1839,7 +1839,7 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li [129] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [130] bitmap_plot::$0 = bitmap_plot::x#4 & $fff8 [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$0 - [132] bitmap_plot::$1 = (byte)bitmap_plot::x#4 + [132] bitmap_plot::$1 = < bitmap_plot::x#4 [133] *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 @@ -1940,7 +1940,7 @@ word bitmap_plot::x#0 100001.0 word bitmap_plot::x#1 1.00000001E8 word bitmap_plot::x#2 100001.0 word bitmap_plot::x#3 1.00000001E8 -word bitmap_plot::x#4 3.0005000125E8 +word bitmap_plot::x#4 5.500500015E8 byte bitmap_plot::y byte bitmap_plot::y#0 200002.0 byte bitmap_plot::y#1 2.00000002E8 @@ -2271,7 +2271,7 @@ Potential registers zp[2]:68 [ bitmap_plot::plotter#1 ] : zp[2]:68 , Potential registers zp[1]:70 [ bitmap_plot::$1 ] : zp[1]:70 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [bitmap_plot] 2,600,600,014: zp[1]:31 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 2,000,000,002: zp[2]:66 [ bitmap_plot::$0 ] 2,000,000,002: zp[1]:70 [ bitmap_plot::$1 ] 1,500,000,001.5: zp[2]:68 [ bitmap_plot::plotter#1 ] 500,250,005.25: zp[2]:32 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 500,000,000.5: zp[2]:64 [ bitmap_plot::plotter#0 ] +Uplift Scope [bitmap_plot] 2,600,600,014: zp[1]:31 [ bitmap_plot::y#4 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 bitmap_plot::y#3 ] 2,000,000,002: zp[2]:66 [ bitmap_plot::$0 ] 2,000,000,002: zp[1]:70 [ bitmap_plot::$1 ] 1,500,000,001.5: zp[2]:68 [ bitmap_plot::plotter#1 ] 750,250,005.5: zp[2]:32 [ bitmap_plot::x#4 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 bitmap_plot::x#3 ] 500,000,000.5: zp[2]:64 [ bitmap_plot::plotter#0 ] Uplift Scope [bitmap_line] 689,445,408.53: zp[2]:19 [ bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 ] 550,055,691.81: zp[2]:21 [ bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 ] 523,553,340.77: zp[2]:23 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ] 523,553,340.77: zp[2]:17 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ] 8,344,444.64: zp[2]:50 [ bitmap_line::dy#0 ] 7,696,153.96: zp[2]:58 [ bitmap_line::sy#0 ] 7,510,000.18: zp[2]:46 [ bitmap_line::dx#0 ] 6,670,000.1: zp[2]:54 [ bitmap_line::sx#0 ] 3,131,562.62: zp[2]:40 [ bitmap_line::y2#0 ] 3,036,666.79: zp[2]:38 [ bitmap_line::x2#0 ] Uplift Scope [abs_u16] 3,750,008.25: zp[2]:25 [ abs_u16::return#4 abs_u16::return#2 abs_u16::w#2 abs_u16::w#0 abs_u16::w#1 ] 2,000,002: zp[1]:60 [ abs_u16::$0 ] 2,000,002: zp[1]:61 [ abs_u16::$1 ] 200,002: zp[2]:44 [ abs_u16::return#0 ] 200,002: zp[2]:48 [ abs_u16::return#1 ] Uplift Scope [sgn_u16] 2,000,002: zp[1]:62 [ sgn_u16::$0 ] 2,000,002: zp[1]:63 [ sgn_u16::$1 ] 1,600,007: zp[2]:27 [ sgn_u16::w#2 sgn_u16::w#0 sgn_u16::w#1 ] 200,002: zp[2]:52 [ sgn_u16::return#0 ] 200,002: zp[2]:56 [ sgn_u16::return#1 ] 50,000.5: zp[2]:29 [ sgn_u16::return#4 ] @@ -3167,7 +3167,7 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // [132] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 + // [132] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 ldx.z x // [133] *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 @@ -3454,7 +3454,7 @@ word bitmap_plot::x#0 x zp[2]:4 100001.0 word bitmap_plot::x#1 x zp[2]:4 1.00000001E8 word bitmap_plot::x#2 x zp[2]:4 100001.0 word bitmap_plot::x#3 x zp[2]:4 1.00000001E8 -word bitmap_plot::x#4 x zp[2]:4 3.0005000125E8 +word bitmap_plot::x#4 x zp[2]:4 5.500500015E8 byte bitmap_plot::y byte bitmap_plot::y#0 reg byte x 200002.0 byte bitmap_plot::y#1 reg byte x 2.00000002E8 @@ -4323,9 +4323,10 @@ bitmap_plot: { lda.z plotter+1 adc.z __0+1 sta.z plotter+1 - // *plotter |= bitmap_plot_bit[(char)x] - // [132] bitmap_plot::$1 = (byte)bitmap_plot::x#4 -- vbuxx=_byte_vwuz1 + // BYTE0(x) + // [132] bitmap_plot::$1 = < bitmap_plot::x#4 -- vbuxx=_byte0_vwuz1 ldx.z x + // *plotter |= bitmap_plot_bit[BYTE0(x)] // [133] *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 diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym index 91c632d62..1fbc9553a 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym @@ -103,7 +103,7 @@ word bitmap_plot::x#0 x zp[2]:4 100001.0 word bitmap_plot::x#1 x zp[2]:4 1.00000001E8 word bitmap_plot::x#2 x zp[2]:4 100001.0 word bitmap_plot::x#3 x zp[2]:4 1.00000001E8 -word bitmap_plot::x#4 x zp[2]:4 3.0005000125E8 +word bitmap_plot::x#4 x zp[2]:4 5.500500015E8 byte bitmap_plot::y byte bitmap_plot::y#0 reg byte x 200002.0 byte bitmap_plot::y#1 reg byte x 2.00000002E8 diff --git a/src/test/ref/test-lowhigh.log b/src/test/ref/test-lowhigh.log index b0b761d45..48384d993 100644 --- a/src/test/ref/test-lowhigh.log +++ b/src/test/ref/test-lowhigh.log @@ -1244,11 +1244,11 @@ Allocated zp[4]:34 [ print_ulong::dw#0 ] Allocated zp[1]:38 [ print_uchar::$0 ] Allocated zp[1]:39 [ print_uchar::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS +Equivalence Class zp[2]:18 [ main::$3 ] has ALU potential. +Equivalence Class zp[2]:26 [ main::$6 ] has ALU potential. Statement [3] if(main::dw#10!=$12345690) goto main::@2 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 ] { } ) always clobbers reg byte a -Statement [5] main::$3 = _word1_ main::dw#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$3 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$3 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [6] main::$28 = main::$3 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$28 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$28 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [7] main::dw2#1 = main::dw#10 word1= main::$28 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a -Statement [8] main::$6 = _word0_ main::dw#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$6 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$6 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [9] main::$29 = main::$6 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$29 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$29 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [10] main::dw2#10 = main::dw2#1 word0= main::$29 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [11] print_ulong::dw#0 = main::dw2#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 print_ulong::dw#0 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 print_ulong::dw#0 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a @@ -1269,10 +1269,8 @@ Statement [73] print_line_cursor#38 = print_line_cursor#0 [ print_char_cursor#11 Statement [76] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:1::memset:42 [ memset::dst#2 ] { } ) always clobbers reg byte a Statement [78] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:1::memset:42 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [3] if(main::dw#10!=$12345690) goto main::@2 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 ] { } ) always clobbers reg byte a -Statement [5] main::$3 = _word1_ main::dw#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$3 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$3 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [6] main::$28 = main::$3 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$28 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::$28 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [7] main::dw2#1 = main::dw#10 word1= main::$28 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a -Statement [8] main::$6 = _word0_ main::dw#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$6 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$6 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [9] main::$29 = main::$6 + $1111 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$29 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#1 main::$29 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [10] main::dw2#10 = main::dw2#1 word0= main::$29 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a Statement [11] print_ulong::dw#0 = main::dw2#10 [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 print_ulong::dw#0 ] ( [ main::dw#10 print_line_cursor#16 print_char_cursor#30 main::dw2#10 print_ulong::dw#0 ] { { print_ulong::dw#0 = main::dw2#10 } } ) always clobbers reg byte a @@ -1298,10 +1296,10 @@ Potential registers zp[2]:11 [ print_char_cursor#67 print_char_cursor#45 print_c Potential registers zp[1]:13 [ print_uchar::b#6 print_uchar::b#3 print_uchar::b#4 print_uchar::b#5 print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] : zp[1]:13 , reg byte x , Potential registers zp[2]:14 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#39 print_line_cursor#38 ] : zp[2]:14 , Potential registers zp[2]:16 [ memset::dst#2 memset::dst#1 ] : zp[2]:16 , -Potential registers zp[2]:18 [ main::$3 ] : zp[2]:18 , +Potential registers zp[2]:18 [ main::$3 ] : zp[2]:18 , reg byte alu , Potential registers zp[2]:20 [ main::$28 ] : zp[2]:20 , Potential registers zp[4]:22 [ main::dw2#1 ] : zp[4]:22 , -Potential registers zp[2]:26 [ main::$6 ] : zp[2]:26 , +Potential registers zp[2]:26 [ main::$6 ] : zp[2]:26 , reg byte alu , Potential registers zp[2]:28 [ main::$29 ] : zp[2]:28 , Potential registers zp[4]:30 [ main::dw2#10 ] : zp[4]:30 , Potential registers zp[4]:34 [ print_ulong::dw#0 ] : zp[4]:34 ,