|
|
|
@ -153,7 +153,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
|
|
|
|
@ -397,7 +397,7 @@ mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel
|
|
|
|
|
mul16u::return#3 = phi( mulu16_sel/mul16u::return#0 )
|
|
|
|
|
mulu16_sel::$0 = mul16u::return#3
|
|
|
|
|
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
|
|
|
|
@ -540,7 +540,7 @@ div32u16u: scope:[div32u16u] from sin16s_gen
|
|
|
|
|
rem16u#37 = phi( sin16s_gen/rem16u#32 )
|
|
|
|
|
div32u16u::divisor#1 = phi( sin16s_gen/div32u16u::divisor#0 )
|
|
|
|
|
div32u16u::dividend#1 = phi( sin16s_gen/div32u16u::dividend#0 )
|
|
|
|
|
div32u16u::$0 = > div32u16u::dividend#1
|
|
|
|
|
div32u16u::$0 = _word1_ div32u16u::dividend#1
|
|
|
|
|
divr16u::dividend#2 = div32u16u::$0
|
|
|
|
|
divr16u::divisor#1 = div32u16u::divisor#1
|
|
|
|
|
divr16u::rem#4 = 0
|
|
|
|
@ -555,7 +555,7 @@ div32u16u::@1: scope:[div32u16u] from div32u16u
|
|
|
|
|
div32u16u::$1 = divr16u::return#7
|
|
|
|
|
rem16u#8 = rem16u#24
|
|
|
|
|
div32u16u::quotient_hi#0 = div32u16u::$1
|
|
|
|
|
div32u16u::$2 = < div32u16u::dividend#2
|
|
|
|
|
div32u16u::$2 = _word0_ div32u16u::dividend#2
|
|
|
|
|
divr16u::dividend#3 = div32u16u::$2
|
|
|
|
|
divr16u::divisor#2 = div32u16u::divisor#2
|
|
|
|
|
divr16u::rem#5 = rem16u#8
|
|
|
|
@ -2253,12 +2253,12 @@ Successful SSA optimization PassNCastSimplification
|
|
|
|
|
Finalized unsigned number type (byte) $10
|
|
|
|
|
Finalized unsigned number type (byte) $c0
|
|
|
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
|
|
|
Constant right-side identified [151] divr16u::dividend#2 = > div32u16u::dividend#0
|
|
|
|
|
Constant right-side identified [155] divr16u::dividend#3 = < div32u16u::dividend#0
|
|
|
|
|
Constant right-side identified [151] divr16u::dividend#2 = _word1_ div32u16u::dividend#0
|
|
|
|
|
Constant right-side identified [155] divr16u::dividend#3 = _word0_ div32u16u::dividend#0
|
|
|
|
|
Constant right-side identified [209] memset::end#0 = memset::$4 + memset::num#0
|
|
|
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
|
|
|
|
Constant divr16u::dividend#2 = >div32u16u::dividend#0
|
|
|
|
|
Constant divr16u::dividend#3 = <div32u16u::dividend#0
|
|
|
|
|
Constant divr16u::dividend#2 = _word1_div32u16u::dividend#0
|
|
|
|
|
Constant divr16u::dividend#3 = _word0_div32u16u::dividend#0
|
|
|
|
|
Constant memset::end#0 = memset::$4+memset::num#0
|
|
|
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
|
|
|
Inlining Noop Cast [62] sin16s::sinx#0 = (signed word)sin16s::usinx#1 keeping sin16s::usinx#1
|
|
|
|
@ -2338,8 +2338,8 @@ Constant inlined divr16u::divisor#2 = main::wavelength
|
|
|
|
|
Constant inlined mulu8_sel::select#3 = 0
|
|
|
|
|
Constant inlined sin16s_gen::i#0 = 0
|
|
|
|
|
Constant inlined divr16u::dividend#1 = PI2_u4f12
|
|
|
|
|
Constant inlined divr16u::dividend#2 = >PI2_u4f28
|
|
|
|
|
Constant inlined divr16u::dividend#3 = <PI2_u4f28
|
|
|
|
|
Constant inlined divr16u::dividend#2 = _word1_PI2_u4f28
|
|
|
|
|
Constant inlined divr16u::dividend#3 = _word0_PI2_u4f28
|
|
|
|
|
Constant inlined sin16s_gen::sintab#1 = main::sintabw
|
|
|
|
|
Constant inlined print_char::ch#2 = ' '
|
|
|
|
|
Constant inlined mulu8_sel::v2#2 = sin8s::DIV_6
|
|
|
|
@ -2822,7 +2822,7 @@ sin16s::@5: scope:[sin16s] from sin16s::@1
|
|
|
|
|
sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5
|
|
|
|
|
[134] sin16s::x#6 = phi( sin16s::@1/sin16s::x#4, sin16s::@5/sin16s::x#2 )
|
|
|
|
|
[135] sin16s::$4 = sin16s::x#6 << 3
|
|
|
|
|
[136] sin16s::x1#0 = > sin16s::$4
|
|
|
|
|
[136] sin16s::x1#0 = _word1_ sin16s::$4
|
|
|
|
|
[137] mulu16_sel::v1#0 = sin16s::x1#0
|
|
|
|
|
[138] mulu16_sel::v2#0 = sin16s::x1#0
|
|
|
|
|
[139] call mulu16_sel
|
|
|
|
@ -2919,7 +2919,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@1
|
|
|
|
|
|
|
|
|
|
word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem)
|
|
|
|
|
divr16u: scope:[divr16u] from div16u div32u16u div32u16u::@1
|
|
|
|
|
[186] divr16u::dividend#6 = phi( div16u/PI2_u4f12, div32u16u/>PI2_u4f28, div32u16u::@1/<PI2_u4f28 )
|
|
|
|
|
[186] divr16u::dividend#6 = phi( div16u/PI2_u4f12, div32u16u/_word1_PI2_u4f28, div32u16u::@1/_word0_PI2_u4f28 )
|
|
|
|
|
[186] divr16u::rem#11 = phi( div16u/0, div32u16u/0, div32u16u::@1/divr16u::rem#5 )
|
|
|
|
|
to:divr16u::@1
|
|
|
|
|
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
|
|
|
|
@ -2990,7 +2990,7 @@ mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@
|
|
|
|
|
mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel
|
|
|
|
|
[218] mulu16_sel::$0 = mul16u::return#0
|
|
|
|
|
[219] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5
|
|
|
|
|
[220] mulu16_sel::return#12 = > mulu16_sel::$1
|
|
|
|
|
[220] mulu16_sel::return#12 = _word1_ mulu16_sel::$1
|
|
|
|
|
to:mulu16_sel::@return
|
|
|
|
|
mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1
|
|
|
|
|
[221] return
|
|
|
|
@ -3700,7 +3700,7 @@ Statement [132] 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]:25 [ sin16s::isUpper#2 ]
|
|
|
|
|
Statement [133] sin16s::x#2 = PI_u4f28 - sin16s::x#4 [ sin16s::isUpper#2 sin16s::x#2 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a
|
|
|
|
|
Statement [135] sin16s::$4 = sin16s::x#6 << 3 [ sin16s::isUpper#2 sin16s::$4 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::$4 ] { { sin16s::x#0 = sin16s_gen::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 [136] sin16s::x1#0 = > sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen::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 [136] sin16s::x1#0 = _word1_ sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen::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 [137] mulu16_sel::v1#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] { { sin16s::x#0 = sin16s_gen::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 [138] mulu16_sel::v2#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] { { sin16s::x#0 = sin16s_gen::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 [140] mulu16_sel::return#0 = mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] { { sin16s::x#0 = sin16s_gen::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
|
|
|
|
@ -3748,7 +3748,7 @@ Statement [215] mul16u::b#0 = mulu16_sel::v2#5 [ mulu16_sel::select#5 mul16u::a#
|
|
|
|
|
Statement [217] mul16u::return#0 = mul16u::res#2 [ mulu16_sel::select#5 mul16u::return#0 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::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 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a
|
|
|
|
|
Statement [218] mulu16_sel::$0 = mul16u::return#0 [ mulu16_sel::select#5 mulu16_sel::$0 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 [219] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 [ mulu16_sel::$1 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 [220] mulu16_sel::return#12 = > mulu16_sel::$1 [ mulu16_sel::return#12 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 [220] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 [ mulu16_sel::return#12 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 [222] mul8u::mb#0 = (word)mul8u::b#0 [ mul8u::a#0 mul8u::mb#0 ] ( sin8s_gen:1::sin8s:29::mulu8_sel:86::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v2#0 = mulu8_sel::v2#5 mulu8_sel::v1#5 mulu8_sel::v1#0 sin8s::x1#0 mul8u::a#0 mul8u::b#0 } { mulu8_sel::return#0 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:91::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#1 = mulu8_sel::v1#5 sin8s::x2#0 mul8u::a#0 } { mulu8_sel::v2#1 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#1 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:95::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#2 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::return#12 = mulu8_sel::return#2 } { mul8u::b#0 = mulu8_sel::v2#5 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:101::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#3 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::v2#3 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#10 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:106::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#4 = mulu8_sel::v1#5 sin8s::x4#0 mul8u::a#0 } { mulu8_sel::v2#4 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#11 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } ) always clobbers reg byte a
|
|
|
|
|
Removing always clobbered register reg byte a as potential for zp[1]:52 [ mul8u::a#2 mul8u::a#0 mul8u::a#1 ]
|
|
|
|
|
Statement [226] mul8u::$1 = mul8u::a#2 & 1 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] ( sin8s_gen:1::sin8s:29::mulu8_sel:86::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v2#0 = mulu8_sel::v2#5 mulu8_sel::v1#5 mulu8_sel::v1#0 sin8s::x1#0 mul8u::a#0 mul8u::b#0 } { mulu8_sel::return#0 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:91::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#1 = mulu8_sel::v1#5 sin8s::x2#0 mul8u::a#0 } { mulu8_sel::v2#1 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#1 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:95::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#2 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::return#12 = mulu8_sel::return#2 } { mul8u::b#0 = mulu8_sel::v2#5 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:101::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#3 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::v2#3 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#10 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:106::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#4 = mulu8_sel::v1#5 sin8s::x4#0 mul8u::a#0 } { mulu8_sel::v2#4 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#11 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } ) always clobbers reg byte a
|
|
|
|
@ -3802,7 +3802,7 @@ Statement [130] sin16s::x#1 = sin16s::x#0 - PI_u4f28 [ sin16s::x#1 ] ( sin16s_ge
|
|
|
|
|
Statement [132] if(sin16s::x#4<PI_HALF_u4f28) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#2 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::x#4 sin16s::isUpper#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a
|
|
|
|
|
Statement [133] sin16s::x#2 = PI_u4f28 - sin16s::x#4 [ sin16s::isUpper#2 sin16s::x#2 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a
|
|
|
|
|
Statement [135] sin16s::$4 = sin16s::x#6 << 3 [ sin16s::isUpper#2 sin16s::$4 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::$4 ] { { sin16s::x#0 = sin16s_gen::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 [136] sin16s::x1#0 = > sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen::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 [136] sin16s::x1#0 = _word1_ sin16s::$4 [ sin16s::isUpper#2 sin16s::x1#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 ] { { sin16s::x#0 = sin16s_gen::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 [137] mulu16_sel::v1#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] { { sin16s::x#0 = sin16s_gen::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 [138] mulu16_sel::v2#0 = sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] { { sin16s::x#0 = sin16s_gen::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 [140] mulu16_sel::return#0 = mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] ( sin16s_gen:3::sin16s:44 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] { { sin16s::x#0 = sin16s_gen::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
|
|
|
|
@ -3844,7 +3844,7 @@ Statement [215] mul16u::b#0 = mulu16_sel::v2#5 [ mulu16_sel::select#5 mul16u::a#
|
|
|
|
|
Statement [217] mul16u::return#0 = mul16u::res#2 [ mulu16_sel::select#5 mul16u::return#0 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::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 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a
|
|
|
|
|
Statement [218] mulu16_sel::$0 = mul16u::return#0 [ mulu16_sel::select#5 mulu16_sel::$0 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] { { sin16s::x#0 = sin16s_gen::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 [219] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 [ mulu16_sel::$1 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::$1 ] { { sin16s::x#0 = sin16s_gen::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 [220] mulu16_sel::return#12 = > mulu16_sel::$1 [ mulu16_sel::return#12 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 [220] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 [ mulu16_sel::return#12 ] ( sin16s_gen:3::sin16s:44::mulu16_sel:139 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:144 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:148 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:154 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 } } sin16s_gen:3::sin16s:44::mulu16_sel:159 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::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 [222] mul8u::mb#0 = (word)mul8u::b#0 [ mul8u::a#0 mul8u::mb#0 ] ( sin8s_gen:1::sin8s:29::mulu8_sel:86::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v2#0 = mulu8_sel::v2#5 mulu8_sel::v1#5 mulu8_sel::v1#0 sin8s::x1#0 mul8u::a#0 mul8u::b#0 } { mulu8_sel::return#0 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:91::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#1 = mulu8_sel::v1#5 sin8s::x2#0 mul8u::a#0 } { mulu8_sel::v2#1 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#1 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:95::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#2 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::return#12 = mulu8_sel::return#2 } { mul8u::b#0 = mulu8_sel::v2#5 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:101::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#3 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::v2#3 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#10 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:106::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::mb#0 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#4 = mulu8_sel::v1#5 sin8s::x4#0 mul8u::a#0 } { mulu8_sel::v2#4 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#11 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } ) always clobbers reg byte a
|
|
|
|
|
Statement [226] mul8u::$1 = mul8u::a#2 & 1 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] ( sin8s_gen:1::sin8s:29::mulu8_sel:86::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v2#0 = mulu8_sel::v2#5 mulu8_sel::v1#5 mulu8_sel::v1#0 sin8s::x1#0 mul8u::a#0 mul8u::b#0 } { mulu8_sel::return#0 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:91::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#1 = mulu8_sel::v1#5 sin8s::x2#0 mul8u::a#0 } { mulu8_sel::v2#1 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#1 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:95::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#2 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::return#12 = mulu8_sel::return#2 } { mul8u::b#0 = mulu8_sel::v2#5 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:101::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#3 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::v2#3 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#10 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:106::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#4 = mulu8_sel::v1#5 sin8s::x4#0 mul8u::a#0 } { mulu8_sel::v2#4 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#11 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } ) always clobbers reg byte a
|
|
|
|
|
Statement [228] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ( sin8s_gen:1::sin8s:29::mulu8_sel:86::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v2#0 = mulu8_sel::v2#5 mulu8_sel::v1#5 mulu8_sel::v1#0 sin8s::x1#0 mul8u::a#0 mul8u::b#0 } { mulu8_sel::return#0 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:91::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#1 = mulu8_sel::v1#5 sin8s::x2#0 mul8u::a#0 } { mulu8_sel::v2#1 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#1 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:95::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#2 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::return#12 = mulu8_sel::return#2 } { mul8u::b#0 = mulu8_sel::v2#5 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:101::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#3 = mulu8_sel::v1#5 sin8s::x3#0 mul8u::a#0 } { mulu8_sel::v2#3 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#10 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } sin8s_gen:1::sin8s:29::mulu8_sel:106::mul8u:207 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] { { sin8s::x#0 = sin8s_gen::x#2 } { sin8s::return#0 = sin8s::return#1 } { mulu8_sel::v1#4 = mulu8_sel::v1#5 sin8s::x4#0 mul8u::a#0 } { mulu8_sel::v2#4 = mulu8_sel::v2#5 sin8s::x1#0 mul8u::b#0 } { mulu8_sel::return#11 = mulu8_sel::return#12 } { mul8u::return#0 = mul8u::res#2 } } ) always clobbers reg byte a
|
|
|
|
@ -4215,7 +4215,7 @@ main: {
|
|
|
|
|
sta.z sw+1
|
|
|
|
|
pla
|
|
|
|
|
sta.z sw
|
|
|
|
|
// [12] main::$11 = > main::sw#0 -- vbuaa=_hi_vwsz1
|
|
|
|
|
// [12] main::$11 = > main::sw#0 -- vbuaa=_byte1_vwsz1
|
|
|
|
|
lda.z sw+1
|
|
|
|
|
// [13] main::sd#0 = main::sb#0 - (signed byte)main::$11 -- vbsaa=vbsz1_minus_vbsaa
|
|
|
|
|
eor #$ff
|
|
|
|
@ -4709,7 +4709,7 @@ sin8s: {
|
|
|
|
|
rol.z __4+1
|
|
|
|
|
asl.z __4
|
|
|
|
|
rol.z __4+1
|
|
|
|
|
// [83] sin8s::x1#0 = > sin8s::$4 -- vbuz1=_hi_vwuz2
|
|
|
|
|
// [83] sin8s::x1#0 = > sin8s::$4 -- vbuz1=_byte1_vwuz2
|
|
|
|
|
lda.z __4+1
|
|
|
|
|
sta.z x1
|
|
|
|
|
// [84] mulu8_sel::v1#0 = sin8s::x1#0 -- vbuxx=vbuz1
|
|
|
|
@ -4870,7 +4870,7 @@ div32u16u: {
|
|
|
|
|
// [120] call divr16u
|
|
|
|
|
// [186] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
|
|
|
|
|
divr16u_from_div32u16u:
|
|
|
|
|
// [186] phi divr16u::dividend#6 = >PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1
|
|
|
|
|
// [186] phi divr16u::dividend#6 = _word1_PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1
|
|
|
|
|
lda #<PI2_u4f28>>$10
|
|
|
|
|
sta.z divr16u.dividend
|
|
|
|
|
lda #>PI2_u4f28>>$10
|
|
|
|
@ -4894,7 +4894,7 @@ div32u16u: {
|
|
|
|
|
// [124] call divr16u
|
|
|
|
|
// [186] phi from div32u16u::@1 to divr16u [phi:div32u16u::@1->divr16u]
|
|
|
|
|
divr16u_from___b1:
|
|
|
|
|
// [186] phi divr16u::dividend#6 = <PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1
|
|
|
|
|
// [186] phi divr16u::dividend#6 = _word0_PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1
|
|
|
|
|
lda #<PI2_u4f28&$ffff
|
|
|
|
|
sta.z divr16u.dividend
|
|
|
|
|
lda #>PI2_u4f28&$ffff
|
|
|
|
@ -5049,7 +5049,7 @@ sin16s: {
|
|
|
|
|
rol.z __4+1
|
|
|
|
|
rol.z __4+2
|
|
|
|
|
rol.z __4+3
|
|
|
|
|
// [136] sin16s::x1#0 = > sin16s::$4 -- vwuz1=_hi_vduz2
|
|
|
|
|
// [136] sin16s::x1#0 = _word1_ sin16s::$4 -- vwuz1=_word1_vduz2
|
|
|
|
|
lda.z __4+2
|
|
|
|
|
sta.z x1
|
|
|
|
|
lda.z __4+3
|
|
|
|
@ -5359,7 +5359,7 @@ divr16u: {
|
|
|
|
|
// [188] divr16u::rem#0 = divr16u::rem#6 << 1 -- vwuz1=vwuz1_rol_1
|
|
|
|
|
asl.z rem
|
|
|
|
|
rol.z rem+1
|
|
|
|
|
// [189] divr16u::$1 = > divr16u::dividend#4 -- vbuaa=_hi_vwuz1
|
|
|
|
|
// [189] divr16u::$1 = > divr16u::dividend#4 -- vbuaa=_byte1_vwuz1
|
|
|
|
|
lda.z dividend+1
|
|
|
|
|
// [190] divr16u::$2 = divr16u::$1 & $80 -- vbuaa=vbuaa_band_vbuc1
|
|
|
|
|
and #$80
|
|
|
|
@ -5461,7 +5461,7 @@ mulu8_sel: {
|
|
|
|
|
dey
|
|
|
|
|
bne !-
|
|
|
|
|
!e:
|
|
|
|
|
// [211] mulu8_sel::return#12 = > mulu8_sel::$1 -- vbuaa=_hi_vwuz1
|
|
|
|
|
// [211] mulu8_sel::return#12 = > mulu8_sel::$1 -- vbuaa=_byte1_vwuz1
|
|
|
|
|
lda.z __1+1
|
|
|
|
|
jmp __breturn
|
|
|
|
|
// mulu8_sel::@return
|
|
|
|
@ -5504,7 +5504,7 @@ mulu16_sel: {
|
|
|
|
|
dex
|
|
|
|
|
bne !-
|
|
|
|
|
!e:
|
|
|
|
|
// [220] mulu16_sel::return#12 = > mulu16_sel::$1 -- vwuz1=_hi_vduz2
|
|
|
|
|
// [220] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 -- vwuz1=_word1_vduz2
|
|
|
|
|
lda.z __1+2
|
|
|
|
|
sta.z return
|
|
|
|
|
lda.z __1+3
|
|
|
|
@ -6405,10 +6405,10 @@ main: {
|
|
|
|
|
sta.z sw+1
|
|
|
|
|
pla
|
|
|
|
|
sta.z sw
|
|
|
|
|
// >sw
|
|
|
|
|
// [12] main::$11 = > main::sw#0 -- vbuaa=_hi_vwsz1
|
|
|
|
|
// BYTE1(sw)
|
|
|
|
|
// [12] main::$11 = > main::sw#0 -- vbuaa=_byte1_vwsz1
|
|
|
|
|
lda.z sw+1
|
|
|
|
|
// signed byte sd = sb-(signed byte)>sw
|
|
|
|
|
// signed byte sd = sb-(signed byte)BYTE1(sw)
|
|
|
|
|
// [13] main::sd#0 = main::sb#0 - (signed byte)main::$11 -- vbsaa=vbsz1_minus_vbsaa
|
|
|
|
|
eor #$ff
|
|
|
|
|
sec
|
|
|
|
@ -6872,8 +6872,8 @@ sin8s: {
|
|
|
|
|
rol.z __4+1
|
|
|
|
|
asl.z __4
|
|
|
|
|
rol.z __4+1
|
|
|
|
|
// char x1 = >x<<3
|
|
|
|
|
// [83] sin8s::x1#0 = > sin8s::$4 -- vbuz1=_hi_vwuz2
|
|
|
|
|
// char x1 = BYTE1(x<<3)
|
|
|
|
|
// [83] sin8s::x1#0 = > sin8s::$4 -- vbuz1=_byte1_vwuz2
|
|
|
|
|
lda.z __4+1
|
|
|
|
|
sta.z x1
|
|
|
|
|
// mulu8_sel(x1, x1, 0)
|
|
|
|
@ -7026,10 +7026,10 @@ div32u16u: {
|
|
|
|
|
.label return = $1b
|
|
|
|
|
.label quotient_hi = $22
|
|
|
|
|
.label quotient_lo = $2a
|
|
|
|
|
// divr16u(>dividend, divisor, 0)
|
|
|
|
|
// divr16u(WORD1(dividend), divisor, 0)
|
|
|
|
|
// [120] call divr16u
|
|
|
|
|
// [186] phi from div32u16u to divr16u [phi:div32u16u->divr16u]
|
|
|
|
|
// [186] phi divr16u::dividend#6 = >PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1
|
|
|
|
|
// [186] phi divr16u::dividend#6 = _word1_PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1
|
|
|
|
|
lda #<PI2_u4f28>>$10
|
|
|
|
|
sta.z divr16u.dividend
|
|
|
|
|
lda #>PI2_u4f28>>$10
|
|
|
|
@ -7039,30 +7039,30 @@ div32u16u: {
|
|
|
|
|
sta.z divr16u.rem
|
|
|
|
|
sta.z divr16u.rem+1
|
|
|
|
|
jsr divr16u
|
|
|
|
|
// divr16u(>dividend, divisor, 0)
|
|
|
|
|
// divr16u(WORD1(dividend), divisor, 0)
|
|
|
|
|
// [121] divr16u::return#3 = divr16u::return#0
|
|
|
|
|
// div32u16u::@1
|
|
|
|
|
// unsigned int quotient_hi = divr16u(>dividend, divisor, 0)
|
|
|
|
|
// unsigned int quotient_hi = divr16u(WORD1(dividend), divisor, 0)
|
|
|
|
|
// [122] div32u16u::quotient_hi#0 = divr16u::return#3 -- 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)
|
|
|
|
|
// [123] divr16u::rem#5 = rem16u#21
|
|
|
|
|
// [124] call divr16u
|
|
|
|
|
// [186] phi from div32u16u::@1 to divr16u [phi:div32u16u::@1->divr16u]
|
|
|
|
|
// [186] phi divr16u::dividend#6 = <PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1
|
|
|
|
|
// [186] phi divr16u::dividend#6 = _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
|
|
|
|
|
// [186] phi divr16u::rem#11 = divr16u::rem#5 [phi:div32u16u::@1->divr16u#1] -- register_copy
|
|
|
|
|
jsr divr16u
|
|
|
|
|
// divr16u(<dividend, divisor, rem16u)
|
|
|
|
|
// divr16u(WORD0(dividend), divisor, rem16u)
|
|
|
|
|
// [125] divr16u::return#4 = divr16u::return#0
|
|
|
|
|
// div32u16u::@2
|
|
|
|
|
// unsigned int quotient_lo = divr16u(<dividend, divisor, rem16u)
|
|
|
|
|
// unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u)
|
|
|
|
|
// [126] div32u16u::quotient_lo#0 = divr16u::return#4
|
|
|
|
|
// unsigned long quotient = { quotient_hi, quotient_lo}
|
|
|
|
|
// [127] div32u16u::return#1 = div32u16u::quotient_hi#0 dw= div32u16u::quotient_lo#0 -- vduz1=vwuz2_dword_vwuz3
|
|
|
|
@ -7203,8 +7203,8 @@ sin16s: {
|
|
|
|
|
rol.z __4+1
|
|
|
|
|
rol.z __4+2
|
|
|
|
|
rol.z __4+3
|
|
|
|
|
// unsigned int x1 = >x<<3
|
|
|
|
|
// [136] sin16s::x1#0 = > sin16s::$4 -- vwuz1=_hi_vduz2
|
|
|
|
|
// unsigned int x1 = WORD1(x<<3)
|
|
|
|
|
// [136] sin16s::x1#0 = _word1_ sin16s::$4 -- vwuz1=_word1_vduz2
|
|
|
|
|
lda.z __4+2
|
|
|
|
|
sta.z x1
|
|
|
|
|
lda.z __4+3
|
|
|
|
@ -7506,13 +7506,13 @@ divr16u: {
|
|
|
|
|
// [188] divr16u::rem#0 = divr16u::rem#6 << 1 -- vwuz1=vwuz1_rol_1
|
|
|
|
|
asl.z rem
|
|
|
|
|
rol.z rem+1
|
|
|
|
|
// >dividend
|
|
|
|
|
// [189] divr16u::$1 = > divr16u::dividend#4 -- vbuaa=_hi_vwuz1
|
|
|
|
|
// BYTE1(dividend)
|
|
|
|
|
// [189] divr16u::$1 = > divr16u::dividend#4 -- vbuaa=_byte1_vwuz1
|
|
|
|
|
lda.z dividend+1
|
|
|
|
|
// >dividend & $80
|
|
|
|
|
// BYTE1(dividend) & $80
|
|
|
|
|
// [190] divr16u::$2 = divr16u::$1 & $80 -- vbuaa=vbuaa_band_vbuc1
|
|
|
|
|
and #$80
|
|
|
|
|
// if( (>dividend & $80) != 0 )
|
|
|
|
|
// if( (BYTE1(dividend) & $80) != 0 )
|
|
|
|
|
// [191] if(divr16u::$2==0) goto divr16u::@2 -- vbuaa_eq_0_then_la1
|
|
|
|
|
cmp #0
|
|
|
|
|
beq __b2
|
|
|
|
@ -7606,8 +7606,8 @@ mulu8_sel: {
|
|
|
|
|
dey
|
|
|
|
|
bne !-
|
|
|
|
|
!e:
|
|
|
|
|
// >mul8u(v1, v2)<<select
|
|
|
|
|
// [211] mulu8_sel::return#12 = > mulu8_sel::$1 -- vbuaa=_hi_vwuz1
|
|
|
|
|
// BYTE1(mul8u(v1, v2)<<select)
|
|
|
|
|
// [211] mulu8_sel::return#12 = > mulu8_sel::$1 -- vbuaa=_byte1_vwuz1
|
|
|
|
|
lda.z __1+1
|
|
|
|
|
// mulu8_sel::@return
|
|
|
|
|
// }
|
|
|
|
@ -7649,8 +7649,8 @@ mulu16_sel: {
|
|
|
|
|
dex
|
|
|
|
|
bne !-
|
|
|
|
|
!e:
|
|
|
|
|
// >mul16u(v1, v2)<<select
|
|
|
|
|
// [220] mulu16_sel::return#12 = > mulu16_sel::$1 -- vwuz1=_hi_vduz2
|
|
|
|
|
// WORD1(mul16u(v1, v2)<<select)
|
|
|
|
|
// [220] mulu16_sel::return#12 = _word1_ mulu16_sel::$1 -- vwuz1=_word1_vduz2
|
|
|
|
|
lda.z __1+2
|
|
|
|
|
sta.z return
|
|
|
|
|
lda.z __1+3
|
|
|
|
|