1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-08-02 09:29:35 +00:00

Added initial 8-bit sinus (not quite working yet.)

This commit is contained in:
jespergravgaard 2018-02-25 11:10:50 +01:00
parent 97bc9870f9
commit 7d26c74c21
24 changed files with 12009 additions and 2071 deletions

View File

@ -0,0 +1,2 @@
ldy #0
sta ({z1}),y

View File

@ -0,0 +1,3 @@
ldy #0
lda {z2}
sta ({z1}),y

View File

@ -0,0 +1,4 @@
lda #<{c1}
sta {z1}
lda #>{c1}
sta {z1}+1

View File

@ -0,0 +1,2 @@
cmp #0
bmi {la1}

View File

@ -0,0 +1,2 @@
cpx #0
bmi {la1}

View File

@ -0,0 +1,2 @@
cpy #0
bmi {la1}

View File

@ -0,0 +1,2 @@
lda {z1}
bmi {la1}

View File

@ -0,0 +1,8 @@
ldy {z2}
beq !e+
!:
asl {z1}
rol {z1}+1
dey
bne !-
!e:

View File

@ -1,18 +1,10 @@
lda {z1}
lda {z2}
asl
sta {z2}
lda {z1}+1
sta {z1}
lda {z2}+1
rol
sta {z2}+1
lda {z1}
asl
sta {z2}
lda {z1}+1
rol
sta {z2}+1
lda {z1}
asl
sta {z2}
lda {z1}+1
rol
sta {z2}+1
sta {z1}+1
asl {z1}
rol {z1}+1
asl {z1}
rol {z1}+1

View File

@ -0,0 +1,12 @@
lda {z2}
sta {z1}
lda {z2}+1
sta {z1}+1
ldy {z3}
beq !e+
!:
asl {z1}
rol {z1}+1
dey
bne !-
!e:

View File

