mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-09-08 17:54:40 +00:00
Added initial 8-bit sinus (not quite working yet.)
This commit is contained in:
parent
97bc9870f9
commit
7d26c74c21
@ -0,0 +1,2 @@
|
||||
ldy #0
|
||||
sta ({z1}),y
|
@ -0,0 +1,3 @@
|
||||
ldy #0
|
||||
lda {z2}
|
||||
sta ({z1}),y
|
@ -0,0 +1,4 @@
|
||||
lda #<{c1}
|
||||
sta {z1}
|
||||
lda #>{c1}
|
||||
sta {z1}+1
|
@ -0,0 +1,2 @@
|
||||
cmp #0
|
||||
bmi {la1}
|
@ -0,0 +1,2 @@
|
||||
cpx #0
|
||||
bmi {la1}
|
@ -0,0 +1,2 @@
|
||||
cpy #0
|
||||
bmi {la1}
|
@ -0,0 +1,2 @@
|
||||
lda {z1}
|
||||
bmi {la1}
|
@ -0,0 +1,8 @@
|
||||
ldy {z2}
|
||||
beq !e+
|
||||
!:
|
||||
asl {z1}
|
||||
rol {z1}+1
|
||||
dey
|
||||
bne !-
|
||||
!e:
|
@ -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
|
||||
|
@ -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:
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
18
src/test/java/dk/camelot64/kickc/test/kc/sinusgen16.kc
Normal file
18
src/test/java/dk/camelot64/kickc/test/kc/sinusgen16.kc
Normal 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(" @");
|
||||
}
|
||||
}
|
17
src/test/java/dk/camelot64/kickc/test/kc/sinusgen8.kc
Normal file
17
src/test/java/dk/camelot64/kickc/test/kc/sinusgen8.kc
Normal 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(" @");
|
||||
}
|
||||
}
|
@ -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 ] ]
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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 [ ] )
|
File diff suppressed because it is too large
Load Diff
@ -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 ]
|
391
src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.asm
Normal file
391
src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.asm
Normal 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
|
||||
}
|
295
src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.cfg
Normal file
295
src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.cfg
Normal 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
|
8600
src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log
Normal file
8600
src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log
Normal file
File diff suppressed because it is too large
Load Diff
269
src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.sym
Normal file
269
src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.sym
Normal 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 ]
|
Loading…
Reference in New Issue
Block a user