@ -51,8 +51,13 @@ public class TestPrograms {
}
@Test
public void testSinusGen() throws IOException, URISyntaxException {
compileAndCompare("sinusgen");
public void testSinusGen16() throws IOException, URISyntaxException {
compileAndCompare("sinusgen16");
}
@Test
public void testSinusGen8() throws IOException, URISyntaxException {
compileAndCompare("sinusgen8");
}
@Test

View File

@ -6,22 +6,6 @@
import "division.kc"
import "multiply.kc"
import "print.kc"
void main() {
word wavelength = 120;
signed word[120] sintab1;
sin16s_gen(sintab1, wavelength);
print_cls();
for(signed word* st1 = sintab1; st1<sintab1+wavelength*2; st1 = st1+2 ) {
signed word sw = *st1;
if(sw>=0) {
print_str(" @");
}
print_sword(sw);
print_str(" @");
}
}
// PI*2 in u[4.28] format
const dword PI2_u4f28 = $6487ed51;
@ -52,6 +36,20 @@ void sin16s_gen(signed word* sintab, word wavelength) {
}
}
// Generate signed byte sinus table - on the full -$7f - $7f range
// sintab - the table to generate into
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
void sin8s_gen(signed byte* sintab, word wavelength) {
// u[4.28] step = PI*2/wavelength
word step = div16u(PI2_u4f12, wavelength); // u[4.12]
// Iterate over the table
word x = 0; // u[4.12]
for( word i=0; i<wavelength; i++) {
*sintab++ = sin8s(x);
x = x + step;
}
}
// Calculate signed word sinus sin(x)
// x: unsigned dword input u[4.28] in the interval $00000000 - PI2_u4f28
// result: signed word sin(x) s[0.15] - using the full range -$7fff - $7fff
@ -65,14 +63,14 @@ signed word sin16s(dword x) {
if(x >= PI_HALF_u4f28 ) {
x = PI_u4f28 - x;
}
// s[4.12] sinx = x - x^3/6 + x5/128;
// sinx = x - x^3/6 + x5/128;
word x1 = >x<<3; // u[1.15]
word x2 = mul_u16_sel(x1, x1, 0); // u[2.14] x^2
word x3 = mul_u16_sel(x2, x1, 1); // u[2.14] x^3
word x3_6 = mul_u16_sel(x3, $10000/6, 1); // u[1.15] x^3/6;
word x2 = mulu16_sel(x1, x1, 0); // u[2.14] x^2
word x3 = mulu16_sel(x2, x1, 1); // u[2.14] x^3
word x3_6 = mulu16_sel(x3, $10000/6, 1); // u[1.15] x^3/6;
word usinx = x1 - x3_6; // u[1.15] x - x^3/6
word x4 = mul_u16_sel(x3, x1, 0); // u[3.13] x^4
word x5 = mul_u16_sel(x4, x1, 0); // u[4.12] x^5
word x4 = mulu16_sel(x3, x1, 0); // u[3.13] x^4
word x5 = mulu16_sel(x4, x1, 0); // u[4.12] x^5
word x5_128 = x5>>4; // // u[1.15] x^5/128 -- much more efficient than mul_u16_sel(x5, $10000/128, 3);
usinx = usinx + x5_128; // u[1.15] (first bit is always zero)
signed word sinx = (signed word)usinx; // s[0.15]
@ -82,6 +80,37 @@ signed word sin16s(dword x) {
return sinx;
}
// Calculate signed byte sinus sin(x)
// x: unsigned word input u[4.12] in the interval $0000 - PI2_u4f12
// result: signed byte sin(x) s[0.7] - using the full range -$7f - $7f
signed byte sin8s(word x) {
// Move x1 into the range 0-PI/2 using sinus mirror symmetries
byte isUpper = 0;
if(x >= PI_u4f12 ) {
x = x - PI_u4f12;
isUpper = 1;
}
if(x >= PI_HALF_u4f12 ) {
x = PI_u4f12 - x;
}
// sinx = x - x^3/6 + x5/128;
byte x1 = >x<<3; // u[1.7]
byte x2 = mulu8_sel(x1, x1, 0); // u[2.6] x^2
byte x3 = mulu8_sel(x2, x1, 1); // u[2.6] x^3
byte x3_6 = mulu8_sel(x3, $100/6, 1); // u[1.7] x^3/6;
byte usinx = x1 - x3_6; // u[1.7] x - x^3/6
byte x4 = mulu8_sel(x3, x1, 0); // u[3.5] x^4
byte x5 = mulu8_sel(x4, x1, 0); // u[4.4] x^5
byte x5_128 = x5>>4; // // u[1.7] x^5/128 -- much more efficient than mul_u16_sel(x5, $10000/128, 3);
usinx = usinx + x5_128; // u[1.7] (first bit is always zero)
signed byte sinx = (signed byte)usinx; // s[0.7]
if(isUpper!=0) {
sinx = -(signed byte)usinx; // s[0.7];
}
return sinx;
}
// Generate (small) signed word sinus table - in the limited -$fff - $fff range
// sintab - the table to generate into
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
@ -102,13 +131,13 @@ void sin16ss_gen(signed word* sintab, word wavelength) {
x1 = PI_u4f12 - x1;
}
// s[4.12] sinx = x - x^3/6 + x5/128;
word x2 = mul_u16_sel(x1, x1, 4); // u[4.12]
word x3 = mul_u16_sel(x2, x1, 4); // u[4.12]
word x3_6 = mul_u16_sel(x3, $10000/6, 0); // u[4.12] - u[0.16] div6 = 1/6;
word x2 = mulu16_sel(x1, x1, 4); // u[4.12]
word x3 = mulu16_sel(x2, x1, 4); // u[4.12]
word x3_6 = mulu16_sel(x3, $10000/6, 0); // u[4.12] - u[0.16] div6 = 1/6;
word usinx = x1 - x3_6; // u[4.12]
word x4 = mul_u16_sel(x3, x1, 4); // u[4.12]
word x5 = mul_u16_sel(x4, x1, 4); // u[4.12]
word x5_128 = mul_u16_sel(x5, $10000/128, 0); // u[4.12] - u[0.16] div128 = 1/128;
word x4 = mulu16_sel(x3, x1, 4); // u[4.12]
word x5 = mulu16_sel(x4, x1, 4); // u[4.12]
word x5_128 = mulu16_sel(x5, $10000/128, 0); // u[4.12] - u[0.16] div128 = 1/128;
usinx = usinx + x5_128;
signed word sinx;
if(isUpper!=0) {
@ -124,7 +153,12 @@ void sin16ss_gen(signed word* sintab, word wavelength) {
// Calculate val*val for two unsigned word values - the result is 16 selected bits of the 32-bit result.
// The select parameter indicates how many of the highest bits of the 32-bit result to skip
word mul_u16_sel(word v1, word v2, byte select) {
word mulu16_sel(word v1, word v2, byte select) {
return >mul16u(v1, v2)<<select;
}
// Calculate val*val for two unsigned byte values - the result is 8 selected bits of the 16-bit result.
// The select parameter indicates how many of the highest bits of the 16-bit result to skip
byte mulu8_sel(byte v1, byte v2, byte select) {
return >mul8u(v1, v2)<<select;
}

View File

@ -0,0 +1,18 @@
// Generates a 16-bit signed sinus
import "sinus.kc"
import "print.kc"
void main() {
word wavelength = 120;
signed word[120] sintab1;
sin16s_gen(sintab1, wavelength);
print_cls();
for(signed word* st1 = sintab1; st1<sintab1+wavelength*2; st1 = st1+2 ) {
signed word sw = *st1;
if(sw>=0) {
print_str(" @");
}
print_sword(sw);
print_str(" @");
}
}

View File

@ -0,0 +1,17 @@
import "sinus.kc"
import "print.kc"
void main() {
word wavelength = 120;
signed byte[120] sintab2;
sin8s_gen(sintab2, wavelength);
print_cls();
for(byte i: 0..119) {
signed byte sb = sintab2[i];
if(sb>=0) {
print_str(" @");
}
print_sbyte(sb);
print_str(" @");
}
}

View File

@ -2790,24 +2790,16 @@ scroll_bit: {
lda #0
sta c+1
//SEG65 [28] (word~) scroll_bit::$4 ← (word) scroll_bit::c#0 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ scroll_bit::$4 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ scroll_bit::$4 nxt#19 ] ) -- vwuz1=vwuz2_rol_3
lda _4
lda c
asl
sta c
lda _4+1
sta _4
lda c+1
rol
sta c+1
lda _4
asl
sta c
lda _4+1
rol
sta c+1
lda _4
asl
sta c
lda _4+1
rol
sta c+1
sta _4+1
asl _4
rol _4+1
asl _4
rol _4+1
//SEG66 [29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] ) -- pbuz1=pbuc1_plus_vwuz2
lda _4
clc
@ -3150,15 +3142,15 @@ Uplift Scope [next_char] 8.5: zp ZP_BYTE:13 [ next_char::return#1 next_char::c#0
Uplift Scope [main]
Uplift Scope [scroll_soft]
Uplifting [scroll_bit] best 28308 combination reg byte a [ scroll_bit::bits#0 ] reg byte a [ scroll_bit::$9 ] reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ] zp ZP_WORD:7 [ scroll_bit::sc#2 scroll_bit::sc#1 ] reg byte a [ scroll_bit::b#2 ] reg byte a [ scroll_bit::$3 ] zp ZP_WORD:18 [ scroll_bit::c#0 ] zp ZP_WORD:20 [ scroll_bit::$4 ]
Uplifting [scroll_hard] best 25008 combination reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ]
Uplifting [] best 24696 combination zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] zp ZP_WORD:11 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ] reg byte x [ scroll#18 scroll#10 scroll#3 ]
Uplifting [fillscreen] best 24696 combination zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
Uplifting [next_char] best 24678 combination reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ] reg byte a [ next_char::return#0 ]
Uplifting [main] best 24678 combination
Uplifting [scroll_soft] best 24678 combination
Uplifting [scroll_bit] best 28296 combination reg byte a [ scroll_bit::bits#0 ] reg byte a [ scroll_bit::$9 ] reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ] zp ZP_WORD:7 [ scroll_bit::sc#2 scroll_bit::sc#1 ] reg byte a [ scroll_bit::b#2 ] reg byte a [ scroll_bit::$3 ] zp ZP_WORD:18 [ scroll_bit::c#0 ] zp ZP_WORD:20 [ scroll_bit::$4 ]
Uplifting [scroll_hard] best 24996 combination reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ]
Uplifting [] best 24684 combination zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] zp ZP_WORD:11 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ] reg byte x [ scroll#18 scroll#10 scroll#3 ]
Uplifting [fillscreen] best 24684 combination zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
Uplifting [next_char] best 24666 combination reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ] reg byte a [ next_char::return#0 ]
Uplifting [main] best 24666 combination
Uplifting [scroll_soft] best 24666 combination
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
Uplifting [] best 24678 combination zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
Uplifting [] best 24666 combination zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] ] with [ zp ZP_WORD:20 [ scroll_bit::$4 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 scroll_bit::$4 ] ] with [ zp ZP_WORD:18 [ scroll_bit::c#0 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 scroll_bit::$4 scroll_bit::c#0 ] ] with [ zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ] ]

View File

@ -7463,24 +7463,16 @@ gen_chargen_sprite: {
lda #0
sta _0+1
//SEG373 [183] (word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::$1 ] ( main:2::init:5::gen_sprites:55::gen_chargen_sprite:177 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::$1 ] ) -- vwuz1=vwuz2_rol_3
lda _1
lda _0
asl
sta _0
lda _1+1
sta _1
lda _0+1
rol
sta _0+1
lda _1
asl
sta _0
lda _1+1
rol
sta _0+1
lda _1
asl
sta _0
lda _1+1
rol
sta _0+1
sta _1+1
asl _1
rol _1+1
asl _1
rol _1+1
//SEG374 [184] (byte*) gen_chargen_sprite::chargen#0 ← (const byte*) CHARGEN#0 + (word~) gen_chargen_sprite::$1 [ gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ( main:2::init:5::gen_sprites:55::gen_chargen_sprite:177 [ gen_sprites::i#2 gen_sprites::spr#2 gen_chargen_sprite::sprite#0 gen_chargen_sprite::chargen#0 ] ) -- pbuz1=pbuc1_plus_vwuz2
lda _1
clc
@ -8015,67 +8007,67 @@ Uplift Scope [main]
Uplift Scope [progress_init]
Uplift Scope [progress_inc]
Uplifting [gen_chargen_sprite] best 1065211 combination zp ZP_BYTE:40 [ gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ] zp ZP_WORD:43 [ gen_chargen_sprite::sprite#3 gen_chargen_sprite::sprite#10 gen_chargen_sprite::sprite#11 gen_chargen_sprite::sprite#0 gen_chargen_sprite::sprite#2 gen_chargen_sprite::sprite#4 gen_chargen_sprite::sprite#1 ] reg byte y [ gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::s_gen_cnt#1 ] reg byte a [ gen_chargen_sprite::$6 ] reg byte x [ gen_chargen_sprite::b#2 gen_chargen_sprite::b#1 ] reg byte a [ gen_chargen_sprite::$3 ] zp ZP_BYTE:38 [ gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ] zp ZP_BYTE:37 [ gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 ] zp ZP_BYTE:39 [ gen_chargen_sprite::c#3 ] zp ZP_BYTE:36 [ gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 ] reg byte y [ gen_chargen_sprite::ch#0 ] zp ZP_WORD:65 [ gen_chargen_sprite::$0 ] zp ZP_WORD:67 [ gen_chargen_sprite::$1 ] zp ZP_WORD:69 [ gen_chargen_sprite::chargen#0 ]
Uplifting [gen_chargen_sprite] best 1065199 combination zp ZP_BYTE:40 [ gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ] zp ZP_WORD:43 [ gen_chargen_sprite::sprite#3 gen_chargen_sprite::sprite#10 gen_chargen_sprite::sprite#11 gen_chargen_sprite::sprite#0 gen_chargen_sprite::sprite#2 gen_chargen_sprite::sprite#4 gen_chargen_sprite::sprite#1 ] reg byte y [ gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::s_gen_cnt#1 ] reg byte a [ gen_chargen_sprite::$6 ] reg byte x [ gen_chargen_sprite::b#2 gen_chargen_sprite::b#1 ] reg byte a [ gen_chargen_sprite::$3 ] zp ZP_BYTE:38 [ gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ] zp ZP_BYTE:37 [ gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 ] zp ZP_BYTE:39 [ gen_chargen_sprite::c#3 ] zp ZP_BYTE:36 [ gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 ] reg byte y [ gen_chargen_sprite::ch#0 ] zp ZP_WORD:65 [ gen_chargen_sprite::$0 ] zp ZP_WORD:67 [ gen_chargen_sprite::$1 ] zp ZP_WORD:69 [ gen_chargen_sprite::chargen#0 ]
Uplift attempts [anim] 10000/19440 (limiting to 10000)
Uplifting [anim] best 1062311 combination zp ZP_BYTE:7 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ] zp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 ] reg byte alu [ anim::$3 ] reg byte a [ anim::$5 ] zp ZP_BYTE:8 [ anim::j#2 anim::j#1 ] zp ZP_BYTE:5 [ anim::x_msb#2 anim::x_msb#1 ] reg byte a [ anim::$2 ] reg byte x [ anim::j2#2 anim::j2#1 ] zp ZP_WORD:50 [ anim::x#0 ]
Uplifting [anim] best 1062299 combination zp ZP_BYTE:7 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ] zp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 ] reg byte alu [ anim::$3 ] reg byte a [ anim::$5 ] zp ZP_BYTE:8 [ anim::j#2 anim::j#1 ] zp ZP_BYTE:5 [ anim::x_msb#2 anim::x_msb#1 ] reg byte a [ anim::$2 ] reg byte x [ anim::j2#2 anim::j2#1 ] zp ZP_WORD:50 [ anim::x#0 ]
Limited combination testing to 10000 combinations of 19440 possible.
Uplifting [place_sprites] best 1061951 combination reg byte x [ place_sprites::j2#1 ] reg byte y [ place_sprites::j#2 place_sprites::j#1 ] zp ZP_BYTE:45 [ place_sprites::spr_id#2 place_sprites::spr_id#1 ] reg byte x [ place_sprites::j2#3 place_sprites::j2#2 ] zp ZP_BYTE:47 [ place_sprites::spr_x#2 place_sprites::spr_x#1 ] zp ZP_BYTE:49 [ place_sprites::col#2 place_sprites::col#1 ]
Uplifting [setFAC] best 1061951 combination zp ZP_WORD:29 [ setFAC::w#5 setFAC::w#0 setFAC::w#3 setFAC::w#4 setFAC::w#1 ]
Uplifting [gen_sintab] best 1061884 combination zp ZP_WORD:57 [ gen_sintab::$23 ] reg byte a [ gen_sintab::$24 ] zp ZP_BYTE:17 [ gen_sintab::i#10 gen_sintab::i#1 ] reg byte x [ gen_sintab::max#2 ] zp ZP_BYTE:14 [ gen_sintab::length#10 ] zp ZP_BYTE:13 [ gen_sintab::min#2 ] zp ZP_WORD:15 [ gen_sintab::sintab#12 ]
Uplifting [gen_sprites] best 1061884 combination zp ZP_BYTE:33 [ gen_sprites::i#2 gen_sprites::i#1 ] zp ZP_WORD:34 [ gen_sprites::spr#2 gen_sprites::spr#1 ]
Uplifting [clear_screen] best 1061884 combination zp ZP_WORD:10 [ clear_screen::sc#2 clear_screen::sc#1 ]
Uplifting [prepareMEM] best 1061872 combination zp ZP_WORD:23 [ prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#9 prepareMEM::mem#1 ] reg byte a [ prepareMEM::$0 ] reg byte a [ prepareMEM::$1 ]
Uplifting [init] best 1061722 combination reg byte x [ init::i#2 init::i#1 ]
Uplifting [getFAC] best 1061722 combination zp ZP_WORD:55 [ getFAC::return#2 ] zp ZP_WORD:60 [ getFAC::return#0 ]
Uplifting [] best 1061722 combination zp ZP_WORD:19 [ progress_cursor#34 progress_init::line#2 progress_cursor#11 progress_cursor#10 ] zp ZP_BYTE:18 [ progress_idx#34 progress_idx#12 progress_idx#10 ] zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 ] zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 ]
Uplifting [setMEMtoFAC] best 1061722 combination zp ZP_WORD:31 [ setMEMtoFAC::mem#5 ]
Uplifting [addMEMtoFAC] best 1061722 combination zp ZP_WORD:21 [ addMEMtoFAC::mem#2 ]
Uplifting [divMEMbyFAC] best 1061722 combination zp ZP_WORD:27 [ divMEMbyFAC::mem#2 ]
Uplifting [mulFACbyMEM] best 1061722 combination zp ZP_WORD:25 [ mulFACbyMEM::mem#2 ]
Uplifting [setARGtoFAC] best 1061722 combination
Uplifting [subFACfromARG] best 1061722 combination
Uplifting [sinFAC] best 1061722 combination
Uplifting [main] best 1061722 combination
Uplifting [progress_init] best 1061722 combination
Uplifting [progress_inc] best 1061722 combination
Uplifting [place_sprites] best 1061939 combination reg byte x [ place_sprites::j2#1 ] reg byte y [ place_sprites::j#2 place_sprites::j#1 ] zp ZP_BYTE:45 [ place_sprites::spr_id#2 place_sprites::spr_id#1 ] reg byte x [ place_sprites::j2#3 place_sprites::j2#2 ] zp ZP_BYTE:47 [ place_sprites::spr_x#2 place_sprites::spr_x#1 ] zp ZP_BYTE:49 [ place_sprites::col#2 place_sprites::col#1 ]
Uplifting [setFAC] best 1061939 combination zp ZP_WORD:29 [ setFAC::w#5 setFAC::w#0 setFAC::w#3 setFAC::w#4 setFAC::w#1 ]
Uplifting [gen_sintab] best 1061872 combination zp ZP_WORD:57 [ gen_sintab::$23 ] reg byte a [ gen_sintab::$24 ] zp ZP_BYTE:17 [ gen_sintab::i#10 gen_sintab::i#1 ] reg byte x [ gen_sintab::max#2 ] zp ZP_BYTE:14 [ gen_sintab::length#10 ] zp ZP_BYTE:13 [ gen_sintab::min#2 ] zp ZP_WORD:15 [ gen_sintab::sintab#12 ]
Uplifting [gen_sprites] best 1061872 combination zp ZP_BYTE:33 [ gen_sprites::i#2 gen_sprites::i#1 ] zp ZP_WORD:34 [ gen_sprites::spr#2 gen_sprites::spr#1 ]
Uplifting [clear_screen] best 1061872 combination zp ZP_WORD:10 [ clear_screen::sc#2 clear_screen::sc#1 ]
Uplifting [prepareMEM] best 1061860 combination zp ZP_WORD:23 [ prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#9 prepareMEM::mem#1 ] reg byte a [ prepareMEM::$0 ] reg byte a [ prepareMEM::$1 ]
Uplifting [init] best 1061710 combination reg byte x [ init::i#2 init::i#1 ]
Uplifting [getFAC] best 1061710 combination zp ZP_WORD:55 [ getFAC::return#2 ] zp ZP_WORD:60 [ getFAC::return#0 ]
Uplifting [] best 1061710 combination zp ZP_WORD:19 [ progress_cursor#34 progress_init::line#2 progress_cursor#11 progress_cursor#10 ] zp ZP_BYTE:18 [ progress_idx#34 progress_idx#12 progress_idx#10 ] zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 ] zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 ]
Uplifting [setMEMtoFAC] best 1061710 combination zp ZP_WORD:31 [ setMEMtoFAC::mem#5 ]
Uplifting [addMEMtoFAC] best 1061710 combination zp ZP_WORD:21 [ addMEMtoFAC::mem#2 ]
Uplifting [divMEMbyFAC] best 1061710 combination zp ZP_WORD:27 [ divMEMbyFAC::mem#2 ]
Uplifting [mulFACbyMEM] best 1061710 combination zp ZP_WORD:25 [ mulFACbyMEM::mem#2 ]
Uplifting [setARGtoFAC] best 1061710 combination
Uplifting [subFACfromARG] best 1061710 combination
Uplifting [sinFAC] best 1061710 combination
Uplifting [main] best 1061710 combination
Uplifting [progress_init] best 1061710 combination
Uplifting [progress_inc] best 1061710 combination
Attempting to uplift remaining variables inzp ZP_BYTE:40 [ gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ]
Uplifting [gen_chargen_sprite] best 1061722 combination zp ZP_BYTE:40 [ gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ]
Uplifting [gen_chargen_sprite] best 1061710 combination zp ZP_BYTE:40 [ gen_chargen_sprite::s_gen#3 gen_chargen_sprite::s_gen#5 gen_chargen_sprite::s_gen#6 gen_chargen_sprite::s_gen#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:38 [ gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ]
Uplifting [gen_chargen_sprite] best 1061722 combination zp ZP_BYTE:38 [ gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ]
Uplifting [gen_chargen_sprite] best 1061710 combination zp ZP_BYTE:38 [ gen_chargen_sprite::x#6 gen_chargen_sprite::x#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:37 [ gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 ]
Uplifting [gen_chargen_sprite] best 1061722 combination zp ZP_BYTE:37 [ gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 ]
Uplifting [gen_chargen_sprite] best 1061710 combination zp ZP_BYTE:37 [ gen_chargen_sprite::bits#2 gen_chargen_sprite::bits#0 gen_chargen_sprite::bits#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:39 [ gen_chargen_sprite::c#3 ]
Uplifting [gen_chargen_sprite] best 1061722 combination zp ZP_BYTE:39 [ gen_chargen_sprite::c#3 ]
Uplifting [gen_chargen_sprite] best 1061710 combination zp ZP_BYTE:39 [ gen_chargen_sprite::c#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:7 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ]
Uplifting [anim] best 1061722 combination zp ZP_BYTE:7 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ]
Uplifting [anim] best 1061710 combination zp ZP_BYTE:7 [ anim::yidx#3 anim::yidx#0 anim::yidx#6 anim::yidx#1 anim::yidx#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 ]
Uplifting [anim] best 1061722 combination zp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 ]
Uplifting [anim] best 1061710 combination zp ZP_BYTE:4 [ anim::xidx#3 anim::xidx#0 anim::xidx#5 anim::xidx#1 anim::xidx#2 ]
Attempting to uplift remaining variables inzp ZP_BYTE:36 [ gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 ]
Uplifting [gen_chargen_sprite] best 1061722 combination zp ZP_BYTE:36 [ gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 ]
Uplifting [gen_chargen_sprite] best 1061710 combination zp ZP_BYTE:36 [ gen_chargen_sprite::y#2 gen_chargen_sprite::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:8 [ anim::j#2 anim::j#1 ]
Uplifting [anim] best 1061722 combination zp ZP_BYTE:8 [ anim::j#2 anim::j#1 ]
Uplifting [anim] best 1061710 combination zp ZP_BYTE:8 [ anim::j#2 anim::j#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ anim::x_msb#2 anim::x_msb#1 ]
Uplifting [anim] best 1061722 combination zp ZP_BYTE:5 [ anim::x_msb#2 anim::x_msb#1 ]
Uplifting [anim] best 1061710 combination zp ZP_BYTE:5 [ anim::x_msb#2 anim::x_msb#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:33 [ gen_sprites::i#2 gen_sprites::i#1 ]
Uplifting [gen_sprites] best 1061722 combination zp ZP_BYTE:33 [ gen_sprites::i#2 gen_sprites::i#1 ]
Uplifting [gen_sprites] best 1061710 combination zp ZP_BYTE:33 [ gen_sprites::i#2 gen_sprites::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:45 [ place_sprites::spr_id#2 place_sprites::spr_id#1 ]
Uplifting [place_sprites] best 1061722 combination zp ZP_BYTE:45 [ place_sprites::spr_id#2 place_sprites::spr_id#1 ]
Uplifting [place_sprites] best 1061710 combination zp ZP_BYTE:45 [ place_sprites::spr_id#2 place_sprites::spr_id#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:17 [ gen_sintab::i#10 gen_sintab::i#1 ]
Uplifting [gen_sintab] best 1061722 combination zp ZP_BYTE:17 [ gen_sintab::i#10 gen_sintab::i#1 ]
Uplifting [gen_sintab] best 1061710 combination zp ZP_BYTE:17 [ gen_sintab::i#10 gen_sintab::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:47 [ place_sprites::spr_x#2 place_sprites::spr_x#1 ]
Uplifting [place_sprites] best 1061722 combination zp ZP_BYTE:47 [ place_sprites::spr_x#2 place_sprites::spr_x#1 ]
Uplifting [place_sprites] best 1061710 combination zp ZP_BYTE:47 [ place_sprites::spr_x#2 place_sprites::spr_x#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:49 [ place_sprites::col#2 place_sprites::col#1 ]
Uplifting [place_sprites] best 1061722 combination zp ZP_BYTE:49 [ place_sprites::col#2 place_sprites::col#1 ]
Uplifting [place_sprites] best 1061710 combination zp ZP_BYTE:49 [ place_sprites::col#2 place_sprites::col#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:18 [ progress_idx#34 progress_idx#12 progress_idx#10 ]
Uplifting [] best 1061722 combination zp ZP_BYTE:18 [ progress_idx#34 progress_idx#12 progress_idx#10 ]
Uplifting [] best 1061710 combination zp ZP_BYTE:18 [ progress_idx#34 progress_idx#12 progress_idx#10 ]
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 ]
Uplifting [] best 1061722 combination zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 ]
Uplifting [] best 1061710 combination zp ZP_BYTE:3 [ sin_idx_y#13 sin_idx_y#11 sin_idx_y#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 ]
Uplifting [] best 1061722 combination zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 ]
Uplifting [] best 1061710 combination zp ZP_BYTE:2 [ sin_idx_x#13 sin_idx_x#11 sin_idx_x#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:14 [ gen_sintab::length#10 ]
Uplifting [gen_sintab] best 1061722 combination zp ZP_BYTE:14 [ gen_sintab::length#10 ]
Uplifting [gen_sintab] best 1061710 combination zp ZP_BYTE:14 [ gen_sintab::length#10 ]
Attempting to uplift remaining variables inzp ZP_BYTE:13 [ gen_sintab::min#2 ]
Uplifting [gen_sintab] best 1061722 combination zp ZP_BYTE:13 [ gen_sintab::min#2 ]
Uplifting [gen_sintab] best 1061710 combination zp ZP_BYTE:13 [ gen_sintab::min#2 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ addMEMtoFAC::mem#2 ] ] with [ zp ZP_WORD:23 [ prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#9 prepareMEM::mem#1 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:55 [ getFAC::return#2 ] ] with [ zp ZP_WORD:57 [ gen_sintab::$23 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:55 [ getFAC::return#2 gen_sintab::$23 ] ] with [ zp ZP_WORD:60 [ getFAC::return#0 ] ] - score: 1

View File

@ -1,10 +1,10 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.label SCREEN = $400
.const PI2_u4f28 = $6487ed51
.const PI_u4f28 = $3243f6a9
.const PI_HALF_u4f28 = $1921fb54
.label SCREEN = $400
.label rem16u = 4
.label char_cursor = 8
jsr main
@ -321,35 +321,35 @@ sin16s: {
lda _6+3
sta x1+1
lda x1
sta mul_u16_sel.v1
sta mulu16_sel.v1
lda x1+1
sta mul_u16_sel.v1+1
sta mulu16_sel.v1+1
lda x1
sta mul_u16_sel.v2
sta mulu16_sel.v2
lda x1+1
sta mul_u16_sel.v2+1
sta mulu16_sel.v2+1
ldx #0
jsr mul_u16_sel
lda mul_u16_sel.return
jsr mulu16_sel
lda mulu16_sel.return
sta x2
lda mul_u16_sel.return+1
lda mulu16_sel.return+1
sta x2+1
lda x1
sta mul_u16_sel.v2
sta mulu16_sel.v2
lda x1+1
sta mul_u16_sel.v2+1
sta mulu16_sel.v2+1
ldx #1
jsr mul_u16_sel
lda mul_u16_sel.return
sta mul_u16_sel.return_1
lda mul_u16_sel.return+1
sta mul_u16_sel.return_1+1
jsr mulu16_sel
lda mulu16_sel.return
sta mulu16_sel.return_1
lda mulu16_sel.return+1
sta mulu16_sel.return_1+1
ldx #1
lda #<$10000/6
sta mul_u16_sel.v2
sta mulu16_sel.v2
lda #>$10000/6
sta mul_u16_sel.v2+1
jsr mul_u16_sel
sta mulu16_sel.v2+1
jsr mulu16_sel
lda x1
sec
sbc x3_6
@ -358,21 +358,21 @@ sin16s: {
sbc x3_6+1
sta usinx+1
lda x1
sta mul_u16_sel.v2
sta mulu16_sel.v2
lda x1+1
sta mul_u16_sel.v2+1
sta mulu16_sel.v2+1
ldx #0
jsr mul_u16_sel
lda mul_u16_sel.return
sta mul_u16_sel.return_10
lda mul_u16_sel.return+1
sta mul_u16_sel.return_10+1
jsr mulu16_sel
lda mulu16_sel.return
sta mulu16_sel.return_10
lda mulu16_sel.return+1
sta mulu16_sel.return_10+1
lda x1
sta mul_u16_sel.v2
sta mulu16_sel.v2
lda x1+1
sta mul_u16_sel.v2+1
sta mulu16_sel.v2+1
ldx #0
jsr mul_u16_sel
jsr mulu16_sel
ldy #4
!:
lsr x5_128+1
@ -400,7 +400,7 @@ sin16s: {
b3:
rts
}
mul_u16_sel: {
mulu16_sel: {
.label _0 = $f
.label _1 = $f
.label v1 = 8

View File

@ -1,13 +1,13 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@26
@26: scope:[] from @begin
to:@29
@29: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @26
@end: scope:[] from @29
[3] phi() [ ] ( )
main: scope:[main] from @26
main: scope:[main] from @29
[4] phi() [ ] ( main:2 [ ] )
[5] call sin16s_gen param-assignment [ ] ( main:2 [ ] )
to:main::@5
@ -133,7 +133,7 @@ sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen
to:sin16s_gen::@1
sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4
[62] (word) sin16s_gen::i#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
[62] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[120]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
[62] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[120]) main::sintab1#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
[62] (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
[63] (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] )
[64] call sin16s param-assignment [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
@ -142,10 +142,10 @@ sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4
sin16s_gen::@4: scope:[sin16s_gen] from sin16s_gen::@1
[66] (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#0 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] )
[67] *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
[68] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#1 ] )
[69] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#1 ] )
[70] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
[71] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#1 sin16s_gen::i#1 ] )
[68] (signed word*) sin16s_gen::sintab#0 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#0 ] )
[69] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#0 ] )
[70] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#0 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#0 sin16s_gen::i#1 ] )
[71] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#0 sin16s_gen::i#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#0 sin16s_gen::i#1 ] )
to:sin16s_gen::@return
sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@4
[72] return [ ] ( main:2::sin16s_gen:5 [ ] )
@ -168,41 +168,41 @@ sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5
[78] (dword) sin16s::x#6 ← phi( sin16s::@1/(dword) sin16s::x#4 sin16s::@5/(dword) sin16s::x#2 ) [ sin16s::isUpper#2 sin16s::x#6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x#6 ] )
[79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#2 sin16s::$6 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::$6 ] )
[80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 ] )
[81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#0 ] )
[82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] )
[83] call mul_u16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 ] )
[84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#0 ] )
[81] (word) mulu16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] )
[82] (word) mulu16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] )
[83] call mulu16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] )
[84] (word) mulu16_sel::return#0 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] )
to:sin16s::@8
sin16s::@8: scope:[sin16s] from sin16s::@2
[85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x2#0 ] )
[86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#1 ] )
[87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] )
[88] call mul_u16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 ] )
[89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#1 ] )
[85] (word) sin16s::x2#0 ← (word) mulu16_sel::return#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x2#0 ] )
[86] (word) mulu16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 ] )
[87] (word) mulu16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 mulu16_sel::v2#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 mulu16_sel::v2#1 ] )
[88] call mulu16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] )
[89] (word) mulu16_sel::return#1 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#1 ] )
to:sin16s::@9
sin16s::@9: scope:[sin16s] from sin16s::@8
[90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 ] )
[91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] )
[92] call mul_u16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 sin16s::x3#0 ] )
[93] (word) mul_u16_sel::return#2 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#2 ] )
[90] (word) sin16s::x3#0 ← (word) mulu16_sel::return#1 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 ] )
[91] (word) mulu16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#2 ] )
[92] call mulu16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::x3#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::x3#0 ] )
[93] (word) mulu16_sel::return#2 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#2 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#2 ] )
to:sin16s::@10
sin16s::@10: scope:[sin16s] from sin16s::@9
[94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#2 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] )
[94] (word) sin16s::x3_6#0 ← (word) mulu16_sel::return#2 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] )
[95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] )
[96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] )
[97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] )
[98] call mul_u16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 sin16s::usinx#0 ] )
[99] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#10 ] )
[96] (word) mulu16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 ] )
[97] (word) mulu16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 mulu16_sel::v2#3 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 mulu16_sel::v2#3 ] )
[98] call mulu16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::usinx#0 ] )
[99] (word) mulu16_sel::return#10 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#10 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#10 ] )
to:sin16s::@11
sin16s::@11: scope:[sin16s] from sin16s::@10
[100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] )
[101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] )
[102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] )
[103] call mul_u16_sel param-assignment [ sin16s::isUpper#2 mul_u16_sel::return#12 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 mul_u16_sel::return#12 sin16s::usinx#0 ] )
[104] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::return#11 ] )
[100] (word) sin16s::x4#0 ← (word) mulu16_sel::return#10 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] )
[101] (word) mulu16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#4 ] )
[102] (word) mulu16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#4 mulu16_sel::v2#4 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#4 mulu16_sel::v2#4 ] )
[103] call mulu16_sel param-assignment [ sin16s::isUpper#2 mulu16_sel::return#12 sin16s::usinx#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 mulu16_sel::return#12 sin16s::usinx#0 ] )
[104] (word) mulu16_sel::return#11 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#11 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#11 ] )
to:sin16s::@12
sin16s::@12: scope:[sin16s] from sin16s::@11
[105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5#0 ] )
[105] (word) sin16s::x5#0 ← (word) mulu16_sel::return#11 [ sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5#0 ] )
[106] (word) sin16s::x5_128#0 ← (word) sin16s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] )
[107] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#2 sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#1 ] )
[108] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 [ sin16s::usinx#1 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::usinx#1 ] )
@ -219,46 +219,46 @@ sin16s::@return: scope:[sin16s] from sin16s::@3
sin16s::@15: scope:[sin16s] from sin16s::@12
[112] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:5::sin16s:64 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] )
to:sin16s::@3
mul_u16_sel: scope:[mul_u16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9
[113] (byte) mul_u16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] )
[113] (word) mul_u16_sel::v2#5 ← phi( sin16s::@10/(word) mul_u16_sel::v2#3 sin16s::@11/(word) mul_u16_sel::v2#4 sin16s::@2/(word) mul_u16_sel::v2#0 sin16s::@8/(word) mul_u16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [ mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] )
[113] (word) mul_u16_sel::v1#5 ← phi( sin16s::@10/(word) mul_u16_sel::v1#3 sin16s::@11/(word) mul_u16_sel::v1#4 sin16s::@2/(word) mul_u16_sel::v1#0 sin16s::@8/(word) mul_u16_sel::v1#1 sin16s::@9/(word) mul_u16_sel::v1#2 ) [ mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::v1#5 mul_u16_sel::v2#5 mul_u16_sel::select#5 ] )
[114] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#5 [ mul_u16_sel::v2#5 mul_u16_sel::select#5 mul16u::a#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::v2#5 mul_u16_sel::select#5 mul16u::a#1 ] )
[115] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#5 [ mul_u16_sel::select#5 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::b#0 ] )
[116] call mul16u param-assignment [ mul_u16_sel::select#5 mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 ] )
[117] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#5 mul16u::return#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::return#2 ] )
to:mul_u16_sel::@2
mul_u16_sel::@2: scope:[mul_u16_sel] from mul_u16_sel
[118] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#5 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul_u16_sel::$0 ] )
[119] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#5 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::$1 ] )
[120] (word) mul_u16_sel::return#12 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::return#12 ] )
to:mul_u16_sel::@return
mul_u16_sel::@return: scope:[mul_u16_sel] from mul_u16_sel::@2
[121] return [ mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::return#12 ] )
mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9
[113] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
[113] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [ mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
[113] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [ mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
[114] (word) mul16u::a#1 ← (word) mulu16_sel::v1#5 [ mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] )
[115] (word) mul16u::b#0 ← (word) mulu16_sel::v2#5 [ mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] )
[116] call mul16u param-assignment [ mulu16_sel::select#5 mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] )
[117] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mulu16_sel::select#5 mul16u::return#2 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#2 ] )
to:mulu16_sel::@2
mulu16_sel::@2: scope:[mulu16_sel] from mulu16_sel
[118] (dword~) mulu16_sel::$0 ← (dword) mul16u::return#2 [ mulu16_sel::select#5 mulu16_sel::$0 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] )
[119] (dword~) mulu16_sel::$1 ← (dword~) mulu16_sel::$0 << (byte) mulu16_sel::select#5 [ mulu16_sel::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::$1 ] )
[120] (word) mulu16_sel::return#12 ← > (dword~) mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] )
to:mulu16_sel::@return
mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2
[121] return [ mulu16_sel::return#12 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] )
to:@return
mul16u: scope:[mul16u] from mul_u16_sel
[122] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] )
mul16u: scope:[mul16u] from mulu16_sel
[122] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] )
to:mul16u::@1
mul16u::@1: scope:[mul16u] from mul16u mul16u::@4
[123] (dword) mul16u::mb#2 ← phi( mul16u/(dword) mul16u::mb#0 mul16u::@4/(dword) mul16u::mb#1 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[123] (dword) mul16u::res#2 ← phi( mul16u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u::@4/(dword) mul16u::res#6 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[123] (word) mul16u::a#2 ← phi( mul16u/(word) mul16u::a#1 mul16u::@4/(word) mul16u::a#0 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[124] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[123] (dword) mul16u::mb#2 ← phi( mul16u/(dword) mul16u::mb#0 mul16u::@4/(dword) mul16u::mb#1 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[123] (dword) mul16u::res#2 ← phi( mul16u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u::@4/(dword) mul16u::res#6 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[123] (word) mul16u::a#2 ← phi( mul16u/(word) mul16u::a#1 mul16u::@4/(word) mul16u::a#0 ) [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[124] if((word) mul16u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
to:mul16u::@return
mul16u::@return: scope:[mul16u] from mul16u::@1
[125] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 ] )
[125] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] )
to:@return
mul16u::@2: scope:[mul16u] from mul16u::@1
[126] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] )
[127] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[126] (byte~) mul16u::$1 ← (word) mul16u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] )
[127] if((byte~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
to:mul16u::@7
mul16u::@7: scope:[mul16u] from mul16u::@2
[128] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] )
[128] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] )
to:mul16u::@4
mul16u::@4: scope:[mul16u] from mul16u::@2 mul16u::@7
[129] (dword) mul16u::res#6 ← phi( mul16u::@2/(dword) mul16u::res#2 mul16u::@7/(dword) mul16u::res#1 ) [ mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] )
[130] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] )
[131] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul_u16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
[129] (dword) mul16u::res#6 ← phi( mul16u::@2/(dword) mul16u::res#2 mul16u::@7/(dword) mul16u::res#1 ) [ mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] )
[130] (word) mul16u::a#0 ← (word) mul16u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] )
[131] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen:5::sin16s:64::mulu16_sel:83::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:88::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:92::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:98::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mulu16_sel:103::mul16u:116 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
to:mul16u::@1
div32u16u: scope:[div32u16u] from sin16s_gen
[132] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] )

View File

@ -1,4 +1,4 @@
(label) @26
(label) @29
(label) @begin
(label) @end
(dword) PI2_u4f28
@ -112,33 +112,33 @@
(dword) mul16u::res#6 res zp ZP_DWORD:15 101.0
(dword) mul16u::return
(dword) mul16u::return#2 return zp ZP_DWORD:15 4.0
(word()) mul_u16_sel((word) mul_u16_sel::v1 , (word) mul_u16_sel::v2 , (byte) mul_u16_sel::select)
(dword~) mul_u16_sel::$0 $0 zp ZP_DWORD:15 4.0
(dword~) mul_u16_sel::$1 $1 zp ZP_DWORD:15 4.0
(label) mul_u16_sel::@2
(label) mul_u16_sel::@return
(word) mul_u16_sel::return
(word) mul_u16_sel::return#0 return zp ZP_WORD:19 4.0
(word) mul_u16_sel::return#1 return#1 zp ZP_WORD:8 4.0
(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:8 4.0
(word) mul_u16_sel::return#11 return zp ZP_WORD:19 4.0
(word) mul_u16_sel::return#12 return zp ZP_WORD:19 1.714285714285714
(word) mul_u16_sel::return#2 return zp ZP_WORD:19 4.0
(byte) mul_u16_sel::select
(byte) mul_u16_sel::select#5 reg byte x 0.3333333333333333
(word) mul_u16_sel::v1
(word) mul_u16_sel::v1#0 v1 zp ZP_WORD:8 2.0
(word) mul_u16_sel::v1#1 v1 zp ZP_WORD:8 2.0
(word) mul_u16_sel::v1#2 v1 zp ZP_WORD:8 4.0
(word) mul_u16_sel::v1#3 v1 zp ZP_WORD:8 2.0
(word) mul_u16_sel::v1#4 v1 zp ZP_WORD:8 2.0
(word) mul_u16_sel::v1#5 v1 zp ZP_WORD:8 12.0
(word) mul_u16_sel::v2
(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:19 4.0
(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:19 4.0
(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:19 4.0
(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:19 4.0
(word) mul_u16_sel::v2#5 v2 zp ZP_WORD:19 5.0
(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select)
(dword~) mulu16_sel::$0 $0 zp ZP_DWORD:15 4.0
(dword~) mulu16_sel::$1 $1 zp ZP_DWORD:15 4.0
(label) mulu16_sel::@2
(label) mulu16_sel::@return
(word) mulu16_sel::return
(word) mulu16_sel::return#0 return zp ZP_WORD:19 4.0
(word) mulu16_sel::return#1 return#1 zp ZP_WORD:8 4.0
(word) mulu16_sel::return#10 return#10 zp ZP_WORD:8 4.0
(word) mulu16_sel::return#11 return zp ZP_WORD:19 4.0
(word) mulu16_sel::return#12 return zp ZP_WORD:19 1.714285714285714
(word) mulu16_sel::return#2 return zp ZP_WORD:19 4.0
(byte) mulu16_sel::select
(byte) mulu16_sel::select#5 reg byte x 0.3333333333333333
(word) mulu16_sel::v1
(word) mulu16_sel::v1#0 v1 zp ZP_WORD:8 2.0
(word) mulu16_sel::v1#1 v1 zp ZP_WORD:8 2.0
(word) mulu16_sel::v1#2 v1 zp ZP_WORD:8 4.0
(word) mulu16_sel::v1#3 v1 zp ZP_WORD:8 2.0
(word) mulu16_sel::v1#4 v1 zp ZP_WORD:8 2.0
(word) mulu16_sel::v1#5 v1 zp ZP_WORD:8 12.0
(word) mulu16_sel::v2
(word) mulu16_sel::v2#0 v2 zp ZP_WORD:19 4.0
(word) mulu16_sel::v2#1 v2 zp ZP_WORD:19 4.0
(word) mulu16_sel::v2#3 v2 zp ZP_WORD:19 4.0
(word) mulu16_sel::v2#4 v2 zp ZP_WORD:19 4.0
(word) mulu16_sel::v2#5 v2 zp ZP_WORD:19 5.0
(void()) print_byte((byte) print_byte::b)
(byte~) print_byte::$0 reg byte a 4.0
(byte~) print_byte::$2 reg byte a 4.0
@ -241,7 +241,7 @@
(word) sin16s_gen::i#1 i zp ZP_WORD:4 16.5
(word) sin16s_gen::i#2 i zp ZP_WORD:4 2.75
(signed word*) sin16s_gen::sintab
(signed word*) sin16s_gen::sintab#1 sintab zp ZP_WORD:2 5.5
(signed word*) sin16s_gen::sintab#0 sintab zp ZP_WORD:2 5.5
(signed word*) sin16s_gen::sintab#2 sintab zp ZP_WORD:2 5.5
(dword) sin16s_gen::step
(dword) sin16s_gen::step#0 step zp ZP_DWORD:27 1.1818181818181819
@ -250,17 +250,17 @@
(dword) sin16s_gen::x#1 x zp ZP_DWORD:10 7.333333333333333
(dword) sin16s_gen::x#2 x zp ZP_DWORD:10 4.714285714285714
zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#2 sin16s_gen::sintab#1 divr16u::divisor#6 ]
zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#2 sin16s_gen::sintab#0 divr16u::divisor#6 ]
zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#2 sin16s_gen::i#1 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ]
zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ]
reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
zp ZP_WORD:8 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mul_u16_sel::v1#5 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mul_u16_sel::return#1 mul_u16_sel::return#10 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ]
zp ZP_WORD:8 [ char_cursor#33 char_cursor#46 char_cursor#43 char_cursor#51 char_cursor#48 char_cursor#49 char_cursor#2 char_cursor#12 char_cursor#1 mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mulu16_sel::return#1 mulu16_sel::return#10 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ]
zp ZP_DWORD:10 [ sin16s_gen::x#2 sin16s_gen::x#1 ]
zp ZP_BYTE:14 [ sin16s::isUpper#2 ]
zp ZP_DWORD:15 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$6 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ]
zp ZP_WORD:19 [ mul_u16_sel::v2#5 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 mul16u::b#0 mul_u16_sel::return#0 mul_u16_sel::return#12 mul_u16_sel::return#2 sin16s::x3_6#0 mul_u16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 div32u16u::quotient_hi#0 ]
reg byte x [ mul_u16_sel::select#5 ]
zp ZP_DWORD:15 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$6 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mulu16_sel::$0 mulu16_sel::$1 ]
zp ZP_WORD:19 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 mul16u::b#0 mulu16_sel::return#0 mulu16_sel::return#12 mulu16_sel::return#2 sin16s::x3_6#0 mulu16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 div32u16u::quotient_hi#0 ]
reg byte x [ mulu16_sel::select#5 ]
zp ZP_WORD:21 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ]
zp ZP_DWORD:23 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
reg byte x [ divr16u::i#2 divr16u::i#1 ]

View File

@ -0,0 +1,391 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.const PI2_u4f12 = $6488
.const PI_u4f12 = $3244
.const PI_HALF_u4f12 = $1922
.label SCREEN = $400
.label char_cursor = 5
jsr main
main: {
.label wavelength = $78
.label sb = 4
jsr sin8s_gen
jsr print_cls
lda #<SCREEN
sta char_cursor
lda #>SCREEN
sta char_cursor+1
ldx #0
b1:
lda sintab2,x
sta sb
bmi b2
lda #<str1
sta print_str.str
lda #>str1
sta print_str.str+1
jsr print_str
b2:
jsr print_sbyte
lda #<str
sta print_str.str
lda #>str
sta print_str.str+1
jsr print_str
inx
cpx #$78
bne b1
rts
str: .text " @"
str1: .text " @"
sintab2: .fill $78, 0
}
print_str: {
.label str = 2
b1:
ldy #0
lda (str),y
cmp #'@'
bne b2
rts
b2:
ldy #0
lda (str),y
sta (char_cursor),y
inc char_cursor
bne !+
inc char_cursor+1
!:
inc str
bne !+
inc str+1
!:
jmp b1
}
print_sbyte: {
.label b = 4
lda b
cmp #0
bpl b1
lda #'-'
jsr print_char
lda b
eor #$ff
clc
adc #1
sta b
b1:
jsr print_byte
rts
}
print_byte: {
lda print_sbyte.b
lsr
lsr
lsr
lsr
tay
lda hextab,y
jsr print_char
lda #$f
and print_sbyte.b
tay
lda hextab,y
jsr print_char
rts
hextab: .text "0123456789abcdef"
}
print_char: {
ldy #0
sta (char_cursor),y
inc char_cursor
bne !+
inc char_cursor+1
!:
rts
}
print_cls: {
.label sc = 2
lda #<SCREEN
sta sc
lda #>SCREEN
sta sc+1
b1:
lda #' '
ldy #0
sta (sc),y
inc sc
bne !+
inc sc+1
!:
lda sc+1
cmp #>SCREEN+$3e8
bne b1
lda sc
cmp #<SCREEN+$3e8
bne b1
rts
}
sin8s_gen: {
.label step = $e
.label sintab = 5
.label x = 2
.label i = 7
jsr div16u
lda #<0
sta i
sta i+1
lda #<main.sintab2
sta sintab
lda #>main.sintab2
sta sintab+1
lda #<0
sta x
sta x+1
b1:
lda x
sta sin8s.x
lda x+1
sta sin8s.x+1
jsr sin8s
ldy #0
sta (sintab),y
inc sintab
bne !+
inc sintab+1
!:
lda x
clc
adc step
sta x
lda x+1
adc step+1
sta x+1
inc i
bne !+
inc i+1
!:
lda i+1
cmp #>main.wavelength
bcc b1
bne !+
lda i
cmp #<main.wavelength
bcc b1
!:
rts
}
sin8s: {
.label _6 = 9
.label x = 9
.label x1 = $10
.label x3 = $11
.label usinx = $12
.label isUpper = 4
lda x+1
cmp #>PI_u4f12
bcc b4
bne !+
lda x
cmp #<PI_u4f12
bcc b4
!:
lda x
sec
sbc #<PI_u4f12
sta x
lda x+1
sbc #>PI_u4f12
sta x+1
lda #1
sta isUpper
jmp b1
b4:
lda #0
sta isUpper
b1:
lda x+1
cmp #>PI_HALF_u4f12
bcc b2
bne !+
lda x
cmp #<PI_HALF_u4f12
bcc b2
!:
sec
lda #<PI_u4f12
sbc x
sta x
lda #>PI_u4f12
sbc x+1
sta x+1
b2:
asl _6
rol _6+1
asl _6
rol _6+1
asl _6
rol _6+1
lda _6+1
sta x1
tax
tay
lda #0
sta mulu8_sel.select
jsr mulu8_sel
tax
ldy x1
lda #1
sta mulu8_sel.select
jsr mulu8_sel
sta x3
tax
lda #1
sta mulu8_sel.select
ldy #$100/6
jsr mulu8_sel
eor #$ff
sec
adc x1
sta usinx
ldx x3
ldy x1
lda #0
sta mulu8_sel.select
jsr mulu8_sel
tax
ldy x1
lda #0
sta mulu8_sel.select
jsr mulu8_sel
lsr
lsr
lsr
lsr
clc
adc usinx
tax
lda isUpper
beq b15
txa
eor #$ff
clc
adc #1
b3:
rts
b15:
txa
jmp b3
}
mulu8_sel: {
.label _0 = 9
.label _1 = 9
.label select = $b
tya
jsr mul8u
ldy select
beq !e+
!:
asl _1
rol _1+1
dey
bne !-
!e:
lda _1+1
rts
}
mul8u: {
.label mb = $c
.label res = 9
.label return = 9
sta mb
lda #0
sta mb+1
sta res
sta res+1
b1:
cpx #0
bne b2
rts
b2:
txa
and #1
cmp #0
beq b4
lda res
clc
adc mb
sta res
lda res+1
adc mb+1
sta res+1
b4:
txa
lsr
tax
asl mb
rol mb+1
jmp b1
}
div16u: {
.label return = $e
jsr divr16u
rts
}
divr16u: {
.label rem = 2
.label dividend = 5
.label quotient = $e
.label return = $e
ldx #0
txa
sta quotient
sta quotient+1
lda #<PI2_u4f12
sta dividend
lda #>PI2_u4f12
sta dividend+1
txa
sta rem
sta rem+1
b1:
asl rem
rol rem+1
lda dividend+1
and #$80
cmp #0
beq b2
lda #1
ora rem
sta rem
b2:
asl dividend
rol dividend+1
asl quotient
rol quotient+1
lda rem+1
cmp #>main.wavelength
bcc b3
bne !+
lda rem
cmp #<main.wavelength
bcc b3
!:
inc quotient
bne !+
inc quotient+1
!:
lda rem
sec
sbc #<main.wavelength
sta rem
lda rem+1
sbc #>main.wavelength
sta rem+1
b3:
inx
cpx #$10
bne b1
rts
}

View File

@ -0,0 +1,295 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@29
@29: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @29
[3] phi() [ ] ( )
main: scope:[main] from @29
[4] phi() [ ] ( main:2 [ ] )
[5] call sin8s_gen param-assignment [ ] ( main:2 [ ] )
to:main::@5
main::@5: scope:[main] from main
[6] phi() [ ] ( main:2 [ ] )
[7] call print_cls param-assignment [ ] ( main:2 [ ] )
to:main::@1
main::@1: scope:[main] from main::@5 main::@8
[8] (byte*) char_cursor#42 ← phi( main::@5/(const byte*) SCREEN#0 main::@8/(byte*) char_cursor#19 ) [ main::i#2 char_cursor#42 ] ( main:2 [ main::i#2 char_cursor#42 ] )
[8] (byte) main::i#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@8/(byte) main::i#1 ) [ main::i#2 char_cursor#42 ] ( main:2 [ main::i#2 char_cursor#42 ] )
[9] (signed byte) main::sb#0 ← *((const signed byte[120]) main::sintab2#0 + (byte) main::i#2) [ main::i#2 char_cursor#42 main::sb#0 ] ( main:2 [ main::i#2 char_cursor#42 main::sb#0 ] )
[10] if((signed byte) main::sb#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::i#2 char_cursor#42 main::sb#0 ] ( main:2 [ main::i#2 char_cursor#42 main::sb#0 ] )
to:main::@3
main::@3: scope:[main] from main::@1
[11] phi() [ main::i#2 char_cursor#42 main::sb#0 ] ( main:2 [ main::i#2 char_cursor#42 main::sb#0 ] )
[12] call print_str param-assignment [ main::i#2 char_cursor#19 main::sb#0 ] ( main:2 [ main::i#2 char_cursor#19 main::sb#0 ] )
to:main::@2
main::@2: scope:[main] from main::@1 main::@3
[13] (byte*) char_cursor#41 ← phi( main::@1/(byte*) char_cursor#42 main::@3/(byte*) char_cursor#19 ) [ main::i#2 main::sb#0 char_cursor#41 ] ( main:2 [ main::i#2 main::sb#0 char_cursor#41 ] )
[14] (signed byte) print_sbyte::b#1 ← (signed byte) main::sb#0 [ main::i#2 char_cursor#41 print_sbyte::b#1 ] ( main:2 [ main::i#2 char_cursor#41 print_sbyte::b#1 ] )
[15] call print_sbyte param-assignment [ main::i#2 char_cursor#10 ] ( main:2 [ main::i#2 char_cursor#10 ] )
to:main::@7
main::@7: scope:[main] from main::@2
[16] phi() [ main::i#2 char_cursor#10 ] ( main:2 [ main::i#2 char_cursor#10 ] )
[17] call print_str param-assignment [ main::i#2 char_cursor#19 ] ( main:2 [ main::i#2 char_cursor#19 ] )
to:main::@8
main::@8: scope:[main] from main::@7
[18] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 char_cursor#19 ] ( main:2 [ main::i#1 char_cursor#19 ] )
[19] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 120) goto main::@1 [ main::i#1 char_cursor#19 ] ( main:2 [ main::i#1 char_cursor#19 ] )
to:main::@return
main::@return: scope:[main] from main::@8
[20] return [ ] ( main:2 [ ] )
to:@return
print_str: scope:[print_str] from main::@3 main::@7
[21] (byte*) char_cursor#44 ← phi( main::@3/(byte*) char_cursor#42 main::@7/(byte*) char_cursor#10 ) [ print_str::str#5 char_cursor#44 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 print_str::str#5 char_cursor#44 ] main:2::print_str:17 [ main::i#2 print_str::str#5 char_cursor#44 ] )
[21] (byte*) print_str::str#5 ← phi( main::@3/(const string) main::str1 main::@7/(const string) main::str ) [ print_str::str#5 char_cursor#44 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 print_str::str#5 char_cursor#44 ] main:2::print_str:17 [ main::i#2 print_str::str#5 char_cursor#44 ] )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[22] (byte*) char_cursor#19 ← phi( print_str/(byte*) char_cursor#44 print_str::@2/(byte*) char_cursor#1 ) [ char_cursor#19 print_str::str#3 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 char_cursor#19 print_str::str#3 ] main:2::print_str:17 [ main::i#2 char_cursor#19 print_str::str#3 ] )
[22] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 ) [ char_cursor#19 print_str::str#3 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 char_cursor#19 print_str::str#3 ] main:2::print_str:17 [ main::i#2 char_cursor#19 print_str::str#3 ] )
[23] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 [ char_cursor#19 print_str::str#3 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 char_cursor#19 print_str::str#3 ] main:2::print_str:17 [ main::i#2 char_cursor#19 print_str::str#3 ] )
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
[24] return [ char_cursor#19 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 char_cursor#19 ] main:2::print_str:17 [ main::i#2 char_cursor#19 ] )
to:@return
print_str::@2: scope:[print_str] from print_str::@1
[25] *((byte*) char_cursor#19) ← *((byte*) print_str::str#3) [ char_cursor#19 print_str::str#3 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 char_cursor#19 print_str::str#3 ] main:2::print_str:17 [ main::i#2 char_cursor#19 print_str::str#3 ] )
[26] (byte*) char_cursor#1 ← ++ (byte*) char_cursor#19 [ print_str::str#3 char_cursor#1 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 print_str::str#3 char_cursor#1 ] main:2::print_str:17 [ main::i#2 print_str::str#3 char_cursor#1 ] )
[27] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#3 [ print_str::str#0 char_cursor#1 ] ( main:2::print_str:12 [ main::i#2 main::sb#0 print_str::str#0 char_cursor#1 ] main:2::print_str:17 [ main::i#2 print_str::str#0 char_cursor#1 ] )
to:print_str::@1
print_sbyte: scope:[print_sbyte] from main::@2
[28] if((signed byte) print_sbyte::b#1>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 [ char_cursor#41 print_sbyte::b#1 ] ( main:2::print_sbyte:15 [ main::i#2 char_cursor#41 print_sbyte::b#1 ] )
to:print_sbyte::@2
print_sbyte::@2: scope:[print_sbyte] from print_sbyte
[29] phi() [ char_cursor#41 print_sbyte::b#1 ] ( main:2::print_sbyte:15 [ main::i#2 char_cursor#41 print_sbyte::b#1 ] )
[30] call print_char param-assignment [ print_sbyte::b#1 char_cursor#10 ] ( main:2::print_sbyte:15 [ main::i#2 print_sbyte::b#1 char_cursor#10 ] )
to:print_sbyte::@4
print_sbyte::@4: scope:[print_sbyte] from print_sbyte::@2
[31] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#1 [ char_cursor#10 print_sbyte::b#0 ] ( main:2::print_sbyte:15 [ main::i#2 char_cursor#10 print_sbyte::b#0 ] )
to:print_sbyte::@1
print_sbyte::@1: scope:[print_sbyte] from print_sbyte print_sbyte::@4
[32] (byte*) char_cursor#37 ← phi( print_sbyte/(byte*) char_cursor#41 print_sbyte::@4/(byte*) char_cursor#10 ) [ print_sbyte::b#3 char_cursor#37 ] ( main:2::print_sbyte:15 [ main::i#2 print_sbyte::b#3 char_cursor#37 ] )
[32] (signed byte) print_sbyte::b#3 ← phi( print_sbyte/(signed byte) print_sbyte::b#1 print_sbyte::@4/(signed byte) print_sbyte::b#0 ) [ print_sbyte::b#3 char_cursor#37 ] ( main:2::print_sbyte:15 [ main::i#2 print_sbyte::b#3 char_cursor#37 ] )
[33] call print_byte param-assignment [ char_cursor#10 ] ( main:2::print_sbyte:15 [ main::i#2 char_cursor#10 ] )
to:print_sbyte::@return
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
[34] return [ char_cursor#10 ] ( main:2::print_sbyte:15 [ main::i#2 char_cursor#10 ] )
to:@return
print_byte: scope:[print_byte] from print_sbyte::@1
[35] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte::b#3 char_cursor#37 print_byte::$0 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 char_cursor#37 print_byte::$0 ] )
[36] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 char_cursor#37 print_char::ch#1 ] )
[37] call print_char param-assignment [ char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 char_cursor#10 print_sbyte::b#3 ] )
to:print_byte::@1
print_byte::@1: scope:[print_byte] from print_byte
[38] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 char_cursor#10 print_byte::$2 ] )
[39] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 char_cursor#10 print_char::ch#2 ] )
[40] call print_char param-assignment [ char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 char_cursor#10 ] )
to:print_byte::@return
print_byte::@return: scope:[print_byte] from print_byte::@1
[41] return [ char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 char_cursor#10 ] )
to:@return
print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@2
[42] (byte*) char_cursor#27 ← phi( print_byte/(byte*) char_cursor#37 print_byte::@1/(byte*) char_cursor#10 print_sbyte::@2/(byte*) char_cursor#41 ) [ print_char::ch#3 char_cursor#27 ] ( main:2::print_sbyte:15::print_char:30 [ main::i#2 print_sbyte::b#1 print_char::ch#3 char_cursor#27 ] main:2::print_sbyte:15::print_byte:33::print_char:37 [ main::i#2 print_sbyte::b#3 print_char::ch#3 char_cursor#27 ] main:2::print_sbyte:15::print_byte:33::print_char:40 [ main::i#2 print_char::ch#3 char_cursor#27 ] )
[42] (byte) print_char::ch#3 ← phi( print_byte/(byte) print_char::ch#1 print_byte::@1/(byte) print_char::ch#2 print_sbyte::@2/(byte) '-' ) [ print_char::ch#3 char_cursor#27 ] ( main:2::print_sbyte:15::print_char:30 [ main::i#2 print_sbyte::b#1 print_char::ch#3 char_cursor#27 ] main:2::print_sbyte:15::print_byte:33::print_char:37 [ main::i#2 print_sbyte::b#3 print_char::ch#3 char_cursor#27 ] main:2::print_sbyte:15::print_byte:33::print_char:40 [ main::i#2 print_char::ch#3 char_cursor#27 ] )
[43] *((byte*) char_cursor#27) ← (byte) print_char::ch#3 [ char_cursor#27 ] ( main:2::print_sbyte:15::print_char:30 [ main::i#2 print_sbyte::b#1 char_cursor#27 ] main:2::print_sbyte:15::print_byte:33::print_char:37 [ main::i#2 print_sbyte::b#3 char_cursor#27 ] main:2::print_sbyte:15::print_byte:33::print_char:40 [ main::i#2 char_cursor#27 ] )
[44] (byte*) char_cursor#10 ← ++ (byte*) char_cursor#27 [ char_cursor#10 ] ( main:2::print_sbyte:15::print_char:30 [ main::i#2 print_sbyte::b#1 char_cursor#10 ] main:2::print_sbyte:15::print_byte:33::print_char:37 [ main::i#2 print_sbyte::b#3 char_cursor#10 ] main:2::print_sbyte:15::print_byte:33::print_char:40 [ main::i#2 char_cursor#10 ] )
to:print_char::@return
print_char::@return: scope:[print_char] from print_char
[45] return [ char_cursor#10 ] ( main:2::print_sbyte:15::print_char:30 [ main::i#2 print_sbyte::b#1 char_cursor#10 ] main:2::print_sbyte:15::print_byte:33::print_char:37 [ main::i#2 print_sbyte::b#3 char_cursor#10 ] main:2::print_sbyte:15::print_byte:33::print_char:40 [ main::i#2 char_cursor#10 ] )
to:@return
print_cls: scope:[print_cls] from main::@5
[46] phi() [ ] ( main:2::print_cls:7 [ ] )
to:print_cls::@1
print_cls::@1: scope:[print_cls] from print_cls print_cls::@1
[47] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:7 [ print_cls::sc#2 ] )
[48] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:7 [ print_cls::sc#2 ] )
[49] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] )
[50] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] )
to:print_cls::@return
print_cls::@return: scope:[print_cls] from print_cls::@1
[51] return [ ] ( main:2::print_cls:7 [ ] )
to:@return
sin8s_gen: scope:[sin8s_gen] from main
[52] phi() [ ] ( main:2::sin8s_gen:5 [ ] )
[53] call div16u param-assignment [ div16u::return#0 ] ( main:2::sin8s_gen:5 [ div16u::return#0 ] )
[54] (word) div16u::return#2 ← (word) div16u::return#0 [ div16u::return#2 ] ( main:2::sin8s_gen:5 [ div16u::return#2 ] )
to:sin8s_gen::@3
sin8s_gen::@3: scope:[sin8s_gen] from sin8s_gen
[55] (word) sin8s_gen::step#0 ← (word) div16u::return#2 [ sin8s_gen::step#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 ] )
to:sin8s_gen::@1
sin8s_gen::@1: scope:[sin8s_gen] from sin8s_gen::@3 sin8s_gen::@4
[56] (word) sin8s_gen::i#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::i#1 ) [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] )
[56] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[120]) main::sintab2#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] )
[56] (word) sin8s_gen::x#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::x#1 ) [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] )
[57] (word) sin8s::x#0 ← (word) sin8s_gen::x#2 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] )
[58] call sin8s param-assignment [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#1 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#1 ] )
[59] (signed byte) sin8s::return#0 ← (signed byte) sin8s::return#1 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#0 ] )
to:sin8s_gen::@4
sin8s_gen::@4: scope:[sin8s_gen] from sin8s_gen::@1
[60] (signed byte~) sin8s_gen::$1 ← (signed byte) sin8s::return#0 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s_gen::$1 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s_gen::$1 ] )
[61] *((signed byte*) sin8s_gen::sintab#2) ← (signed byte~) sin8s_gen::$1 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] )
[62] (signed byte*) sin8s_gen::sintab#0 ← ++ (signed byte*) sin8s_gen::sintab#2 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::i#2 sin8s_gen::sintab#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::i#2 sin8s_gen::sintab#0 ] )
[63] (word) sin8s_gen::x#1 ← (word) sin8s_gen::x#2 + (word) sin8s_gen::step#0 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#1 sin8s_gen::sintab#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#1 sin8s_gen::sintab#0 ] )
[64] (word) sin8s_gen::i#1 ← ++ (word) sin8s_gen::i#2 [ sin8s_gen::step#0 sin8s_gen::x#1 sin8s_gen::sintab#0 sin8s_gen::i#1 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#1 sin8s_gen::sintab#0 sin8s_gen::i#1 ] )
[65] if((word) sin8s_gen::i#1<(const word) main::wavelength#0) goto sin8s_gen::@1 [ sin8s_gen::step#0 sin8s_gen::x#1 sin8s_gen::sintab#0 sin8s_gen::i#1 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#1 sin8s_gen::sintab#0 sin8s_gen::i#1 ] )
to:sin8s_gen::@return
sin8s_gen::@return: scope:[sin8s_gen] from sin8s_gen::@4
[66] return [ ] ( main:2::sin8s_gen:5 [ ] )
to:@return
sin8s: scope:[sin8s] from sin8s_gen::@1
[67] if((word) sin8s::x#0<(const word) PI_u4f12#0) goto sin8s::@1 [ sin8s::x#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] )
to:sin8s::@4
sin8s::@4: scope:[sin8s] from sin8s
[68] (word) sin8s::x#1 ← (word) sin8s::x#0 - (const word) PI_u4f12#0 [ sin8s::x#1 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#1 ] )
to:sin8s::@1
sin8s::@1: scope:[sin8s] from sin8s sin8s::@4
[69] (byte) sin8s::isUpper#2 ← phi( sin8s/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin8s::x#4 sin8s::isUpper#2 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#4 sin8s::isUpper#2 ] )
[69] (word) sin8s::x#4 ← phi( sin8s/(word) sin8s::x#0 sin8s::@4/(word) sin8s::x#1 ) [ sin8s::x#4 sin8s::isUpper#2 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#4 sin8s::isUpper#2 ] )
[70] if((word) sin8s::x#4<(const word) PI_HALF_u4f12#0) goto sin8s::@2 [ sin8s::x#4 sin8s::isUpper#2 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#4 sin8s::isUpper#2 ] )
to:sin8s::@5
sin8s::@5: scope:[sin8s] from sin8s::@1
[71] (word) sin8s::x#2 ← (const word) PI_u4f12#0 - (word) sin8s::x#4 [ sin8s::isUpper#2 sin8s::x#2 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x#2 ] )
to:sin8s::@2
sin8s::@2: scope:[sin8s] from sin8s::@1 sin8s::@5
[72] (word) sin8s::x#6 ← phi( sin8s::@1/(word) sin8s::x#4 sin8s::@5/(word) sin8s::x#2 ) [ sin8s::isUpper#2 sin8s::x#6 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x#6 ] )
[73] (word~) sin8s::$6 ← (word) sin8s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin8s::isUpper#2 sin8s::$6 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::$6 ] )
[74] (byte) sin8s::x1#0 ← > (word~) sin8s::$6 [ sin8s::isUpper#2 sin8s::x1#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 ] )
[75] (byte) mulu8_sel::v1#0 ← (byte) sin8s::x1#0 [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#0 ] )
[76] (byte) mulu8_sel::v2#0 ← (byte) sin8s::x1#0 [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#0 mulu8_sel::v2#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#0 mulu8_sel::v2#0 ] )
[77] call mulu8_sel param-assignment [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 ] )
[78] (byte) mulu8_sel::return#0 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#0 ] )
to:sin8s::@8
sin8s::@8: scope:[sin8s] from sin8s::@2
[79] (byte) sin8s::x2#0 ← (byte) mulu8_sel::return#0 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::x2#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x2#0 ] )
[80] (byte) mulu8_sel::v1#1 ← (byte) sin8s::x2#0 [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#1 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#1 ] )
[81] (byte) mulu8_sel::v2#1 ← (byte) sin8s::x1#0 [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#1 mulu8_sel::v2#1 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#1 mulu8_sel::v2#1 ] )
[82] call mulu8_sel param-assignment [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 ] )
[83] (byte) mulu8_sel::return#1 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#1 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#1 ] )
to:sin8s::@9
sin8s::@9: scope:[sin8s] from sin8s::@8
[84] (byte) sin8s::x3#0 ← (byte) mulu8_sel::return#1 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 ] )
[85] (byte) mulu8_sel::v1#2 ← (byte) sin8s::x3#0 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#2 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#2 ] )
[86] call mulu8_sel param-assignment [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 sin8s::x3#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 sin8s::x3#0 ] )
[87] (byte) mulu8_sel::return#2 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#2 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#2 ] )
to:sin8s::@10
sin8s::@10: scope:[sin8s] from sin8s::@9
[88] (byte) sin8s::x3_6#0 ← (byte) mulu8_sel::return#2 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 sin8s::x3_6#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 sin8s::x3_6#0 ] )
[89] (byte) sin8s::usinx#0 ← (byte) sin8s::x1#0 - (byte) sin8s::x3_6#0 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 sin8s::usinx#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 sin8s::usinx#0 ] )
[90] (byte) mulu8_sel::v1#3 ← (byte) sin8s::x3#0 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 ] )
[91] (byte) mulu8_sel::v2#3 ← (byte) sin8s::x1#0 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 mulu8_sel::v2#3 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 mulu8_sel::v2#3 ] )
[92] call mulu8_sel param-assignment [ sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 sin8s::usinx#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 sin8s::usinx#0 ] )
[93] (byte) mulu8_sel::return#10 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#10 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#10 ] )
to:sin8s::@11
sin8s::@11: scope:[sin8s] from sin8s::@10
[94] (byte) sin8s::x4#0 ← (byte) mulu8_sel::return#10 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 sin8s::x4#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 sin8s::x4#0 ] )
[95] (byte) mulu8_sel::v1#4 ← (byte) sin8s::x4#0 [ sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#4 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#4 ] )
[96] (byte) mulu8_sel::v2#4 ← (byte) sin8s::x1#0 [ sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::v1#4 mulu8_sel::v2#4 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::v1#4 mulu8_sel::v2#4 ] )
[97] call mulu8_sel param-assignment [ sin8s::isUpper#2 mulu8_sel::return#12 sin8s::usinx#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 mulu8_sel::return#12 sin8s::usinx#0 ] )
[98] (byte) mulu8_sel::return#11 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::return#11 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::return#11 ] )
to:sin8s::@12
sin8s::@12: scope:[sin8s] from sin8s::@11
[99] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11 [ sin8s::isUpper#2 sin8s::usinx#0 sin8s::x5#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 sin8s::x5#0 ] )
[100] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ sin8s::isUpper#2 sin8s::usinx#0 sin8s::x5_128#0 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 sin8s::x5_128#0 ] )
[101] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0 [ sin8s::isUpper#2 sin8s::usinx#1 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#1 ] )
[102] if((byte) sin8s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@15 [ sin8s::usinx#1 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::usinx#1 ] )
to:sin8s::@6
sin8s::@6: scope:[sin8s] from sin8s::@12
[103] (signed byte) sin8s::sinx#1 ← - (signed byte)(byte) sin8s::usinx#1 [ sin8s::sinx#1 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::sinx#1 ] )
to:sin8s::@3
sin8s::@3: scope:[sin8s] from sin8s::@15 sin8s::@6
[104] (signed byte) sin8s::return#1 ← phi( sin8s::@15/(signed byte~) sin8s::return#5 sin8s::@6/(signed byte) sin8s::sinx#1 ) [ sin8s::return#1 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#1 ] )
to:sin8s::@return
sin8s::@return: scope:[sin8s] from sin8s::@3
[105] return [ sin8s::return#1 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#1 ] )
to:@return
sin8s::@15: scope:[sin8s] from sin8s::@12
[106] (signed byte~) sin8s::return#5 ← (signed byte)(byte) sin8s::usinx#1 [ sin8s::return#5 ] ( main:2::sin8s_gen:5::sin8s:58 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#5 ] )
to:sin8s::@3
mulu8_sel: scope:[mulu8_sel] from sin8s::@10 sin8s::@11 sin8s::@2 sin8s::@8 sin8s::@9
[107] (byte) mulu8_sel::select#5 ← phi( sin8s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin8s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[107] (byte) mulu8_sel::v2#5 ← phi( sin8s::@10/(byte) mulu8_sel::v2#3 sin8s::@11/(byte) mulu8_sel::v2#4 sin8s::@2/(byte) mulu8_sel::v2#0 sin8s::@8/(byte) mulu8_sel::v2#1 sin8s::@9/(word/signed word/dword/signed dword) 256/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [ mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[107] (byte) mulu8_sel::v1#5 ← phi( sin8s::@10/(byte) mulu8_sel::v1#3 sin8s::@11/(byte) mulu8_sel::v1#4 sin8s::@2/(byte) mulu8_sel::v1#0 sin8s::@8/(byte) mulu8_sel::v1#1 sin8s::@9/(byte) mulu8_sel::v1#2 ) [ mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[108] (byte) mul8u::a#1 ← (byte) mulu8_sel::v1#5 [ mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] )
[109] (byte) mul8u::b#0 ← (byte) mulu8_sel::v2#5 [ mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] )
[110] call mul8u param-assignment [ mulu8_sel::select#5 mul8u::res#2 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] )
[111] (word) mul8u::return#2 ← (word) mul8u::res#2 [ mulu8_sel::select#5 mul8u::return#2 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::return#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::return#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::return#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::return#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::return#2 ] )
to:mulu8_sel::@2
mulu8_sel::@2: scope:[mulu8_sel] from mulu8_sel
[112] (word~) mulu8_sel::$0 ← (word) mul8u::return#2 [ mulu8_sel::select#5 mulu8_sel::$0 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mulu8_sel::$0 ] )
[113] (word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select#5 [ mulu8_sel::$1 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::$1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::$1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::$1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::$1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::$1 ] )
[114] (byte) mulu8_sel::return#12 ← > (word~) mulu8_sel::$1 [ mulu8_sel::return#12 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::return#12 ] )
to:mulu8_sel::@return
mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2
[115] return [ mulu8_sel::return#12 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::return#12 ] )
to:@return
mul8u: scope:[mul8u] from mulu8_sel
[116] (word) mul8u::mb#0 ← ((word)) (byte) mul8u::b#0 [ mul8u::a#1 mul8u::mb#0 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] )
to:mul8u::@1
mul8u::@1: scope:[mul8u] from mul8u mul8u::@4
[117] (word) mul8u::mb#2 ← phi( mul8u/(word) mul8u::mb#0 mul8u::@4/(word) mul8u::mb#1 ) [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
[117] (word) mul8u::res#2 ← phi( mul8u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul8u::@4/(word) mul8u::res#6 ) [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
[117] (byte) mul8u::a#2 ← phi( mul8u/(byte) mul8u::a#1 mul8u::@4/(byte) mul8u::a#0 ) [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
[118] if((byte) mul8u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
to:mul8u::@return
mul8u::@return: scope:[mul8u] from mul8u::@1
[119] return [ mul8u::res#2 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] )
to:@return
mul8u::@2: scope:[mul8u] from mul8u::@1
[120] (byte~) mul8u::$1 ← (byte) mul8u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] )
[121] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
to:mul8u::@7
mul8u::@7: scope:[mul8u] from mul8u::@2
[122] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2 [ mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] )
to:mul8u::@4
mul8u::@4: scope:[mul8u] from mul8u::@2 mul8u::@7
[123] (word) mul8u::res#6 ← phi( mul8u::@2/(word) mul8u::res#2 mul8u::@7/(word) mul8u::res#1 ) [ mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] )
[124] (byte) mul8u::a#0 ← (byte) mul8u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] )
[125] (word) mul8u::mb#1 ← (word) mul8u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] ( main:2::sin8s_gen:5::sin8s:58::mulu8_sel:77::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:82::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:86::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:92::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8s_gen:5::sin8s:58::mulu8_sel:97::mul8u:110 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#2 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] )
to:mul8u::@1
div16u: scope:[div16u] from sin8s_gen
[126] phi() [ ] ( main:2::sin8s_gen:5::div16u:53 [ ] )
[127] call divr16u param-assignment [ divr16u::return#0 ] ( main:2::sin8s_gen:5::div16u:53 [ divr16u::return#0 ] )
[128] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 ] ( main:2::sin8s_gen:5::div16u:53 [ divr16u::return#2 ] )
to:div16u::@2
div16u::@2: scope:[div16u] from div16u
[129] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:53 [ div16u::return#0 ] )
to:div16u::@return
div16u::@return: scope:[div16u] from div16u::@2
[130] return [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:53 [ div16u::return#0 ] )
to:@return
divr16u: scope:[divr16u] from div16u
[131] phi() [ ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ ] )
to:divr16u::@1
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
[132] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[132] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[132] (word) divr16u::dividend#2 ← phi( divr16u/(const word) PI2_u4f12#0 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[132] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#10 ) [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[133] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[134] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
[135] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
[136] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
to:divr16u::@4
divr16u::@4: scope:[divr16u] from divr16u::@1
[137] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
to:divr16u::@2
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
[138] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] )
[139] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] )
[140] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
[141] if((word) divr16u::rem#5<(const word) main::wavelength#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
to:divr16u::@5
divr16u::@5: scope:[divr16u] from divr16u::@2
[142] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] )
[143] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) main::wavelength#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
to:divr16u::@3
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
[144] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[144] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[145] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
[146] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
to:divr16u::@return
divr16u::@return: scope:[divr16u] from divr16u::@3
[147] return [ divr16u::return#0 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:127 [ divr16u::return#0 ] )
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,269 @@
(label) @29
(label) @begin
(label) @end
(word) PI2_u4f12
(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736
(word) PI_HALF_u4f12
(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434
(word) PI_u4f12
(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(byte*) char_cursor
(byte*) char_cursor#1 char_cursor zp ZP_WORD:5 101.0
(byte*) char_cursor#10 char_cursor zp ZP_WORD:5 1.3076923076923075
(byte*) char_cursor#19 char_cursor zp ZP_WORD:5 40.875
(byte*) char_cursor#27 char_cursor zp ZP_WORD:5 5.0
(byte*) char_cursor#37 char_cursor zp ZP_WORD:5 2.0
(byte*) char_cursor#41 char_cursor zp ZP_WORD:5 6.5
(byte*) char_cursor#42 char_cursor zp ZP_WORD:5 8.25
(byte*) char_cursor#44 char_cursor zp ZP_WORD:5 24.0
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
(label) div16u::@2
(label) div16u::@return
(word) div16u::dividend
(word) div16u::divisor
(word) div16u::return
(word) div16u::return#0 return zp ZP_WORD:14 1.3333333333333333
(word) div16u::return#2 return zp ZP_WORD:14 4.0
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
(byte~) divr16u::$1 reg byte a 22.0
(byte~) divr16u::$2 reg byte a 22.0
(label) divr16u::@1
(label) divr16u::@2
(label) divr16u::@3
(label) divr16u::@4
(label) divr16u::@5
(label) divr16u::@return
(word) divr16u::dividend
(word) divr16u::dividend#0 dividend zp ZP_WORD:5 2.75
(word) divr16u::dividend#2 dividend zp ZP_WORD:5 4.714285714285714
(word) divr16u::divisor
(byte) divr16u::i
(byte) divr16u::i#1 reg byte x 16.5
(byte) divr16u::i#2 reg byte x 1.6923076923076923
(word) divr16u::quotient
(word) divr16u::quotient#1 quotient zp ZP_WORD:14 16.5
(word) divr16u::quotient#2 quotient zp ZP_WORD:14 11.0
(word) divr16u::quotient#3 quotient zp ZP_WORD:14 2.75
(word) divr16u::rem
(word) divr16u::rem#0 rem zp ZP_WORD:2 8.25
(word) divr16u::rem#1 rem zp ZP_WORD:2 22.0
(word) divr16u::rem#10 rem zp ZP_WORD:2 11.0
(word) divr16u::rem#2 rem zp ZP_WORD:2 22.0
(word) divr16u::rem#4 rem zp ZP_WORD:2 22.0
(word) divr16u::rem#5 rem zp ZP_WORD:2 11.0
(word) divr16u::return
(word) divr16u::return#0 return zp ZP_WORD:14 7.000000000000001
(word) divr16u::return#2 return zp ZP_WORD:14 4.0
(byte*) line_cursor
(void()) main()
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@5
(label) main::@7
(label) main::@8
(label) main::@return
(byte) main::i
(byte) main::i#1 reg byte x 16.5
(byte) main::i#2 reg byte x 3.3000000000000003
(signed byte) main::sb
(signed byte) main::sb#0 sb zp ZP_BYTE:4 6.6000000000000005
(signed byte[120]) main::sintab2
(const signed byte[120]) main::sintab2#0 sintab2 = { fill( 120, 0) }
(const string) main::str str = (string) " @"
(const string) main::str1 str1 = (string) " @"
(word) main::wavelength
(const word) main::wavelength#0 wavelength = (byte/signed byte/word/signed word/dword/signed dword) 120
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(byte~) mul8u::$1 reg byte a 202.0
(label) mul8u::@1
(label) mul8u::@2
(label) mul8u::@4
(label) mul8u::@7
(label) mul8u::@return
(byte) mul8u::a
(byte) mul8u::a#0 reg byte x 101.0
(byte) mul8u::a#1 reg byte x 1.3333333333333333
(byte) mul8u::a#2 reg byte x 67.66666666666666
(byte) mul8u::b
(byte) mul8u::b#0 reg byte a 4.0
(word) mul8u::mb
(word) mul8u::mb#0 mb zp ZP_WORD:12 4.0
(word) mul8u::mb#1 mb zp ZP_WORD:12 202.0
(word) mul8u::mb#2 mb zp ZP_WORD:12 43.57142857142858
(word) mul8u::res
(word) mul8u::res#1 res zp ZP_WORD:9 202.0
(word) mul8u::res#2 res zp ZP_WORD:9 50.83333333333333
(word) mul8u::res#6 res zp ZP_WORD:9 101.0
(word) mul8u::return
(word) mul8u::return#2 return zp ZP_WORD:9 4.0
(byte()) mulu8_sel((byte) mulu8_sel::v1 , (byte) mulu8_sel::v2 , (byte) mulu8_sel::select)
(word~) mulu8_sel::$0 $0 zp ZP_WORD:9 4.0
(word~) mulu8_sel::$1 $1 zp ZP_WORD:9 4.0
(label) mulu8_sel::@2
(label) mulu8_sel::@return
(byte) mulu8_sel::return
(byte) mulu8_sel::return#0 reg byte a 4.0
(byte) mulu8_sel::return#1 reg byte a 4.0
(byte) mulu8_sel::return#10 reg byte a 4.0
(byte) mulu8_sel::return#11 reg byte a 4.0
(byte) mulu8_sel::return#12 reg byte a 1.714285714285714
(byte) mulu8_sel::return#2 reg byte a 4.0
(byte) mulu8_sel::select
(byte) mulu8_sel::select#5 select zp ZP_BYTE:11 0.3333333333333333
(byte) mulu8_sel::v1
(byte) mulu8_sel::v1#0 reg byte x 2.0
(byte) mulu8_sel::v1#1 reg byte x 2.0
(byte) mulu8_sel::v1#2 reg byte x 4.0
(byte) mulu8_sel::v1#3 reg byte x 2.0
(byte) mulu8_sel::v1#4 reg byte x 2.0
(byte) mulu8_sel::v1#5 reg byte x 12.0
(byte) mulu8_sel::v2
(byte) mulu8_sel::v2#0 reg byte y 4.0
(byte) mulu8_sel::v2#1 reg byte y 4.0
(byte) mulu8_sel::v2#3 reg byte y 4.0
(byte) mulu8_sel::v2#4 reg byte y 4.0
(byte) mulu8_sel::v2#5 reg byte y 5.0
(void()) print_byte((byte) print_byte::b)
(byte~) print_byte::$0 reg byte a 4.0
(byte~) print_byte::$2 reg byte a 4.0
(label) print_byte::@1
(label) print_byte::@return
(byte) print_byte::b
(byte[]) print_byte::hextab
(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef"
(void()) print_char((byte) print_char::ch)
(label) print_char::@return
(byte) print_char::ch
(byte) print_char::ch#1 reg byte a 4.0
(byte) print_char::ch#2 reg byte a 4.0
(byte) print_char::ch#3 reg byte a 6.0
(void()) print_cls()
(label) print_cls::@1
(label) print_cls::@return
(byte*) print_cls::sc
(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5
(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5
(void()) print_sbyte((signed byte) print_sbyte::b)
(label) print_sbyte::@1
(label) print_sbyte::@2
(label) print_sbyte::@4
(label) print_sbyte::@return
(signed byte) print_sbyte::b
(signed byte) print_sbyte::b#0 b zp ZP_BYTE:4 4.0
(signed byte) print_sbyte::b#1 b zp ZP_BYTE:4 4.25
(signed byte) print_sbyte::b#3 b zp ZP_BYTE:4 1.0
(void()) print_str((byte*) print_str::str)
(label) print_str::@1
(label) print_str::@2
(label) print_str::@return
(byte*) print_str::str
(byte*) print_str::str#0 str zp ZP_WORD:2 202.0
(byte*) print_str::str#3 str zp ZP_WORD:2 101.5
(byte*) print_str::str#5 str zp ZP_WORD:2 2.0
(word) rem16u
(signed byte()) sin8s((word) sin8s::x)
(word~) sin8s::$6 $6 zp ZP_WORD:9 4.0
(label) sin8s::@1
(label) sin8s::@10
(label) sin8s::@11
(label) sin8s::@12
(label) sin8s::@15
(label) sin8s::@2
(label) sin8s::@3
(label) sin8s::@4
(label) sin8s::@5
(label) sin8s::@6
(label) sin8s::@8
(label) sin8s::@9
(label) sin8s::@return
(byte) sin8s::isUpper
(byte) sin8s::isUpper#2 isUpper zp ZP_BYTE:4 0.06060606060606061
(signed byte) sin8s::return
(signed byte) sin8s::return#0 reg byte a 22.0
(signed byte) sin8s::return#1 reg byte a 5.0
(signed byte~) sin8s::return#5 reg byte a 4.0
(signed byte) sin8s::sinx
(signed byte) sin8s::sinx#1 reg byte a 4.0
(byte) sin8s::usinx
(byte) sin8s::usinx#0 usinx zp ZP_BYTE:18 0.3333333333333333
(byte) sin8s::usinx#1 reg byte x 1.0
(word) sin8s::x
(word) sin8s::x#0 x zp ZP_WORD:9 8.5
(word) sin8s::x#1 x zp ZP_WORD:9 4.0
(word) sin8s::x#2 x zp ZP_WORD:9 4.0
(word) sin8s::x#4 x zp ZP_WORD:9 5.0
(word) sin8s::x#6 x zp ZP_WORD:9 6.0
(byte) sin8s::x1
(byte) sin8s::x1#0 x1 zp ZP_BYTE:16 0.6363636363636365
(byte) sin8s::x2
(byte) sin8s::x2#0 reg byte a 4.0
(byte) sin8s::x3
(byte) sin8s::x3#0 x3 zp ZP_BYTE:17 1.0
(byte) sin8s::x3_6
(byte) sin8s::x3_6#0 reg byte a 4.0
(byte) sin8s::x4
(byte) sin8s::x4#0 reg byte a 4.0
(byte) sin8s::x5
(byte) sin8s::x5#0 reg byte a 4.0
(byte) sin8s::x5_128
(byte) sin8s::x5_128#0 reg byte a 4.0
(void()) sin8s_gen((signed byte*) sin8s_gen::sintab , (word) sin8s_gen::wavelength)
(signed byte~) sin8s_gen::$1 reg byte a 22.0
(label) sin8s_gen::@1
(label) sin8s_gen::@3
(label) sin8s_gen::@4
(label) sin8s_gen::@return
(word) sin8s_gen::i
(word) sin8s_gen::i#1 i zp ZP_WORD:7 16.5
(word) sin8s_gen::i#2 i zp ZP_WORD:7 2.75
(signed byte*) sin8s_gen::sintab
(signed byte*) sin8s_gen::sintab#0 sintab zp ZP_WORD:5 5.5
(signed byte*) sin8s_gen::sintab#2 sintab zp ZP_WORD:5 5.5
(word) sin8s_gen::step
(word) sin8s_gen::step#0 step zp ZP_WORD:14 1.1818181818181819
(word) sin8s_gen::wavelength
(word) sin8s_gen::x
(word) sin8s_gen::x#1 x zp ZP_WORD:2 7.333333333333333
(word) sin8s_gen::x#2 x zp ZP_WORD:2 4.714285714285714
reg byte x [ main::i#2 main::i#1 ]
zp ZP_WORD:2 [ print_str::str#3 print_str::str#5 print_str::str#0 print_cls::sc#2 print_cls::sc#1 sin8s_gen::x#2 sin8s_gen::x#1 divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ]
zp ZP_BYTE:4 [ print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#0 main::sb#0 sin8s::isUpper#2 ]
reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
zp ZP_WORD:5 [ char_cursor#27 char_cursor#37 char_cursor#44 char_cursor#41 char_cursor#42 char_cursor#19 char_cursor#10 char_cursor#1 sin8s_gen::sintab#2 sin8s_gen::sintab#0 divr16u::dividend#2 divr16u::dividend#0 ]
zp ZP_WORD:7 [ sin8s_gen::i#2 sin8s_gen::i#1 ]
zp ZP_WORD:9 [ sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 sin8s::$6 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mulu8_sel::$0 mulu8_sel::$1 ]
reg byte a [ sin8s::return#1 sin8s::return#5 sin8s::sinx#1 ]
reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 mulu8_sel::v1#1 mulu8_sel::v1#2 ]
reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 mulu8_sel::v2#1 ]
zp ZP_BYTE:11 [ mulu8_sel::select#5 ]
reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ]
zp ZP_WORD:12 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ]
zp ZP_WORD:14 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#2 sin8s_gen::step#0 div16u::return#0 ]
reg byte x [ divr16u::i#2 divr16u::i#1 ]
reg byte a [ print_byte::$0 ]
reg byte a [ print_byte::$2 ]
reg byte a [ sin8s::return#0 ]
reg byte a [ sin8s_gen::$1 ]
zp ZP_BYTE:16 [ sin8s::x1#0 ]
reg byte a [ mulu8_sel::return#0 ]
reg byte a [ sin8s::x2#0 ]
reg byte a [ mulu8_sel::return#1 ]
zp ZP_BYTE:17 [ sin8s::x3#0 ]
reg byte a [ mulu8_sel::return#2 ]
reg byte a [ sin8s::x3_6#0 ]
zp ZP_BYTE:18 [ sin8s::usinx#0 ]
reg byte a [ mulu8_sel::return#10 ]
reg byte a [ sin8s::x4#0 ]
reg byte a [ mulu8_sel::return#11 ]
reg byte a [ sin8s::x5#0 ]
reg byte a [ sin8s::x5_128#0 ]
reg byte x [ sin8s::usinx#1 ]
reg byte a [ mul8u::b#0 ]
reg byte a [ mulu8_sel::return#12 ]
reg byte a [ mul8u::$1 ]
reg byte a [ divr16u::$1 ]
reg byte a [ divr16u::$2 ]