From a87a97c669372905e175d547c7722887e77cb027 Mon Sep 17 00:00:00 2001 From: jespergravgaard <jesper@balmangravgaard.dk> Date: Sat, 24 Feb 2018 13:02:15 +0100 Subject: [PATCH] Moved sin to separate method. --- .../kickc/fragment/asm/vduz1=vduz1_rol_3.asm | 4 +- .../fragment/asm/vduz1=vduz1_rol_vbuyy.asm | 11 + .../dk/camelot64/kickc/test/kc/sinusgen.kc | 56 +- .../dk/camelot64/kickc/test/ref/sinusgen.asm | 398 +- .../dk/camelot64/kickc/test/ref/sinusgen.cfg | 298 +- .../dk/camelot64/kickc/test/ref/sinusgen.log | 5835 +++++++++-------- .../dk/camelot64/kickc/test/ref/sinusgen.sym | 183 +- .../kickc/test/ref/test-lohiconst.cfg | 18 + .../kickc/test/ref/test-lohiconst.sym | 10 + 9 files changed, 3440 insertions(+), 3373 deletions(-) create mode 100644 src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_vbuyy.asm create mode 100644 src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.cfg create mode 100644 src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.sym diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_3.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_3.asm index ea2c9964e..c8fb61a40 100644 --- a/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_3.asm +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_3.asm @@ -1,8 +1,8 @@ -ldx #3 +ldy #3 !: asl {z1} rol {z1}+1 rol {z1}+2 rol {z1}+3 -dex +dey bne !- diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_vbuyy.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_vbuyy.asm new file mode 100644 index 000000000..af2518dc1 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vduz1=vduz1_rol_vbuyy.asm @@ -0,0 +1,11 @@ +cpy #0 +cpy #0 +beq !e+ +!: +asl {z1} +rol {z1}+1 +rol {z1}+2 +rol {z1}+3 +dey +bne !- +!e: \ No newline at end of file diff --git a/src/test/java/dk/camelot64/kickc/test/kc/sinusgen.kc b/src/test/java/dk/camelot64/kickc/test/kc/sinusgen.kc index 11a2d50ef..97cf18465 100644 --- a/src/test/java/dk/camelot64/kickc/test/kc/sinusgen.kc +++ b/src/test/java/dk/camelot64/kickc/test/kc/sinusgen.kc @@ -46,36 +46,42 @@ void sin16s_gen(signed word* sintab, word wavelength) { // Iterate over the table dword x = 0; // u[4.28] for( word i=0; i<wavelength; i++) { - // Move x1 into the range 0-PI/2 using sinus mirror symmetries - dword xp = x; // u[4.28] - byte isUpper = 0; - if(xp >= PI_u4f28 ) { - xp = xp - PI_u4f28; - isUpper = 1; - } - if(xp >= PI_HALF_u4f28 ) { - xp = PI_u4f28 - xp; - } - // s[4.12] sinx = x - x^3/6 + x5/128; - word x1 = >xp<<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 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 x5_128 = mul_u16_sel(x5, $10000/128, 3); // u[1.15] x^5/128; - usinx = usinx + x5_128; // u[1.15] (always an initial zero) - signed word sinx = (signed word)usinx; // s[0.15] - if(isUpper!=0) { - sinx = -(signed word)usinx; // s[0.15]; - } - *sintab = sinx; + *sintab = sin16s(x); sintab = sintab + 2; 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 +signed word sin16s(dword x) { + // Move x1 into the range 0-PI/2 using sinus mirror symmetries + byte isUpper = 0; + if(x >= PI_u4f28 ) { + x = x - PI_u4f28; + isUpper = 1; + } + if(x >= PI_HALF_u4f28 ) { + x = PI_u4f28 - x; + } + // s[4.12] 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 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 x5_128 = mul_u16_sel(x5, $10000/128, 3); // u[1.15] x^5/128; + usinx = usinx + x5_128; // u[1.15] (always an initial zero) + signed word sinx = (signed word)usinx; // s[0.15] + if(isUpper!=0) { + sinx = -(signed word)usinx; // s[0.15]; + } + 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) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.asm b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.asm index f800672fa..c042e1a12 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.asm @@ -160,21 +160,11 @@ print_cls: { rts } sin16s_gen: { - .label _7 = $e - .label step = $1a - .label xp = $e - .label x1 = $1e - .label x2 = 8 - .label x3 = 8 - .label x3_6 = 6 - .label usinx = 6 - .label x4 = 8 - .label x5 = 8 - .label x5_128 = $12 + .label _1 = 6 + .label step = $1b .label sintab = 2 .label x = $a .label i = 4 - .label sinx = 6 jsr div32u16u lda #<0 sta i @@ -189,178 +179,20 @@ sin16s_gen: { sta x+2 sta x+3 b1: - lda x+3 - cmp #>PI_u4f28>>$10 - bcs !b17+ - jmp b17 - !b17: - bne !+ - lda x+2 - cmp #<PI_u4f28>>$10 - bcs !b17+ - jmp b17 - !b17: - bne !+ - lda x+1 - cmp #>PI_u4f28 - bcs !b17+ - jmp b17 - !b17: - bne !+ lda x - cmp #<PI_u4f28 - bcs !b17+ - jmp b17 - !b17: - !: - lda x - sec - sbc #<PI_u4f28 - sta xp + sta sin16s.x lda x+1 - sbc #>PI_u4f28 - sta xp+1 + sta sin16s.x+1 lda x+2 - sbc #<PI_u4f28>>$10 - sta xp+2 + sta sin16s.x+2 lda x+3 - sbc #>PI_u4f28>>$10 - sta xp+3 - ldy #1 - b2: - lda xp+3 - cmp #>PI_HALF_u4f28>>$10 - bcc b3 - bne !+ - lda xp+2 - cmp #<PI_HALF_u4f28>>$10 - bcc b3 - bne !+ - lda xp+1 - cmp #>PI_HALF_u4f28 - bcc b3 - bne !+ - lda xp - cmp #<PI_HALF_u4f28 - bcc b3 - !: - lda #<PI_u4f28 - sec - sbc xp - sta xp - lda #>PI_u4f28 - sbc xp+1 - sta xp+1 - lda #<PI_u4f28>>$10 - sbc xp+2 - sta xp+2 - lda #>PI_u4f28>>$10 - sbc xp+3 - sta xp+3 - b3: - ldx #3 - !: - asl _7 - rol _7+1 - rol _7+2 - rol _7+3 - dex - bne !- - lda _7+2 - sta x1 - lda _7+3 - sta x1+1 - lda x1 - sta mul_u16_sel.v1 - lda x1+1 - sta mul_u16_sel.v1+1 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - ldx #0 - jsr mul_u16_sel - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - ldx #1 - jsr mul_u16_sel - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - ldx #1 - lda #<$10000/6 - sta mul_u16_sel.v2 - lda #>$10000/6 - sta mul_u16_sel.v2+1 - jsr mul_u16_sel - lda mul_u16_sel.return_14 - sta mul_u16_sel.return_10 - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return_10+1 - lda x1 - sec - sbc usinx - sta usinx - lda x1+1 - sbc usinx+1 - sta usinx+1 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - ldx #0 - jsr mul_u16_sel - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - ldx #0 - jsr mul_u16_sel - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - ldx #3 - lda #<$10000/$80 - sta mul_u16_sel.v2 - lda #>$10000/$80 - sta mul_u16_sel.v2+1 - jsr mul_u16_sel - lda usinx - clc - adc x5_128 - sta usinx - lda usinx+1 - adc x5_128+1 - sta usinx+1 - cpy #0 - beq b4 - sec - lda sinx - eor #$ff - adc #0 - sta sinx - lda sinx+1 - eor #$ff - adc #0 - sta sinx+1 - b4: + sta sin16s.x+3 + jsr sin16s ldy #0 - lda sinx + lda _1 sta (sintab),y iny - lda sinx+1 + lda _1+1 sta (sintab),y clc lda sintab @@ -388,28 +220,196 @@ sin16s_gen: { !: lda i+1 cmp #>main.wavelength - bcs !b1+ - jmp b1 - !b1: + bcc b1 bne !+ lda i cmp #<main.wavelength - bcs !b1+ - jmp b1 - !b1: + bcc b1 !: rts - b17: - lda x - sta xp - lda x+1 - sta xp+1 - lda x+2 - sta xp+2 +} +sin16s: { + .label _6 = $e + .label x = $e + .label return = 6 + .label x1 = $1f + .label x2 = 8 + .label x3 = 8 + .label x3_6 = 6 + .label usinx = 6 + .label x4 = 8 + .label x5 = 8 + .label x5_128 = $12 + .label sinx = 6 lda x+3 - sta xp+3 - ldy #0 - jmp b2 + cmp #>PI_u4f28>>$10 + bcc b4 + bne !+ + lda x+2 + cmp #<PI_u4f28>>$10 + bcc b4 + bne !+ + lda x+1 + cmp #>PI_u4f28 + bcc b4 + bne !+ + lda x + cmp #<PI_u4f28 + bcc b4 + !: + lda x + sec + sbc #<PI_u4f28 + sta x + lda x+1 + sbc #>PI_u4f28 + sta x+1 + lda x+2 + sbc #<PI_u4f28>>$10 + sta x+2 + lda x+3 + sbc #>PI_u4f28>>$10 + sta x+3 + ldx #1 + jmp b1 + b4: + ldx #0 + b1: + lda x+3 + cmp #>PI_HALF_u4f28>>$10 + bcc b2 + bne !+ + lda x+2 + cmp #<PI_HALF_u4f28>>$10 + bcc b2 + bne !+ + lda x+1 + cmp #>PI_HALF_u4f28 + bcc b2 + bne !+ + lda x + cmp #<PI_HALF_u4f28 + bcc b2 + !: + lda #<PI_u4f28 + sec + sbc x + sta x + lda #>PI_u4f28 + sbc x+1 + sta x+1 + lda #<PI_u4f28>>$10 + sbc x+2 + sta x+2 + lda #>PI_u4f28>>$10 + sbc x+3 + sta x+3 + b2: + ldy #3 + !: + asl _6 + rol _6+1 + rol _6+2 + rol _6+3 + dey + bne !- + lda _6+2 + sta x1 + lda _6+3 + sta x1+1 + lda x1 + sta mul_u16_sel.v1 + lda x1+1 + sta mul_u16_sel.v1+1 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + lda #0 + sta mul_u16_sel.select + jsr mul_u16_sel + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + lda #1 + sta mul_u16_sel.select + jsr mul_u16_sel + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + lda #1 + sta mul_u16_sel.select + lda #<$10000/6 + sta mul_u16_sel.v2 + lda #>$10000/6 + sta mul_u16_sel.v2+1 + jsr mul_u16_sel + lda mul_u16_sel.return_14 + sta mul_u16_sel.return_10 + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return_10+1 + lda x1 + sec + sbc usinx + sta usinx + lda x1+1 + sbc usinx+1 + sta usinx+1 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + lda #0 + sta mul_u16_sel.select + jsr mul_u16_sel + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + lda #0 + sta mul_u16_sel.select + jsr mul_u16_sel + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + lda #3 + sta mul_u16_sel.select + lda #<$10000/$80 + sta mul_u16_sel.v2 + lda #>$10000/$80 + sta mul_u16_sel.v2+1 + jsr mul_u16_sel + lda usinx + clc + adc x5_128 + sta usinx + lda usinx+1 + adc x5_128+1 + sta usinx+1 + cpx #0 + beq b3 + sec + lda sinx + eor #$ff + adc #0 + sta sinx + lda sinx+1 + eor #$ff + adc #0 + sta sinx+1 + b3: + rts } mul_u16_sel: { .label _0 = $e @@ -419,20 +419,22 @@ mul_u16_sel: { .label return = 8 .label return_10 = 6 .label return_13 = $12 + .label select = $14 .label return_14 = $12 lda v1 sta mul16u.a lda v1+1 sta mul16u.a+1 jsr mul16u - cpx #0 + ldy select + cpy #0 beq !e+ !: asl _1 rol _1+1 rol _1+2 rol _1+3 - dex + dey bne !- !e: lda _1+2 @@ -442,8 +444,8 @@ mul_u16_sel: { rts } mul16u: { - .label mb = $16 - .label a = $14 + .label mb = $17 + .label a = $15 .label res = $e .label b = $12 .label return = $e @@ -493,7 +495,7 @@ mul16u: { jmp b1 } div32u16u: { - .label return = $1a + .label return = $1b .label quotient_hi = $12 .label quotient_lo = 8 lda #<main.wavelength diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.cfg b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.cfg index 26c61b907..c0be33d02 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.cfg @@ -1,13 +1,13 @@ @begin: scope:[] from [0] phi() [ ] ( ) - to:@25 -@25: scope:[] from @begin + to:@26 +@26: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @25 +@end: scope:[] from @26 [3] phi() [ ] ( ) -main: scope:[main] from @25 +main: scope:[main] from @26 [4] phi() [ ] ( main:2 [ ] ) [5] call sin16s_gen param-assignment [ ] ( main:2 [ ] ) to:main::@5 @@ -127,191 +127,199 @@ sin16s_gen: scope:[sin16s_gen] from main [58] phi() [ ] ( main:2::sin16s_gen:5 [ ] ) [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] ) [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) - to:sin16s_gen::@9 -sin16s_gen::@9: scope:[sin16s_gen] from sin16s_gen + to:sin16s_gen::@3 +sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) to:sin16s_gen::@1 -sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@4 sin16s_gen::@9 - [62] (word) sin16s_gen::i#10 ← phi( sin16s_gen::@4/(word) sin16s_gen::i#1 sin16s_gen::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - [62] (signed word*) sin16s_gen::sintab#10 ← phi( sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 sin16s_gen::@9/(const signed word[120]) main::sintab1#0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - [62] (dword) sin16s_gen::x#10 ← phi( sin16s_gen::@4/(dword) sin16s_gen::x#1 sin16s_gen::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - to:sin16s_gen::@5 -sin16s_gen::@5: scope:[sin16s_gen] from sin16s_gen::@1 - [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) - to:sin16s_gen::@2 -sin16s_gen::@2: scope:[sin16s_gen] from sin16s_gen::@17 sin16s_gen::@5 - [65] (byte) sin16s_gen::isUpper#10 ← phi( sin16s_gen::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@5/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) - [65] (dword) sin16s_gen::xp#3 ← phi( sin16s_gen::@17/(dword~) sin16s_gen::xp#7 sin16s_gen::@5/(dword) sin16s_gen::xp#1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) - [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) - to:sin16s_gen::@6 -sin16s_gen::@6: scope:[sin16s_gen] from sin16s_gen::@2 - [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) - to:sin16s_gen::@3 -sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen::@2 sin16s_gen::@6 - [68] (dword) sin16s_gen::xp#5 ← phi( sin16s_gen::@2/(dword) sin16s_gen::xp#3 sin16s_gen::@6/(dword) sin16s_gen::xp#2 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#5 ] ) - [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) - [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) - [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) - [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) - [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) - to:sin16s_gen::@10 -sin16s_gen::@10: scope:[sin16s_gen] from sin16s_gen::@3 - [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) - [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) - [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) - [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) - to:sin16s_gen::@11 -sin16s_gen::@11: scope:[sin16s_gen] from sin16s_gen::@10 - [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) - [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) - [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ) - [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) - to:sin16s_gen::@12 -sin16s_gen::@12: scope:[sin16s_gen] from sin16s_gen::@11 - [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) - [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) - [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) - [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) - [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) - to:sin16s_gen::@13 -sin16s_gen::@13: scope:[sin16s_gen] from sin16s_gen::@12 - [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) - [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) - [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) - [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) - to:sin16s_gen::@14 -sin16s_gen::@14: scope:[sin16s_gen] from sin16s_gen::@13 - [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) - [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) - [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) - to:sin16s_gen::@15 -sin16s_gen::@15: scope:[sin16s_gen] from sin16s_gen::@14 - [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) - [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) - [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ) - to:sin16s_gen::@7 -sin16s_gen::@7: scope:[sin16s_gen] from sin16s_gen::@15 - [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#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] (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 ] ) + [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) to:sin16s_gen::@4 -sin16s_gen::@4: scope:[sin16s_gen] from sin16s_gen::@19 sin16s_gen::@7 - [103] (signed word) sin16s_gen::sinx#2 ← phi( sin16s_gen::@19/(signed word~) sin16s_gen::sinx#3 sin16s_gen::@7/(signed word) sin16s_gen::sinx#1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#2 ] ) - [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) - [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) - [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ 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 ] ) - [108] 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 ] ) +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 ] ) to:sin16s_gen::@return sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@4 - [109] return [ ] ( main:2::sin16s_gen:5 [ ] ) + [72] return [ ] ( main:2::sin16s_gen:5 [ ] ) to:@return -sin16s_gen::@19: scope:[sin16s_gen] from sin16s_gen::@15 - [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) - to:sin16s_gen::@4 -sin16s_gen::@17: scope:[sin16s_gen] from sin16s_gen::@1 - [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) - to:sin16s_gen::@2 -mul_u16_sel: scope:[mul_u16_sel] from sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@3 - [112] (byte) mul_u16_sel::select#6 ← phi( sin16s_gen::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s_gen::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s_gen::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@14/(byte/signed byte/word/signed word/dword/signed dword) 3 sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) - [112] (word) mul_u16_sel::v2#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v2#1 sin16s_gen::@11/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 sin16s_gen::@12/(word) mul_u16_sel::v2#3 sin16s_gen::@13/(word) mul_u16_sel::v2#4 sin16s_gen::@14/(dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 sin16s_gen::@3/(word) mul_u16_sel::v2#0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) - [112] (word) mul_u16_sel::v1#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v1#1 sin16s_gen::@11/(word) mul_u16_sel::v1#2 sin16s_gen::@12/(word) mul_u16_sel::v1#3 sin16s_gen::@13/(word) mul_u16_sel::v1#4 sin16s_gen::@14/(word) mul_u16_sel::v1#5 sin16s_gen::@3/(word) mul_u16_sel::v1#0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) - [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) - [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) - [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) - [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) +sin16s: scope:[sin16s] from sin16s_gen::@1 + [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#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::x#0 ] ) + to:sin16s::@4 +sin16s::@4: scope:[sin16s] from sin16s + [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#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::x#1 ] ) + to:sin16s::@1 +sin16s::@1: scope:[sin16s] from sin16s sin16s::@4 + [75] (byte) sin16s::isUpper#10 ← phi( sin16s/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) + [75] (dword) sin16s::x#4 ← phi( sin16s/(dword) sin16s::x#0 sin16s::@4/(dword) sin16s::x#1 ) [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) + [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) + to:sin16s::@5 +sin16s::@5: scope:[sin16s] from sin16s::@1 + [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#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#10 sin16s::x#2 ] ) + to:sin16s::@2 +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#10 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#10 sin16s::x#6 ] ) + [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 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#10 sin16s::$6 ] ) + [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 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#10 sin16s::x1#0 ] ) + [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) + [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) + [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_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#10 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#10 sin16s::x1#0 sin16s::x2#0 ] ) + [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) + [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) + [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_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#10 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#10 sin16s::x1#0 sin16s::x3#0 ] ) + [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) + [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ) + [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) + to:sin16s::@10 +sin16s::@10: scope:[sin16s] from sin16s::@9 + [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 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#10 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#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) + [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) + [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 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#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) + to:sin16s::@11 +sin16s::@11: scope:[sin16s] from sin16s::@10 + [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) + [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) + [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) + [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#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#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) + to:sin16s::@12 +sin16s::@12: scope:[sin16s] from sin16s::@11 + [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5#0 ] ) + [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#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::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) + [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( 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#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) + to:sin16s::@13 +sin16s::@13: scope:[sin16s] from sin16s::@12 + [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) + [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#1 ] ) + [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ 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 ] ) + to:sin16s::@6 +sin16s::@6: scope:[sin16s] from sin16s::@13 + [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#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::sinx#1 ] ) + to:sin16s::@3 +sin16s::@3: scope:[sin16s] from sin16s::@16 sin16s::@6 + [113] (signed word) sin16s::return#1 ← phi( sin16s::@16/(signed word~) sin16s::return#5 sin16s::@6/(signed word) sin16s::sinx#1 ) [ sin16s::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::return#1 ] ) + to:sin16s::@return +sin16s::@return: scope:[sin16s] from sin16s::@3 + [114] return [ sin16s::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::return#1 ] ) + to:@return +sin16s::@16: scope:[sin16s] from sin16s::@13 + [115] (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::@12 sin16s::@2 sin16s::@8 sin16s::@9 + [116] (byte) mul_u16_sel::select#6 ← 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::@12/(byte/signed byte/word/signed word/dword/signed dword) 3 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#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) + [116] (word) mul_u16_sel::v2#6 ← phi( sin16s::@10/(word) mul_u16_sel::v2#3 sin16s::@11/(word) mul_u16_sel::v2#4 sin16s::@12/(dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 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#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) + [116] (word) mul_u16_sel::v1#6 ← phi( sin16s::@10/(word) mul_u16_sel::v1#3 sin16s::@11/(word) mul_u16_sel::v1#4 sin16s::@12/(word) mul_u16_sel::v1#5 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#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) + [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) + [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) + [119] call mul16u param-assignment [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) to:mul_u16_sel::@2 mul_u16_sel::@2: scope:[mul_u16_sel] from mul_u16_sel - [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) - [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) - [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) + [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) + [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ 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#10 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#10 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#10 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#10 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#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) + [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) to:mul_u16_sel::@return mul_u16_sel::@return: scope:[mul_u16_sel] from mul_u16_sel::@2 - [120] return [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) + [124] return [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) to:@return mul16u: scope:[mul16u] from mul_u16_sel - [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) + [125] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) to:mul16u::@1 mul16u::@1: scope:[mul16u] from mul16u mul16u::@4 - [122] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) - [122] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) - [122] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) - [123] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [126] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [126] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [126] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [127] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) to:mul16u::@return mul16u::@return: scope:[mul16u] from mul16u::@1 - [124] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + [128] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) to:@return mul16u::@2: scope:[mul16u] from mul16u::@1 - [125] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) - [126] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [129] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) + [130] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) to:mul16u::@7 mul16u::@7: scope:[mul16u] from mul16u::@2 - [127] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) + [131] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) to:mul16u::@4 mul16u::@4: scope:[mul16u] from mul16u::@2 mul16u::@7 - [128] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ) - [129] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) - [130] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) + [132] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ) + [133] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) + [134] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) to:mul16u::@1 div32u16u: scope:[div32u16u] from sin16s_gen - [131] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] ) - [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) - [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) + [135] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] ) + [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) + [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) to:div32u16u::@2 div32u16u::@2: scope:[div32u16u] from div32u16u - [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) - [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) - [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) - [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) + [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) + [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) + [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) + [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) to:div32u16u::@3 div32u16u::@3: scope:[div32u16u] from div32u16u::@2 - [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) - [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) + [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) + [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) to:div32u16u::@return div32u16u::@return: scope:[div32u16u] from div32u16u::@3 - [140] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) + [144] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) to:@return divr16u: scope:[divr16u] from div32u16u div32u16u::@2 - [141] (word) divr16u::divisor#6 ← phi( div32u16u/(const word) main::wavelength#0 div32u16u::@2/(const word) main::wavelength#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) - [141] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) - [141] (word) divr16u::rem#10 ← phi( div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) + [145] (word) divr16u::divisor#6 ← phi( div32u16u/(const word) main::wavelength#0 div32u16u::@2/(const word) main::wavelength#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) + [145] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) + [145] (word) divr16u::rem#10 ← phi( div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) to:divr16u::@1 divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 - [142] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) - [142] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) - [142] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) - [142] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) - [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) - [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) - [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) - [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) + [146] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) + [146] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) + [146] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) + [146] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) + [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) + [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) + [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) + [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 - [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) + [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) to:divr16u::@2 divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4 - [148] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ) - [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) - [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) - [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) + [152] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ) + [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) + [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) + [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) to:divr16u::@5 divr16u::@5: scope:[divr16u] from divr16u::@2 - [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) - [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) + [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) + [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) to:divr16u::@3 divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 - [154] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ) - [154] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ) - [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) - [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) + [158] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ) + [158] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ) + [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) + [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 - [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) + [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) to:divr16u::@return divr16u::@return: scope:[divr16u] from divr16u::@6 - [158] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) + [162] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) to:@return diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.log index 1b246bc35..40759c722 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.log @@ -47,36 +47,42 @@ void sin16s_gen(signed word* sintab, word wavelength) { // Iterate over the table dword x = 0; // u[4.28] for( word i=0; i<wavelength; i++) { - // Move x1 into the range 0-PI/2 using sinus mirror symmetries - dword xp = x; // u[4.28] - byte isUpper = 0; - if(xp >= PI_u4f28 ) { - xp = xp - PI_u4f28; - isUpper = 1; - } - if(xp >= PI_HALF_u4f28 ) { - xp = PI_u4f28 - xp; - } - // s[4.12] sinx = x - x^3/6 + x5/128; - word x1 = >xp<<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 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 x5_128 = mul_u16_sel(x5, $10000/128, 3); // u[1.15] x^5/128; - usinx = usinx + x5_128; // u[1.15] (always an initial zero) - signed word sinx = (signed word)usinx; // s[0.15] - if(isUpper!=0) { - sinx = -(signed word)usinx; // s[0.15]; - } - *sintab = sinx; + *sintab = sin16s(x); sintab = sintab + 2; 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 +signed word sin16s(dword x) { + // Move x1 into the range 0-PI/2 using sinus mirror symmetries + byte isUpper = 0; + if(x >= PI_u4f28 ) { + x = x - PI_u4f28; + isUpper = 1; + } + if(x >= PI_HALF_u4f28 ) { + x = PI_u4f28 - x; + } + // s[4.12] 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 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 x5_128 = mul_u16_sel(x5, $10000/128, 3); // u[1.15] x^5/128; + usinx = usinx + x5_128; // u[1.15] (always an initial zero) + signed word sinx = (signed word)usinx; // s[0.15] + if(isUpper!=0) { + sinx = -(signed word)usinx; // s[0.15]; + } + 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) @@ -882,62 +888,69 @@ proc (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen:: (dword) sin16s_gen::x ← (byte/signed byte/word/signed word/dword/signed dword) 0 (word) sin16s_gen::i ← (byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@1: - (dword) sin16s_gen::xp ← (dword) sin16s_gen::x - (byte) sin16s_gen::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (boolean~) sin16s_gen::$1 ← (dword) sin16s_gen::xp >= (dword) PI_u4f28 - (boolean~) sin16s_gen::$2 ← ! (boolean~) sin16s_gen::$1 - if((boolean~) sin16s_gen::$2) goto sin16s_gen::@2 - (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::xp - (dword) PI_u4f28 - (dword) sin16s_gen::xp ← (dword~) sin16s_gen::$3 - (byte) sin16s_gen::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 1 -sin16s_gen::@2: - (boolean~) sin16s_gen::$4 ← (dword) sin16s_gen::xp >= (dword) PI_HALF_u4f28 - (boolean~) sin16s_gen::$5 ← ! (boolean~) sin16s_gen::$4 - if((boolean~) sin16s_gen::$5) goto sin16s_gen::@3 - (dword~) sin16s_gen::$6 ← (dword) PI_u4f28 - (dword) sin16s_gen::xp - (dword) sin16s_gen::xp ← (dword~) sin16s_gen::$6 -sin16s_gen::@3: - (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp << (byte/signed byte/word/signed word/dword/signed dword) 3 - (word~) sin16s_gen::$8 ← > (dword~) sin16s_gen::$7 - (word) sin16s_gen::x1 ← (word~) sin16s_gen::$8 - (word~) sin16s_gen::$9 ← call mul_u16_sel (word) sin16s_gen::x1 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 - (word) sin16s_gen::x2 ← (word~) sin16s_gen::$9 - (word~) sin16s_gen::$10 ← call mul_u16_sel (word) sin16s_gen::x2 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 1 - (word) sin16s_gen::x3 ← (word~) sin16s_gen::$10 - (word/signed word/dword/signed dword~) sin16s_gen::$11 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 - (word~) sin16s_gen::$12 ← call mul_u16_sel (word) sin16s_gen::x3 (word/signed word/dword/signed dword~) sin16s_gen::$11 (byte/signed byte/word/signed word/dword/signed dword) 1 - (word) sin16s_gen::x3_6 ← (word~) sin16s_gen::$12 - (word~) sin16s_gen::$13 ← (word) sin16s_gen::x1 - (word) sin16s_gen::x3_6 - (word) sin16s_gen::usinx ← (word~) sin16s_gen::$13 - (word~) sin16s_gen::$14 ← call mul_u16_sel (word) sin16s_gen::x3 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 - (word) sin16s_gen::x4 ← (word~) sin16s_gen::$14 - (word~) sin16s_gen::$15 ← call mul_u16_sel (word) sin16s_gen::x4 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 - (word) sin16s_gen::x5 ← (word~) sin16s_gen::$15 - (word/signed word/dword/signed dword~) sin16s_gen::$16 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128 - (word~) sin16s_gen::$17 ← call mul_u16_sel (word) sin16s_gen::x5 (word/signed word/dword/signed dword~) sin16s_gen::$16 (byte/signed byte/word/signed word/dword/signed dword) 3 - (word) sin16s_gen::x5_128 ← (word~) sin16s_gen::$17 - (word~) sin16s_gen::$18 ← (word) sin16s_gen::usinx + (word) sin16s_gen::x5_128 - (word) sin16s_gen::usinx ← (word~) sin16s_gen::$18 - (signed word~) sin16s_gen::$19 ← ((signed word)) (word) sin16s_gen::usinx - (signed word) sin16s_gen::sinx ← (signed word~) sin16s_gen::$19 - (boolean~) sin16s_gen::$20 ← (byte) sin16s_gen::isUpper != (byte/signed byte/word/signed word/dword/signed dword) 0 - (boolean~) sin16s_gen::$21 ← ! (boolean~) sin16s_gen::$20 - if((boolean~) sin16s_gen::$21) goto sin16s_gen::@4 - (signed word~) sin16s_gen::$22 ← ((signed word)) (word) sin16s_gen::usinx - (signed word~) sin16s_gen::$23 ← - (signed word~) sin16s_gen::$22 - (signed word) sin16s_gen::sinx ← (signed word~) sin16s_gen::$23 -sin16s_gen::@4: - *((signed word*) sin16s_gen::sintab) ← (signed word) sin16s_gen::sinx - (signed word*~) sin16s_gen::$24 ← (signed word*) sin16s_gen::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2 - (signed word*) sin16s_gen::sintab ← (signed word*~) sin16s_gen::$24 - (dword~) sin16s_gen::$25 ← (dword) sin16s_gen::x + (dword) sin16s_gen::step - (dword) sin16s_gen::x ← (dword~) sin16s_gen::$25 + (signed word~) sin16s_gen::$1 ← call sin16s (dword) sin16s_gen::x + *((signed word*) sin16s_gen::sintab) ← (signed word~) sin16s_gen::$1 + (signed word*~) sin16s_gen::$2 ← (signed word*) sin16s_gen::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed word*) sin16s_gen::sintab ← (signed word*~) sin16s_gen::$2 + (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::x + (dword) sin16s_gen::step + (dword) sin16s_gen::x ← (dword~) sin16s_gen::$3 (word) sin16s_gen::i ← ++ (word) sin16s_gen::i - (boolean~) sin16s_gen::$26 ← (word) sin16s_gen::i < (word) sin16s_gen::wavelength - if((boolean~) sin16s_gen::$26) goto sin16s_gen::@1 + (boolean~) sin16s_gen::$4 ← (word) sin16s_gen::i < (word) sin16s_gen::wavelength + if((boolean~) sin16s_gen::$4) goto sin16s_gen::@1 sin16s_gen::@return: return endproc // sin16s_gen() +proc (signed word()) sin16s((dword) sin16s::x) + (byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28 + (boolean~) sin16s::$1 ← ! (boolean~) sin16s::$0 + if((boolean~) sin16s::$1) goto sin16s::@1 + (dword~) sin16s::$2 ← (dword) sin16s::x - (dword) PI_u4f28 + (dword) sin16s::x ← (dword~) sin16s::$2 + (byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 1 +sin16s::@1: + (boolean~) sin16s::$3 ← (dword) sin16s::x >= (dword) PI_HALF_u4f28 + (boolean~) sin16s::$4 ← ! (boolean~) sin16s::$3 + if((boolean~) sin16s::$4) goto sin16s::@2 + (dword~) sin16s::$5 ← (dword) PI_u4f28 - (dword) sin16s::x + (dword) sin16s::x ← (dword~) sin16s::$5 +sin16s::@2: + (dword~) sin16s::$6 ← (dword) sin16s::x << (byte/signed byte/word/signed word/dword/signed dword) 3 + (word~) sin16s::$7 ← > (dword~) sin16s::$6 + (word) sin16s::x1 ← (word~) sin16s::$7 + (word~) sin16s::$8 ← call mul_u16_sel (word) sin16s::x1 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 + (word) sin16s::x2 ← (word~) sin16s::$8 + (word~) sin16s::$9 ← call mul_u16_sel (word) sin16s::x2 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 1 + (word) sin16s::x3 ← (word~) sin16s::$9 + (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 + (word~) sin16s::$11 ← call mul_u16_sel (word) sin16s::x3 (word/signed word/dword/signed dword~) sin16s::$10 (byte/signed byte/word/signed word/dword/signed dword) 1 + (word) sin16s::x3_6 ← (word~) sin16s::$11 + (word~) sin16s::$12 ← (word) sin16s::x1 - (word) sin16s::x3_6 + (word) sin16s::usinx ← (word~) sin16s::$12 + (word~) sin16s::$13 ← call mul_u16_sel (word) sin16s::x3 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 + (word) sin16s::x4 ← (word~) sin16s::$13 + (word~) sin16s::$14 ← call mul_u16_sel (word) sin16s::x4 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 + (word) sin16s::x5 ← (word~) sin16s::$14 + (word/signed word/dword/signed dword~) sin16s::$15 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128 + (word~) sin16s::$16 ← call mul_u16_sel (word) sin16s::x5 (word/signed word/dword/signed dword~) sin16s::$15 (byte/signed byte/word/signed word/dword/signed dword) 3 + (word) sin16s::x5_128 ← (word~) sin16s::$16 + (word~) sin16s::$17 ← (word) sin16s::usinx + (word) sin16s::x5_128 + (word) sin16s::usinx ← (word~) sin16s::$17 + (signed word~) sin16s::$18 ← ((signed word)) (word) sin16s::usinx + (signed word) sin16s::sinx ← (signed word~) sin16s::$18 + (boolean~) sin16s::$19 ← (byte) sin16s::isUpper != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) sin16s::$20 ← ! (boolean~) sin16s::$19 + if((boolean~) sin16s::$20) goto sin16s::@3 + (signed word~) sin16s::$21 ← ((signed word)) (word) sin16s::usinx + (signed word~) sin16s::$22 ← - (signed word~) sin16s::$21 + (signed word) sin16s::sinx ← (signed word~) sin16s::$22 +sin16s::@3: + (signed word) sin16s::return ← (signed word) sin16s::sinx + goto sin16s::@return +sin16s::@return: + (signed word) sin16s::return ← (signed word) sin16s::return + return (signed word) sin16s::return +endproc // sin16s() proc (void()) sin16ss_gen((signed word*) sin16ss_gen::sintab , (word) sin16ss_gen::wavelength) (dword~) sin16ss_gen::$0 ← call div32u16u (dword) PI2_u4f28 (word) sin16ss_gen::wavelength (dword) sin16ss_gen::step ← (dword~) sin16ss_gen::$0 @@ -1364,55 +1377,59 @@ SYMBOLS (word) rem16u (signed byte) rem8s (byte) rem8u +(signed word()) sin16s((dword) sin16s::x) +(boolean~) sin16s::$0 +(boolean~) sin16s::$1 +(word/signed word/dword/signed dword~) sin16s::$10 +(word~) sin16s::$11 +(word~) sin16s::$12 +(word~) sin16s::$13 +(word~) sin16s::$14 +(word/signed word/dword/signed dword~) sin16s::$15 +(word~) sin16s::$16 +(word~) sin16s::$17 +(signed word~) sin16s::$18 +(boolean~) sin16s::$19 +(dword~) sin16s::$2 +(boolean~) sin16s::$20 +(signed word~) sin16s::$21 +(signed word~) sin16s::$22 +(boolean~) sin16s::$3 +(boolean~) sin16s::$4 +(dword~) sin16s::$5 +(dword~) sin16s::$6 +(word~) sin16s::$7 +(word~) sin16s::$8 +(word~) sin16s::$9 +(label) sin16s::@1 +(label) sin16s::@2 +(label) sin16s::@3 +(label) sin16s::@return +(byte) sin16s::isUpper +(signed word) sin16s::return +(signed word) sin16s::sinx +(word) sin16s::usinx +(dword) sin16s::x +(word) sin16s::x1 +(word) sin16s::x2 +(word) sin16s::x3 +(word) sin16s::x3_6 +(word) sin16s::x4 +(word) sin16s::x5 +(word) sin16s::x5_128 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength) (dword~) sin16s_gen::$0 -(boolean~) sin16s_gen::$1 -(word~) sin16s_gen::$10 -(word/signed word/dword/signed dword~) sin16s_gen::$11 -(word~) sin16s_gen::$12 -(word~) sin16s_gen::$13 -(word~) sin16s_gen::$14 -(word~) sin16s_gen::$15 -(word/signed word/dword/signed dword~) sin16s_gen::$16 -(word~) sin16s_gen::$17 -(word~) sin16s_gen::$18 -(signed word~) sin16s_gen::$19 -(boolean~) sin16s_gen::$2 -(boolean~) sin16s_gen::$20 -(boolean~) sin16s_gen::$21 -(signed word~) sin16s_gen::$22 -(signed word~) sin16s_gen::$23 -(signed word*~) sin16s_gen::$24 -(dword~) sin16s_gen::$25 -(boolean~) sin16s_gen::$26 +(signed word~) sin16s_gen::$1 +(signed word*~) sin16s_gen::$2 (dword~) sin16s_gen::$3 (boolean~) sin16s_gen::$4 -(boolean~) sin16s_gen::$5 -(dword~) sin16s_gen::$6 -(dword~) sin16s_gen::$7 -(word~) sin16s_gen::$8 -(word~) sin16s_gen::$9 (label) sin16s_gen::@1 -(label) sin16s_gen::@2 -(label) sin16s_gen::@3 -(label) sin16s_gen::@4 (label) sin16s_gen::@return (word) sin16s_gen::i -(byte) sin16s_gen::isUpper (signed word*) sin16s_gen::sintab -(signed word) sin16s_gen::sinx (dword) sin16s_gen::step -(word) sin16s_gen::usinx (word) sin16s_gen::wavelength (dword) sin16s_gen::x -(word) sin16s_gen::x1 -(word) sin16s_gen::x2 -(word) sin16s_gen::x3 -(word) sin16s_gen::x3_6 -(word) sin16s_gen::x4 -(word) sin16s_gen::x5 -(word) sin16s_gen::x5_128 -(dword) sin16s_gen::xp (void()) sin16ss_gen((signed word*) sin16ss_gen::sintab , (word) sin16ss_gen::wavelength) (dword~) sin16ss_gen::$0 (word~) sin16ss_gen::$1 @@ -2114,77 +2131,88 @@ sin16s_gen: scope:[sin16s_gen] from (dword) sin16s_gen::x ← (byte/signed byte/word/signed word/dword/signed dword) 0 (word) sin16s_gen::i ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:sin16s_gen::@1 -sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen sin16s_gen::@4 - (dword) sin16s_gen::xp ← (dword) sin16s_gen::x - (byte) sin16s_gen::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (boolean~) sin16s_gen::$1 ← (dword) sin16s_gen::xp >= (dword) PI_u4f28 - (boolean~) sin16s_gen::$2 ← ! (boolean~) sin16s_gen::$1 - if((boolean~) sin16s_gen::$2) goto sin16s_gen::@2 - to:sin16s_gen::@5 -sin16s_gen::@2: scope:[sin16s_gen] from sin16s_gen::@1 sin16s_gen::@5 - (boolean~) sin16s_gen::$4 ← (dword) sin16s_gen::xp >= (dword) PI_HALF_u4f28 - (boolean~) sin16s_gen::$5 ← ! (boolean~) sin16s_gen::$4 - if((boolean~) sin16s_gen::$5) goto sin16s_gen::@3 - to:sin16s_gen::@6 -sin16s_gen::@5: scope:[sin16s_gen] from sin16s_gen::@1 - (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::xp - (dword) PI_u4f28 - (dword) sin16s_gen::xp ← (dword~) sin16s_gen::$3 - (byte) sin16s_gen::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 1 - to:sin16s_gen::@2 -sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen::@2 sin16s_gen::@6 - (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp << (byte/signed byte/word/signed word/dword/signed dword) 3 - (word~) sin16s_gen::$8 ← > (dword~) sin16s_gen::$7 - (word) sin16s_gen::x1 ← (word~) sin16s_gen::$8 - (word~) sin16s_gen::$9 ← call mul_u16_sel (word) sin16s_gen::x1 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 - (word) sin16s_gen::x2 ← (word~) sin16s_gen::$9 - (word~) sin16s_gen::$10 ← call mul_u16_sel (word) sin16s_gen::x2 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 1 - (word) sin16s_gen::x3 ← (word~) sin16s_gen::$10 - (word/signed word/dword/signed dword~) sin16s_gen::$11 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 - (word~) sin16s_gen::$12 ← call mul_u16_sel (word) sin16s_gen::x3 (word/signed word/dword/signed dword~) sin16s_gen::$11 (byte/signed byte/word/signed word/dword/signed dword) 1 - (word) sin16s_gen::x3_6 ← (word~) sin16s_gen::$12 - (word~) sin16s_gen::$13 ← (word) sin16s_gen::x1 - (word) sin16s_gen::x3_6 - (word) sin16s_gen::usinx ← (word~) sin16s_gen::$13 - (word~) sin16s_gen::$14 ← call mul_u16_sel (word) sin16s_gen::x3 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 - (word) sin16s_gen::x4 ← (word~) sin16s_gen::$14 - (word~) sin16s_gen::$15 ← call mul_u16_sel (word) sin16s_gen::x4 (word) sin16s_gen::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 - (word) sin16s_gen::x5 ← (word~) sin16s_gen::$15 - (word/signed word/dword/signed dword~) sin16s_gen::$16 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128 - (word~) sin16s_gen::$17 ← call mul_u16_sel (word) sin16s_gen::x5 (word/signed word/dword/signed dword~) sin16s_gen::$16 (byte/signed byte/word/signed word/dword/signed dword) 3 - (word) sin16s_gen::x5_128 ← (word~) sin16s_gen::$17 - (word~) sin16s_gen::$18 ← (word) sin16s_gen::usinx + (word) sin16s_gen::x5_128 - (word) sin16s_gen::usinx ← (word~) sin16s_gen::$18 - (signed word~) sin16s_gen::$19 ← ((signed word)) (word) sin16s_gen::usinx - (signed word) sin16s_gen::sinx ← (signed word~) sin16s_gen::$19 - (boolean~) sin16s_gen::$20 ← (byte) sin16s_gen::isUpper != (byte/signed byte/word/signed word/dword/signed dword) 0 - (boolean~) sin16s_gen::$21 ← ! (boolean~) sin16s_gen::$20 - if((boolean~) sin16s_gen::$21) goto sin16s_gen::@4 - to:sin16s_gen::@7 -sin16s_gen::@6: scope:[sin16s_gen] from sin16s_gen::@2 - (dword~) sin16s_gen::$6 ← (dword) PI_u4f28 - (dword) sin16s_gen::xp - (dword) sin16s_gen::xp ← (dword~) sin16s_gen::$6 - to:sin16s_gen::@3 -sin16s_gen::@4: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@7 - *((signed word*) sin16s_gen::sintab) ← (signed word) sin16s_gen::sinx - (signed word*~) sin16s_gen::$24 ← (signed word*) sin16s_gen::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2 - (signed word*) sin16s_gen::sintab ← (signed word*~) sin16s_gen::$24 - (dword~) sin16s_gen::$25 ← (dword) sin16s_gen::x + (dword) sin16s_gen::step - (dword) sin16s_gen::x ← (dword~) sin16s_gen::$25 +sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen sin16s_gen::@1 + (signed word~) sin16s_gen::$1 ← call sin16s (dword) sin16s_gen::x + *((signed word*) sin16s_gen::sintab) ← (signed word~) sin16s_gen::$1 + (signed word*~) sin16s_gen::$2 ← (signed word*) sin16s_gen::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed word*) sin16s_gen::sintab ← (signed word*~) sin16s_gen::$2 + (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::x + (dword) sin16s_gen::step + (dword) sin16s_gen::x ← (dword~) sin16s_gen::$3 (word) sin16s_gen::i ← ++ (word) sin16s_gen::i - (boolean~) sin16s_gen::$26 ← (word) sin16s_gen::i < (word) sin16s_gen::wavelength - if((boolean~) sin16s_gen::$26) goto sin16s_gen::@1 - to:sin16s_gen::@8 -sin16s_gen::@7: scope:[sin16s_gen] from sin16s_gen::@3 - (signed word~) sin16s_gen::$22 ← ((signed word)) (word) sin16s_gen::usinx - (signed word~) sin16s_gen::$23 ← - (signed word~) sin16s_gen::$22 - (signed word) sin16s_gen::sinx ← (signed word~) sin16s_gen::$23 - to:sin16s_gen::@4 -sin16s_gen::@8: scope:[sin16s_gen] from sin16s_gen::@4 + (boolean~) sin16s_gen::$4 ← (word) sin16s_gen::i < (word) sin16s_gen::wavelength + if((boolean~) sin16s_gen::$4) goto sin16s_gen::@1 + to:sin16s_gen::@2 +sin16s_gen::@2: scope:[sin16s_gen] from sin16s_gen::@1 to:sin16s_gen::@return -sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@8 +sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@2 return to:@return @22: scope:[] from @21 to:@23 +sin16s: scope:[sin16s] from + (byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28 + (boolean~) sin16s::$1 ← ! (boolean~) sin16s::$0 + if((boolean~) sin16s::$1) goto sin16s::@1 + to:sin16s::@4 +sin16s::@1: scope:[sin16s] from sin16s sin16s::@4 + (boolean~) sin16s::$3 ← (dword) sin16s::x >= (dword) PI_HALF_u4f28 + (boolean~) sin16s::$4 ← ! (boolean~) sin16s::$3 + if((boolean~) sin16s::$4) goto sin16s::@2 + to:sin16s::@5 +sin16s::@4: scope:[sin16s] from sin16s + (dword~) sin16s::$2 ← (dword) sin16s::x - (dword) PI_u4f28 + (dword) sin16s::x ← (dword~) sin16s::$2 + (byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 1 + to:sin16s::@1 +sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5 + (dword~) sin16s::$6 ← (dword) sin16s::x << (byte/signed byte/word/signed word/dword/signed dword) 3 + (word~) sin16s::$7 ← > (dword~) sin16s::$6 + (word) sin16s::x1 ← (word~) sin16s::$7 + (word~) sin16s::$8 ← call mul_u16_sel (word) sin16s::x1 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 + (word) sin16s::x2 ← (word~) sin16s::$8 + (word~) sin16s::$9 ← call mul_u16_sel (word) sin16s::x2 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 1 + (word) sin16s::x3 ← (word~) sin16s::$9 + (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 + (word~) sin16s::$11 ← call mul_u16_sel (word) sin16s::x3 (word/signed word/dword/signed dword~) sin16s::$10 (byte/signed byte/word/signed word/dword/signed dword) 1 + (word) sin16s::x3_6 ← (word~) sin16s::$11 + (word~) sin16s::$12 ← (word) sin16s::x1 - (word) sin16s::x3_6 + (word) sin16s::usinx ← (word~) sin16s::$12 + (word~) sin16s::$13 ← call mul_u16_sel (word) sin16s::x3 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 + (word) sin16s::x4 ← (word~) sin16s::$13 + (word~) sin16s::$14 ← call mul_u16_sel (word) sin16s::x4 (word) sin16s::x1 (byte/signed byte/word/signed word/dword/signed dword) 0 + (word) sin16s::x5 ← (word~) sin16s::$14 + (word/signed word/dword/signed dword~) sin16s::$15 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128 + (word~) sin16s::$16 ← call mul_u16_sel (word) sin16s::x5 (word/signed word/dword/signed dword~) sin16s::$15 (byte/signed byte/word/signed word/dword/signed dword) 3 + (word) sin16s::x5_128 ← (word~) sin16s::$16 + (word~) sin16s::$17 ← (word) sin16s::usinx + (word) sin16s::x5_128 + (word) sin16s::usinx ← (word~) sin16s::$17 + (signed word~) sin16s::$18 ← ((signed word)) (word) sin16s::usinx + (signed word) sin16s::sinx ← (signed word~) sin16s::$18 + (boolean~) sin16s::$19 ← (byte) sin16s::isUpper != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) sin16s::$20 ← ! (boolean~) sin16s::$19 + if((boolean~) sin16s::$20) goto sin16s::@3 + to:sin16s::@6 +sin16s::@5: scope:[sin16s] from sin16s::@1 + (dword~) sin16s::$5 ← (dword) PI_u4f28 - (dword) sin16s::x + (dword) sin16s::x ← (dword~) sin16s::$5 + to:sin16s::@2 +sin16s::@3: scope:[sin16s] from sin16s::@2 sin16s::@6 + (signed word) sin16s::return ← (signed word) sin16s::sinx + to:sin16s::@return +sin16s::@6: scope:[sin16s] from sin16s::@2 + (signed word~) sin16s::$21 ← ((signed word)) (word) sin16s::usinx + (signed word~) sin16s::$22 ← - (signed word~) sin16s::$21 + (signed word) sin16s::sinx ← (signed word~) sin16s::$22 + to:sin16s::@3 +sin16s::@return: scope:[sin16s] from sin16s::@3 sin16s::@7 + (signed word) sin16s::return ← (signed word) sin16s::return + return (signed word) sin16s::return + to:@return +sin16s::@7: scope:[sin16s] from + to:sin16s::@return +@23: scope:[] from @22 + to:@24 sin16ss_gen: scope:[sin16ss_gen] from (dword~) sin16ss_gen::$0 ← call div32u16u (dword) PI2_u4f28 (word) sin16ss_gen::wavelength (dword) sin16ss_gen::step ← (dword~) sin16ss_gen::$0 @@ -2262,8 +2290,8 @@ sin16ss_gen::@10: scope:[sin16ss_gen] from sin16ss_gen::@5 sin16ss_gen::@return: scope:[sin16ss_gen] from sin16ss_gen::@10 return to:@return -@23: scope:[] from @22 - to:@24 +@24: scope:[] from @23 + to:@25 mul_u16_sel: scope:[mul_u16_sel] from (dword~) mul_u16_sel::$0 ← call mul16u (word) mul_u16_sel::v1 (word) mul_u16_sel::v2 (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select @@ -2276,8 +2304,8 @@ mul_u16_sel::@return: scope:[mul_u16_sel] from mul_u16_sel mul_u16_sel::@1 to:@return mul_u16_sel::@1: scope:[mul_u16_sel] from to:mul_u16_sel::@return -@24: scope:[] from @23 - to:@25 +@25: scope:[] from @24 + to:@26 div32u16u: scope:[div32u16u] from (word~) div32u16u::$0 ← > (dword) div32u16u::dividend (word~) div32u16u::$1 ← call divr16u (word~) div32u16u::$0 (word) div32u16u::divisor (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2294,10 +2322,10 @@ div32u16u::@return: scope:[div32u16u] from div32u16u div32u16u::@1 to:@return div32u16u::@1: scope:[div32u16u] from to:div32u16u::@return -@25: scope:[] from @24 +@26: scope:[] from @25 call main to:@end -@end: scope:[] from @25 +@end: scope:[] from @26 Removing unused procedure div8s Removing unused procedure div16s @@ -2360,11 +2388,13 @@ Removing empty block @18 Removing empty block @19 Removing empty block @20 Removing empty block main::@4 -Removing empty block sin16s_gen::@8 +Removing empty block sin16s_gen::@2 Removing empty block @22 +Removing empty block sin16s::@7 Removing empty block @23 -Removing empty block mul_u16_sel::@1 Removing empty block @24 +Removing empty block mul_u16_sel::@1 +Removing empty block @25 Removing empty block div32u16u::@1 PROCEDURE MODIFY VARIABLE ANALYSIS divr16u modifies rem16u @@ -2389,10 +2419,6 @@ Completing Phi functions... Completing Phi functions... Completing Phi functions... Completing Phi functions... -Completing Phi functions... -Completing Phi functions... -Completing Phi functions... -Completing Phi functions... CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN @begin: scope:[] from @@ -2525,7 +2551,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 return to:@return @10: scope:[] from @2 - (word) rem16u#31 ← phi( @2/(word) rem16u#0 ) + (word) rem16u#30 ← phi( @2/(word) rem16u#0 ) (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) line_cursor#0 ← (byte*) SCREEN#0 (byte*) char_cursor#0 ← (byte*) line_cursor#0 @@ -2670,10 +2696,10 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 (byte*) char_cursor#15 ← (byte*) char_cursor#35 return to:@return -main: scope:[main] from @25 - (byte*) char_cursor#53 ← phi( @25/(byte*) char_cursor#50 ) - (byte*) line_cursor#13 ← phi( @25/(byte*) line_cursor#12 ) - (word) rem16u#20 ← phi( @25/(word) rem16u#25 ) +main: scope:[main] from @26 + (byte*) char_cursor#53 ← phi( @26/(byte*) char_cursor#50 ) + (byte*) line_cursor#13 ← phi( @26/(byte*) line_cursor#12 ) + (word) rem16u#20 ← phi( @26/(word) rem16u#25 ) (word) main::wavelength#0 ← (byte/signed byte/word/signed word/dword/signed dword) 120 (signed word[120]) main::sintab1#0 ← { fill( 120, 0) } (signed word*) sin16s_gen::sintab#0 ← (signed word[120]) main::sintab1#0 @@ -2689,7 +2715,7 @@ main::@5: scope:[main] from main call print_cls param-assignment to:main::@6 main::@6: scope:[main] from main::@5 - (word) rem16u#36 ← phi( main::@5/(word) rem16u#3 ) + (word) rem16u#33 ← phi( main::@5/(word) rem16u#3 ) (word) main::wavelength#6 ← phi( main::@5/(word) main::wavelength#8 ) (byte*) char_cursor#36 ← phi( main::@5/(byte*) char_cursor#15 ) (byte*) line_cursor#7 ← phi( main::@5/(byte*) line_cursor#2 ) @@ -2699,7 +2725,7 @@ main::@6: scope:[main] from main::@5 to:main::@1 main::@1: scope:[main] from main::@6 main::@8 (byte*) line_cursor#17 ← phi( main::@6/(byte*) line_cursor#3 main::@8/(byte*) line_cursor#11 ) - (word) rem16u#33 ← phi( main::@6/(word) rem16u#36 main::@8/(word) rem16u#21 ) + (word) rem16u#31 ← phi( main::@6/(word) rem16u#33 main::@8/(word) rem16u#21 ) (word) main::wavelength#4 ← phi( main::@6/(word) main::wavelength#6 main::@8/(word) main::wavelength#1 ) (byte*) char_cursor#54 ← phi( main::@6/(byte*) char_cursor#16 main::@8/(byte*) char_cursor#18 ) (signed word*) main::st1#2 ← phi( main::@6/(signed word*) main::st1#0 main::@8/(signed word*) main::st1#1 ) @@ -2710,7 +2736,7 @@ main::@1: scope:[main] from main::@6 main::@8 to:main::@3 main::@2: scope:[main] from main::@1 main::@9 (byte*) line_cursor#16 ← phi( main::@1/(byte*) line_cursor#17 main::@9/(byte*) line_cursor#18 ) - (word) rem16u#30 ← phi( main::@1/(word) rem16u#33 main::@9/(word) rem16u#34 ) + (word) rem16u#29 ← phi( main::@1/(word) rem16u#31 main::@9/(word) rem16u#32 ) (word) main::wavelength#3 ← phi( main::@1/(word) main::wavelength#4 main::@9/(word) main::wavelength#5 ) (signed word*) main::st1#5 ← phi( main::@1/(signed word*) main::st1#2 main::@9/(signed word*) main::st1#6 ) (byte*) char_cursor#48 ← phi( main::@1/(byte*) char_cursor#54 main::@9/(byte*) char_cursor#19 ) @@ -2720,7 +2746,7 @@ main::@2: scope:[main] from main::@1 main::@9 to:main::@7 main::@7: scope:[main] from main::@2 (byte*) line_cursor#14 ← phi( main::@2/(byte*) line_cursor#16 ) - (word) rem16u#26 ← phi( main::@2/(word) rem16u#30 ) + (word) rem16u#26 ← phi( main::@2/(word) rem16u#29 ) (word) main::wavelength#2 ← phi( main::@2/(word) main::wavelength#3 ) (signed word*) main::st1#4 ← phi( main::@2/(signed word*) main::st1#5 ) (byte*) char_cursor#37 ← phi( main::@2/(byte*) char_cursor#5 ) @@ -2744,7 +2770,7 @@ main::@8: scope:[main] from main::@7 to:main::@return main::@3: scope:[main] from main::@1 (byte*) line_cursor#19 ← phi( main::@1/(byte*) line_cursor#17 ) - (word) rem16u#37 ← phi( main::@1/(word) rem16u#33 ) + (word) rem16u#34 ← phi( main::@1/(word) rem16u#31 ) (word) main::wavelength#7 ← phi( main::@1/(word) main::wavelength#4 ) (signed word*) main::st1#7 ← phi( main::@1/(signed word*) main::st1#2 ) (signed word) main::sw#3 ← phi( main::@1/(signed word) main::sw#0 ) @@ -2754,7 +2780,7 @@ main::@3: scope:[main] from main::@1 to:main::@9 main::@9: scope:[main] from main::@3 (byte*) line_cursor#18 ← phi( main::@3/(byte*) line_cursor#19 ) - (word) rem16u#34 ← phi( main::@3/(word) rem16u#37 ) + (word) rem16u#32 ← phi( main::@3/(word) rem16u#34 ) (word) main::wavelength#5 ← phi( main::@3/(word) main::wavelength#7 ) (signed word*) main::st1#6 ← phi( main::@3/(signed word*) main::st1#7 ) (signed word) main::sw#2 ← phi( main::@3/(signed word) main::sw#3 ) @@ -2773,23 +2799,23 @@ main::@return: scope:[main] from main::@8 @21: scope:[] from @10 (byte*) char_cursor#55 ← phi( @10/(byte*) char_cursor#0 ) (byte*) line_cursor#15 ← phi( @10/(byte*) line_cursor#0 ) - (word) rem16u#29 ← phi( @10/(word) rem16u#31 ) + (word) rem16u#28 ← phi( @10/(word) rem16u#30 ) (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 - to:@25 + to:@26 sin16s_gen: scope:[sin16s_gen] from main - (signed word*) sin16s_gen::sintab#16 ← phi( main/(signed word*) sin16s_gen::sintab#0 ) + (signed word*) sin16s_gen::sintab#5 ← phi( main/(signed word*) sin16s_gen::sintab#0 ) (word) rem16u#22 ← phi( main/(word) rem16u#20 ) (word) sin16s_gen::wavelength#1 ← phi( main/(word) sin16s_gen::wavelength#0 ) (dword) div32u16u::dividend#0 ← (dword) PI2_u4f28#0 (word) div32u16u::divisor#0 ← (word) sin16s_gen::wavelength#1 call div32u16u param-assignment (dword) div32u16u::return#0 ← (dword) div32u16u::return#2 - to:sin16s_gen::@9 -sin16s_gen::@9: scope:[sin16s_gen] from sin16s_gen - (word) sin16s_gen::wavelength#15 ← phi( sin16s_gen/(word) sin16s_gen::wavelength#1 ) - (signed word*) sin16s_gen::sintab#15 ← phi( sin16s_gen/(signed word*) sin16s_gen::sintab#16 ) + to:sin16s_gen::@3 +sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen + (word) sin16s_gen::wavelength#4 ← phi( sin16s_gen/(word) sin16s_gen::wavelength#1 ) + (signed word*) sin16s_gen::sintab#4 ← phi( sin16s_gen/(signed word*) sin16s_gen::sintab#5 ) (word) rem16u#14 ← phi( sin16s_gen/(word) rem16u#9 ) (dword) div32u16u::return#3 ← phi( sin16s_gen/(dword) div32u16u::return#0 ) (dword~) sin16s_gen::$0 ← (dword) div32u16u::return#3 @@ -2798,228 +2824,177 @@ sin16s_gen::@9: scope:[sin16s_gen] from sin16s_gen (dword) sin16s_gen::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (word) sin16s_gen::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:sin16s_gen::@1 -sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@4 sin16s_gen::@9 - (word) rem16u#44 ← phi( sin16s_gen::@4/(word) rem16u#23 sin16s_gen::@9/(word) rem16u#5 ) - (word) sin16s_gen::wavelength#13 ← phi( sin16s_gen::@4/(word) sin16s_gen::wavelength#2 sin16s_gen::@9/(word) sin16s_gen::wavelength#15 ) - (word) sin16s_gen::i#13 ← phi( sin16s_gen::@4/(word) sin16s_gen::i#1 sin16s_gen::@9/(word) sin16s_gen::i#0 ) - (dword) sin16s_gen::step#12 ← phi( sin16s_gen::@4/(dword) sin16s_gen::step#1 sin16s_gen::@9/(dword) sin16s_gen::step#0 ) - (signed word*) sin16s_gen::sintab#13 ← phi( sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 sin16s_gen::@9/(signed word*) sin16s_gen::sintab#15 ) - (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@4/(dword) sin16s_gen::x#1 sin16s_gen::@9/(dword) sin16s_gen::x#0 ) - (dword) sin16s_gen::xp#0 ← (dword) sin16s_gen::x#2 - (byte) sin16s_gen::isUpper#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (boolean~) sin16s_gen::$1 ← (dword) sin16s_gen::xp#0 >= (dword) PI_u4f28#0 - (boolean~) sin16s_gen::$2 ← ! (boolean~) sin16s_gen::$1 - if((boolean~) sin16s_gen::$2) goto sin16s_gen::@2 - to:sin16s_gen::@5 -sin16s_gen::@2: scope:[sin16s_gen] from sin16s_gen::@1 sin16s_gen::@5 - (word) rem16u#42 ← phi( sin16s_gen::@1/(word) rem16u#44 sin16s_gen::@5/(word) rem16u#45 ) - (word) sin16s_gen::wavelength#11 ← phi( sin16s_gen::@1/(word) sin16s_gen::wavelength#13 sin16s_gen::@5/(word) sin16s_gen::wavelength#14 ) - (word) sin16s_gen::i#11 ← phi( sin16s_gen::@1/(word) sin16s_gen::i#13 sin16s_gen::@5/(word) sin16s_gen::i#14 ) - (dword) sin16s_gen::step#10 ← phi( sin16s_gen::@1/(dword) sin16s_gen::step#12 sin16s_gen::@5/(dword) sin16s_gen::step#13 ) - (dword) sin16s_gen::x#12 ← phi( sin16s_gen::@1/(dword) sin16s_gen::x#2 sin16s_gen::@5/(dword) sin16s_gen::x#14 ) - (signed word*) sin16s_gen::sintab#11 ← phi( sin16s_gen::@1/(signed word*) sin16s_gen::sintab#13 sin16s_gen::@5/(signed word*) sin16s_gen::sintab#14 ) - (byte) sin16s_gen::isUpper#9 ← phi( sin16s_gen::@1/(byte) sin16s_gen::isUpper#0 sin16s_gen::@5/(byte) sin16s_gen::isUpper#1 ) - (dword) sin16s_gen::xp#3 ← phi( sin16s_gen::@1/(dword) sin16s_gen::xp#0 sin16s_gen::@5/(dword) sin16s_gen::xp#1 ) - (boolean~) sin16s_gen::$4 ← (dword) sin16s_gen::xp#3 >= (dword) PI_HALF_u4f28#0 - (boolean~) sin16s_gen::$5 ← ! (boolean~) sin16s_gen::$4 - if((boolean~) sin16s_gen::$5) goto sin16s_gen::@3 - to:sin16s_gen::@6 -sin16s_gen::@5: scope:[sin16s_gen] from sin16s_gen::@1 - (word) rem16u#45 ← phi( sin16s_gen::@1/(word) rem16u#44 ) - (word) sin16s_gen::wavelength#14 ← phi( sin16s_gen::@1/(word) sin16s_gen::wavelength#13 ) - (word) sin16s_gen::i#14 ← phi( sin16s_gen::@1/(word) sin16s_gen::i#13 ) - (dword) sin16s_gen::step#13 ← phi( sin16s_gen::@1/(dword) sin16s_gen::step#12 ) - (dword) sin16s_gen::x#14 ← phi( sin16s_gen::@1/(dword) sin16s_gen::x#2 ) - (signed word*) sin16s_gen::sintab#14 ← phi( sin16s_gen::@1/(signed word*) sin16s_gen::sintab#13 ) - (dword) sin16s_gen::xp#4 ← phi( sin16s_gen::@1/(dword) sin16s_gen::xp#0 ) - (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::xp#4 - (dword) PI_u4f28#0 - (dword) sin16s_gen::xp#1 ← (dword~) sin16s_gen::$3 - (byte) sin16s_gen::isUpper#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - to:sin16s_gen::@2 -sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen::@2 sin16s_gen::@6 - (word) rem16u#41 ← phi( sin16s_gen::@2/(word) rem16u#42 sin16s_gen::@6/(word) rem16u#43 ) - (word) sin16s_gen::wavelength#10 ← phi( sin16s_gen::@2/(word) sin16s_gen::wavelength#11 sin16s_gen::@6/(word) sin16s_gen::wavelength#12 ) - (word) sin16s_gen::i#10 ← phi( sin16s_gen::@2/(word) sin16s_gen::i#11 sin16s_gen::@6/(word) sin16s_gen::i#12 ) - (dword) sin16s_gen::step#9 ← phi( sin16s_gen::@2/(dword) sin16s_gen::step#10 sin16s_gen::@6/(dword) sin16s_gen::step#11 ) - (dword) sin16s_gen::x#11 ← phi( sin16s_gen::@2/(dword) sin16s_gen::x#12 sin16s_gen::@6/(dword) sin16s_gen::x#13 ) - (signed word*) sin16s_gen::sintab#10 ← phi( sin16s_gen::@2/(signed word*) sin16s_gen::sintab#11 sin16s_gen::@6/(signed word*) sin16s_gen::sintab#12 ) - (byte) sin16s_gen::isUpper#8 ← phi( sin16s_gen::@2/(byte) sin16s_gen::isUpper#9 sin16s_gen::@6/(byte) sin16s_gen::isUpper#10 ) - (dword) sin16s_gen::xp#5 ← phi( sin16s_gen::@2/(dword) sin16s_gen::xp#3 sin16s_gen::@6/(dword) sin16s_gen::xp#2 ) - (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 - (word~) sin16s_gen::$8 ← > (dword~) sin16s_gen::$7 - (word) sin16s_gen::x1#0 ← (word~) sin16s_gen::$8 - (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 - (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 - (byte) mul_u16_sel::select#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - call mul_u16_sel param-assignment - (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#7 - to:sin16s_gen::@10 -sin16s_gen::@10: scope:[sin16s_gen] from sin16s_gen::@3 - (word) rem16u#40 ← phi( sin16s_gen::@3/(word) rem16u#41 ) - (word) sin16s_gen::wavelength#9 ← phi( sin16s_gen::@3/(word) sin16s_gen::wavelength#10 ) - (word) sin16s_gen::i#9 ← phi( sin16s_gen::@3/(word) sin16s_gen::i#10 ) - (dword) sin16s_gen::step#8 ← phi( sin16s_gen::@3/(dword) sin16s_gen::step#9 ) - (dword) sin16s_gen::x#10 ← phi( sin16s_gen::@3/(dword) sin16s_gen::x#11 ) - (signed word*) sin16s_gen::sintab#9 ← phi( sin16s_gen::@3/(signed word*) sin16s_gen::sintab#10 ) - (byte) sin16s_gen::isUpper#7 ← phi( sin16s_gen::@3/(byte) sin16s_gen::isUpper#8 ) - (word) sin16s_gen::x1#1 ← phi( sin16s_gen::@3/(word) sin16s_gen::x1#0 ) - (word) mul_u16_sel::return#8 ← phi( sin16s_gen::@3/(word) mul_u16_sel::return#0 ) - (word~) sin16s_gen::$9 ← (word) mul_u16_sel::return#8 - (word) sin16s_gen::x2#0 ← (word~) sin16s_gen::$9 - (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 - (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#1 - (byte) mul_u16_sel::select#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - call mul_u16_sel param-assignment - (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#7 - to:sin16s_gen::@11 -sin16s_gen::@11: scope:[sin16s_gen] from sin16s_gen::@10 - (word) rem16u#39 ← phi( sin16s_gen::@10/(word) rem16u#40 ) - (word) sin16s_gen::wavelength#8 ← phi( sin16s_gen::@10/(word) sin16s_gen::wavelength#9 ) - (word) sin16s_gen::i#8 ← phi( sin16s_gen::@10/(word) sin16s_gen::i#9 ) - (dword) sin16s_gen::step#7 ← phi( sin16s_gen::@10/(dword) sin16s_gen::step#8 ) - (dword) sin16s_gen::x#9 ← phi( sin16s_gen::@10/(dword) sin16s_gen::x#10 ) - (signed word*) sin16s_gen::sintab#8 ← phi( sin16s_gen::@10/(signed word*) sin16s_gen::sintab#9 ) - (byte) sin16s_gen::isUpper#6 ← phi( sin16s_gen::@10/(byte) sin16s_gen::isUpper#7 ) - (word) sin16s_gen::x1#4 ← phi( sin16s_gen::@10/(word) sin16s_gen::x1#1 ) - (word) mul_u16_sel::return#9 ← phi( sin16s_gen::@10/(word) mul_u16_sel::return#1 ) - (word~) sin16s_gen::$10 ← (word) mul_u16_sel::return#9 - (word) sin16s_gen::x3#0 ← (word~) sin16s_gen::$10 - (word/signed word/dword/signed dword~) sin16s_gen::$11 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 - (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 - (word) mul_u16_sel::v2#2 ← (word/signed word/dword/signed dword~) sin16s_gen::$11 - (byte) mul_u16_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - call mul_u16_sel param-assignment - (word) mul_u16_sel::return#2 ← (word) mul_u16_sel::return#7 - to:sin16s_gen::@12 -sin16s_gen::@12: scope:[sin16s_gen] from sin16s_gen::@11 - (word) rem16u#38 ← phi( sin16s_gen::@11/(word) rem16u#39 ) - (word) sin16s_gen::wavelength#7 ← phi( sin16s_gen::@11/(word) sin16s_gen::wavelength#8 ) - (word) sin16s_gen::i#7 ← phi( sin16s_gen::@11/(word) sin16s_gen::i#8 ) - (dword) sin16s_gen::step#6 ← phi( sin16s_gen::@11/(dword) sin16s_gen::step#7 ) - (dword) sin16s_gen::x#8 ← phi( sin16s_gen::@11/(dword) sin16s_gen::x#9 ) - (signed word*) sin16s_gen::sintab#7 ← phi( sin16s_gen::@11/(signed word*) sin16s_gen::sintab#8 ) - (byte) sin16s_gen::isUpper#5 ← phi( sin16s_gen::@11/(byte) sin16s_gen::isUpper#6 ) - (word) sin16s_gen::x3#1 ← phi( sin16s_gen::@11/(word) sin16s_gen::x3#0 ) - (word) sin16s_gen::x1#2 ← phi( sin16s_gen::@11/(word) sin16s_gen::x1#4 ) - (word) mul_u16_sel::return#10 ← phi( sin16s_gen::@11/(word) mul_u16_sel::return#2 ) - (word~) sin16s_gen::$12 ← (word) mul_u16_sel::return#10 - (word) sin16s_gen::x3_6#0 ← (word~) sin16s_gen::$12 - (word~) sin16s_gen::$13 ← (word) sin16s_gen::x1#2 - (word) sin16s_gen::x3_6#0 - (word) sin16s_gen::usinx#0 ← (word~) sin16s_gen::$13 - (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#1 - (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#2 - (byte) mul_u16_sel::select#3 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - call mul_u16_sel param-assignment - (word) mul_u16_sel::return#3 ← (word) mul_u16_sel::return#7 - to:sin16s_gen::@13 -sin16s_gen::@13: scope:[sin16s_gen] from sin16s_gen::@12 - (word) rem16u#35 ← phi( sin16s_gen::@12/(word) rem16u#38 ) - (word) sin16s_gen::wavelength#6 ← phi( sin16s_gen::@12/(word) sin16s_gen::wavelength#7 ) - (word) sin16s_gen::i#6 ← phi( sin16s_gen::@12/(word) sin16s_gen::i#7 ) - (dword) sin16s_gen::step#5 ← phi( sin16s_gen::@12/(dword) sin16s_gen::step#6 ) - (dword) sin16s_gen::x#7 ← phi( sin16s_gen::@12/(dword) sin16s_gen::x#8 ) - (signed word*) sin16s_gen::sintab#6 ← phi( sin16s_gen::@12/(signed word*) sin16s_gen::sintab#7 ) - (byte) sin16s_gen::isUpper#4 ← phi( sin16s_gen::@12/(byte) sin16s_gen::isUpper#5 ) - (word) sin16s_gen::usinx#5 ← phi( sin16s_gen::@12/(word) sin16s_gen::usinx#0 ) - (word) sin16s_gen::x1#3 ← phi( sin16s_gen::@12/(word) sin16s_gen::x1#2 ) - (word) mul_u16_sel::return#11 ← phi( sin16s_gen::@12/(word) mul_u16_sel::return#3 ) - (word~) sin16s_gen::$14 ← (word) mul_u16_sel::return#11 - (word) sin16s_gen::x4#0 ← (word~) sin16s_gen::$14 - (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 - (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#3 - (byte) mul_u16_sel::select#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - call mul_u16_sel param-assignment - (word) mul_u16_sel::return#4 ← (word) mul_u16_sel::return#7 - to:sin16s_gen::@14 -sin16s_gen::@14: scope:[sin16s_gen] from sin16s_gen::@13 - (word) rem16u#32 ← phi( sin16s_gen::@13/(word) rem16u#35 ) - (word) sin16s_gen::wavelength#5 ← phi( sin16s_gen::@13/(word) sin16s_gen::wavelength#6 ) - (word) sin16s_gen::i#5 ← phi( sin16s_gen::@13/(word) sin16s_gen::i#6 ) - (dword) sin16s_gen::step#4 ← phi( sin16s_gen::@13/(dword) sin16s_gen::step#5 ) - (dword) sin16s_gen::x#6 ← phi( sin16s_gen::@13/(dword) sin16s_gen::x#7 ) - (signed word*) sin16s_gen::sintab#5 ← phi( sin16s_gen::@13/(signed word*) sin16s_gen::sintab#6 ) - (byte) sin16s_gen::isUpper#3 ← phi( sin16s_gen::@13/(byte) sin16s_gen::isUpper#4 ) - (word) sin16s_gen::usinx#4 ← phi( sin16s_gen::@13/(word) sin16s_gen::usinx#5 ) - (word) mul_u16_sel::return#12 ← phi( sin16s_gen::@13/(word) mul_u16_sel::return#4 ) - (word~) sin16s_gen::$15 ← (word) mul_u16_sel::return#12 - (word) sin16s_gen::x5#0 ← (word~) sin16s_gen::$15 - (word/signed word/dword/signed dword~) sin16s_gen::$16 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128 - (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 - (word) mul_u16_sel::v2#5 ← (word/signed word/dword/signed dword~) sin16s_gen::$16 - (byte) mul_u16_sel::select#5 ← (byte/signed byte/word/signed word/dword/signed dword) 3 - call mul_u16_sel param-assignment - (word) mul_u16_sel::return#5 ← (word) mul_u16_sel::return#7 - to:sin16s_gen::@15 -sin16s_gen::@15: scope:[sin16s_gen] from sin16s_gen::@14 - (word) rem16u#27 ← phi( sin16s_gen::@14/(word) rem16u#32 ) - (word) sin16s_gen::wavelength#3 ← phi( sin16s_gen::@14/(word) sin16s_gen::wavelength#5 ) - (word) sin16s_gen::i#3 ← phi( sin16s_gen::@14/(word) sin16s_gen::i#5 ) - (dword) sin16s_gen::step#2 ← phi( sin16s_gen::@14/(dword) sin16s_gen::step#4 ) - (dword) sin16s_gen::x#4 ← phi( sin16s_gen::@14/(dword) sin16s_gen::x#6 ) - (signed word*) sin16s_gen::sintab#3 ← phi( sin16s_gen::@14/(signed word*) sin16s_gen::sintab#5 ) - (byte) sin16s_gen::isUpper#2 ← phi( sin16s_gen::@14/(byte) sin16s_gen::isUpper#3 ) - (word) sin16s_gen::usinx#2 ← phi( sin16s_gen::@14/(word) sin16s_gen::usinx#4 ) - (word) mul_u16_sel::return#13 ← phi( sin16s_gen::@14/(word) mul_u16_sel::return#5 ) - (word~) sin16s_gen::$17 ← (word) mul_u16_sel::return#13 - (word) sin16s_gen::x5_128#0 ← (word~) sin16s_gen::$17 - (word~) sin16s_gen::$18 ← (word) sin16s_gen::usinx#2 + (word) sin16s_gen::x5_128#0 - (word) sin16s_gen::usinx#1 ← (word~) sin16s_gen::$18 - (signed word~) sin16s_gen::$19 ← ((signed word)) (word) sin16s_gen::usinx#1 - (signed word) sin16s_gen::sinx#0 ← (signed word~) sin16s_gen::$19 - (boolean~) sin16s_gen::$20 ← (byte) sin16s_gen::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 - (boolean~) sin16s_gen::$21 ← ! (boolean~) sin16s_gen::$20 - if((boolean~) sin16s_gen::$21) goto sin16s_gen::@4 - to:sin16s_gen::@7 -sin16s_gen::@6: scope:[sin16s_gen] from sin16s_gen::@2 - (word) rem16u#43 ← phi( sin16s_gen::@2/(word) rem16u#42 ) - (word) sin16s_gen::wavelength#12 ← phi( sin16s_gen::@2/(word) sin16s_gen::wavelength#11 ) - (word) sin16s_gen::i#12 ← phi( sin16s_gen::@2/(word) sin16s_gen::i#11 ) - (dword) sin16s_gen::step#11 ← phi( sin16s_gen::@2/(dword) sin16s_gen::step#10 ) - (dword) sin16s_gen::x#13 ← phi( sin16s_gen::@2/(dword) sin16s_gen::x#12 ) - (signed word*) sin16s_gen::sintab#12 ← phi( sin16s_gen::@2/(signed word*) sin16s_gen::sintab#11 ) - (byte) sin16s_gen::isUpper#10 ← phi( sin16s_gen::@2/(byte) sin16s_gen::isUpper#9 ) - (dword) sin16s_gen::xp#6 ← phi( sin16s_gen::@2/(dword) sin16s_gen::xp#3 ) - (dword~) sin16s_gen::$6 ← (dword) PI_u4f28#0 - (dword) sin16s_gen::xp#6 - (dword) sin16s_gen::xp#2 ← (dword~) sin16s_gen::$6 - to:sin16s_gen::@3 -sin16s_gen::@4: scope:[sin16s_gen] from sin16s_gen::@15 sin16s_gen::@7 - (word) rem16u#23 ← phi( sin16s_gen::@15/(word) rem16u#27 sin16s_gen::@7/(word) rem16u#28 ) - (word) sin16s_gen::wavelength#2 ← phi( sin16s_gen::@15/(word) sin16s_gen::wavelength#3 sin16s_gen::@7/(word) sin16s_gen::wavelength#4 ) - (word) sin16s_gen::i#2 ← phi( sin16s_gen::@15/(word) sin16s_gen::i#3 sin16s_gen::@7/(word) sin16s_gen::i#4 ) - (dword) sin16s_gen::step#1 ← phi( sin16s_gen::@15/(dword) sin16s_gen::step#2 sin16s_gen::@7/(dword) sin16s_gen::step#3 ) - (dword) sin16s_gen::x#3 ← phi( sin16s_gen::@15/(dword) sin16s_gen::x#4 sin16s_gen::@7/(dword) sin16s_gen::x#5 ) - (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@15/(signed word*) sin16s_gen::sintab#3 sin16s_gen::@7/(signed word*) sin16s_gen::sintab#4 ) - (signed word) sin16s_gen::sinx#2 ← phi( sin16s_gen::@15/(signed word) sin16s_gen::sinx#0 sin16s_gen::@7/(signed word) sin16s_gen::sinx#1 ) - *((signed word*) sin16s_gen::sintab#2) ← (signed word) sin16s_gen::sinx#2 - (signed word*~) sin16s_gen::$24 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - (signed word*) sin16s_gen::sintab#1 ← (signed word*~) sin16s_gen::$24 - (dword~) sin16s_gen::$25 ← (dword) sin16s_gen::x#3 + (dword) sin16s_gen::step#1 - (dword) sin16s_gen::x#1 ← (dword~) sin16s_gen::$25 - (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 - (boolean~) sin16s_gen::$26 ← (word) sin16s_gen::i#1 < (word) sin16s_gen::wavelength#2 - if((boolean~) sin16s_gen::$26) goto sin16s_gen::@1 - to:sin16s_gen::@return -sin16s_gen::@7: scope:[sin16s_gen] from sin16s_gen::@15 - (word) rem16u#28 ← phi( sin16s_gen::@15/(word) rem16u#27 ) - (word) sin16s_gen::wavelength#4 ← phi( sin16s_gen::@15/(word) sin16s_gen::wavelength#3 ) - (word) sin16s_gen::i#4 ← phi( sin16s_gen::@15/(word) sin16s_gen::i#3 ) - (dword) sin16s_gen::step#3 ← phi( sin16s_gen::@15/(dword) sin16s_gen::step#2 ) - (dword) sin16s_gen::x#5 ← phi( sin16s_gen::@15/(dword) sin16s_gen::x#4 ) - (signed word*) sin16s_gen::sintab#4 ← phi( sin16s_gen::@15/(signed word*) sin16s_gen::sintab#3 ) - (word) sin16s_gen::usinx#3 ← phi( sin16s_gen::@15/(word) sin16s_gen::usinx#1 ) - (signed word~) sin16s_gen::$22 ← ((signed word)) (word) sin16s_gen::usinx#3 - (signed word~) sin16s_gen::$23 ← - (signed word~) sin16s_gen::$22 - (signed word) sin16s_gen::sinx#1 ← (signed word~) sin16s_gen::$23 +sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4 + (word) rem16u#27 ← phi( sin16s_gen::@3/(word) rem16u#5 sin16s_gen::@4/(word) rem16u#23 ) + (word) sin16s_gen::wavelength#3 ← phi( sin16s_gen::@3/(word) sin16s_gen::wavelength#4 sin16s_gen::@4/(word) sin16s_gen::wavelength#2 ) + (word) sin16s_gen::i#3 ← phi( sin16s_gen::@3/(word) sin16s_gen::i#0 sin16s_gen::@4/(word) sin16s_gen::i#1 ) + (dword) sin16s_gen::step#2 ← phi( sin16s_gen::@3/(dword) sin16s_gen::step#0 sin16s_gen::@4/(dword) sin16s_gen::step#1 ) + (signed word*) sin16s_gen::sintab#3 ← phi( sin16s_gen::@3/(signed word*) sin16s_gen::sintab#4 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 ) + (dword) sin16s_gen::x#2 ← phi( sin16s_gen::@3/(dword) sin16s_gen::x#0 sin16s_gen::@4/(dword) sin16s_gen::x#1 ) + (dword) sin16s::x#0 ← (dword) sin16s_gen::x#2 + call sin16s param-assignment + (signed word) sin16s::return#0 ← (signed word) sin16s::return#2 to:sin16s_gen::@4 +sin16s_gen::@4: scope:[sin16s_gen] from sin16s_gen::@1 + (word) rem16u#23 ← phi( sin16s_gen::@1/(word) rem16u#27 ) + (word) sin16s_gen::wavelength#2 ← phi( sin16s_gen::@1/(word) sin16s_gen::wavelength#3 ) + (word) sin16s_gen::i#2 ← phi( sin16s_gen::@1/(word) sin16s_gen::i#3 ) + (dword) sin16s_gen::step#1 ← phi( sin16s_gen::@1/(dword) sin16s_gen::step#2 ) + (dword) sin16s_gen::x#3 ← phi( sin16s_gen::@1/(dword) sin16s_gen::x#2 ) + (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@1/(signed word*) sin16s_gen::sintab#3 ) + (signed word) sin16s::return#3 ← phi( sin16s_gen::@1/(signed word) sin16s::return#0 ) + (signed word~) sin16s_gen::$1 ← (signed word) sin16s::return#3 + *((signed word*) sin16s_gen::sintab#2) ← (signed word~) sin16s_gen::$1 + (signed word*~) sin16s_gen::$2 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed word*) sin16s_gen::sintab#1 ← (signed word*~) sin16s_gen::$2 + (dword~) sin16s_gen::$3 ← (dword) sin16s_gen::x#3 + (dword) sin16s_gen::step#1 + (dword) sin16s_gen::x#1 ← (dword~) sin16s_gen::$3 + (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 + (boolean~) sin16s_gen::$4 ← (word) sin16s_gen::i#1 < (word) sin16s_gen::wavelength#2 + if((boolean~) sin16s_gen::$4) goto sin16s_gen::@1 + to:sin16s_gen::@return sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@4 (word) rem16u#15 ← phi( sin16s_gen::@4/(word) rem16u#23 ) (word) rem16u#6 ← (word) rem16u#15 return to:@return -mul_u16_sel: scope:[mul_u16_sel] from sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@3 - (byte) mul_u16_sel::select#7 ← phi( sin16s_gen::@10/(byte) mul_u16_sel::select#1 sin16s_gen::@11/(byte) mul_u16_sel::select#2 sin16s_gen::@12/(byte) mul_u16_sel::select#3 sin16s_gen::@13/(byte) mul_u16_sel::select#4 sin16s_gen::@14/(byte) mul_u16_sel::select#5 sin16s_gen::@3/(byte) mul_u16_sel::select#0 ) - (word) mul_u16_sel::v2#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v2#1 sin16s_gen::@11/(word) mul_u16_sel::v2#2 sin16s_gen::@12/(word) mul_u16_sel::v2#3 sin16s_gen::@13/(word) mul_u16_sel::v2#4 sin16s_gen::@14/(word) mul_u16_sel::v2#5 sin16s_gen::@3/(word) mul_u16_sel::v2#0 ) - (word) mul_u16_sel::v1#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v1#1 sin16s_gen::@11/(word) mul_u16_sel::v1#2 sin16s_gen::@12/(word) mul_u16_sel::v1#3 sin16s_gen::@13/(word) mul_u16_sel::v1#4 sin16s_gen::@14/(word) mul_u16_sel::v1#5 sin16s_gen::@3/(word) mul_u16_sel::v1#0 ) +sin16s: scope:[sin16s] from sin16s_gen::@1 + (dword) sin16s::x#3 ← phi( sin16s_gen::@1/(dword) sin16s::x#0 ) + (byte) sin16s::isUpper#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) sin16s::$0 ← (dword) sin16s::x#3 >= (dword) PI_u4f28#0 + (boolean~) sin16s::$1 ← ! (boolean~) sin16s::$0 + if((boolean~) sin16s::$1) goto sin16s::@1 + to:sin16s::@4 +sin16s::@1: scope:[sin16s] from sin16s sin16s::@4 + (byte) sin16s::isUpper#9 ← phi( sin16s/(byte) sin16s::isUpper#0 sin16s::@4/(byte) sin16s::isUpper#1 ) + (dword) sin16s::x#4 ← phi( sin16s/(dword) sin16s::x#3 sin16s::@4/(dword) sin16s::x#1 ) + (boolean~) sin16s::$3 ← (dword) sin16s::x#4 >= (dword) PI_HALF_u4f28#0 + (boolean~) sin16s::$4 ← ! (boolean~) sin16s::$3 + if((boolean~) sin16s::$4) goto sin16s::@2 + to:sin16s::@5 +sin16s::@4: scope:[sin16s] from sin16s + (dword) sin16s::x#5 ← phi( sin16s/(dword) sin16s::x#3 ) + (dword~) sin16s::$2 ← (dword) sin16s::x#5 - (dword) PI_u4f28#0 + (dword) sin16s::x#1 ← (dword~) sin16s::$2 + (byte) sin16s::isUpper#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + to:sin16s::@1 +sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5 + (byte) sin16s::isUpper#8 ← phi( sin16s::@1/(byte) sin16s::isUpper#9 sin16s::@5/(byte) sin16s::isUpper#10 ) + (dword) sin16s::x#6 ← phi( sin16s::@1/(dword) sin16s::x#4 sin16s::@5/(dword) sin16s::x#2 ) + (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 + (word~) sin16s::$7 ← > (dword~) sin16s::$6 + (word) sin16s::x1#0 ← (word~) sin16s::$7 + (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 + (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 + (byte) mul_u16_sel::select#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + call mul_u16_sel param-assignment + (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#7 + to:sin16s::@8 +sin16s::@8: scope:[sin16s] from sin16s::@2 + (byte) sin16s::isUpper#7 ← phi( sin16s::@2/(byte) sin16s::isUpper#8 ) + (word) sin16s::x1#1 ← phi( sin16s::@2/(word) sin16s::x1#0 ) + (word) mul_u16_sel::return#8 ← phi( sin16s::@2/(word) mul_u16_sel::return#0 ) + (word~) sin16s::$8 ← (word) mul_u16_sel::return#8 + (word) sin16s::x2#0 ← (word~) sin16s::$8 + (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 + (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#1 + (byte) mul_u16_sel::select#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + call mul_u16_sel param-assignment + (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#7 + to:sin16s::@9 +sin16s::@9: scope:[sin16s] from sin16s::@8 + (byte) sin16s::isUpper#6 ← phi( sin16s::@8/(byte) sin16s::isUpper#7 ) + (word) sin16s::x1#4 ← phi( sin16s::@8/(word) sin16s::x1#1 ) + (word) mul_u16_sel::return#9 ← phi( sin16s::@8/(word) mul_u16_sel::return#1 ) + (word~) sin16s::$9 ← (word) mul_u16_sel::return#9 + (word) sin16s::x3#0 ← (word~) sin16s::$9 + (word/signed word/dword/signed dword~) sin16s::$10 ← (dword/signed dword) 65536 / (byte/signed byte/word/signed word/dword/signed dword) 6 + (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 + (word) mul_u16_sel::v2#2 ← (word/signed word/dword/signed dword~) sin16s::$10 + (byte) mul_u16_sel::select#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + call mul_u16_sel param-assignment + (word) mul_u16_sel::return#2 ← (word) mul_u16_sel::return#7 + to:sin16s::@10 +sin16s::@10: scope:[sin16s] from sin16s::@9 + (byte) sin16s::isUpper#5 ← phi( sin16s::@9/(byte) sin16s::isUpper#6 ) + (word) sin16s::x3#1 ← phi( sin16s::@9/(word) sin16s::x3#0 ) + (word) sin16s::x1#2 ← phi( sin16s::@9/(word) sin16s::x1#4 ) + (word) mul_u16_sel::return#10 ← phi( sin16s::@9/(word) mul_u16_sel::return#2 ) + (word~) sin16s::$11 ← (word) mul_u16_sel::return#10 + (word) sin16s::x3_6#0 ← (word~) sin16s::$11 + (word~) sin16s::$12 ← (word) sin16s::x1#2 - (word) sin16s::x3_6#0 + (word) sin16s::usinx#0 ← (word~) sin16s::$12 + (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#1 + (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#2 + (byte) mul_u16_sel::select#3 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + call mul_u16_sel param-assignment + (word) mul_u16_sel::return#3 ← (word) mul_u16_sel::return#7 + to:sin16s::@11 +sin16s::@11: scope:[sin16s] from sin16s::@10 + (byte) sin16s::isUpper#4 ← phi( sin16s::@10/(byte) sin16s::isUpper#5 ) + (word) sin16s::usinx#5 ← phi( sin16s::@10/(word) sin16s::usinx#0 ) + (word) sin16s::x1#3 ← phi( sin16s::@10/(word) sin16s::x1#2 ) + (word) mul_u16_sel::return#11 ← phi( sin16s::@10/(word) mul_u16_sel::return#3 ) + (word~) sin16s::$13 ← (word) mul_u16_sel::return#11 + (word) sin16s::x4#0 ← (word~) sin16s::$13 + (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 + (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#3 + (byte) mul_u16_sel::select#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + call mul_u16_sel param-assignment + (word) mul_u16_sel::return#4 ← (word) mul_u16_sel::return#7 + to:sin16s::@12 +sin16s::@12: scope:[sin16s] from sin16s::@11 + (byte) sin16s::isUpper#3 ← phi( sin16s::@11/(byte) sin16s::isUpper#4 ) + (word) sin16s::usinx#4 ← phi( sin16s::@11/(word) sin16s::usinx#5 ) + (word) mul_u16_sel::return#12 ← phi( sin16s::@11/(word) mul_u16_sel::return#4 ) + (word~) sin16s::$14 ← (word) mul_u16_sel::return#12 + (word) sin16s::x5#0 ← (word~) sin16s::$14 + (word/signed word/dword/signed dword~) sin16s::$15 ← (dword/signed dword) 65536 / (byte/word/signed word/dword/signed dword) 128 + (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 + (word) mul_u16_sel::v2#5 ← (word/signed word/dword/signed dword~) sin16s::$15 + (byte) mul_u16_sel::select#5 ← (byte/signed byte/word/signed word/dword/signed dword) 3 + call mul_u16_sel param-assignment + (word) mul_u16_sel::return#5 ← (word) mul_u16_sel::return#7 + to:sin16s::@13 +sin16s::@13: scope:[sin16s] from sin16s::@12 + (byte) sin16s::isUpper#2 ← phi( sin16s::@12/(byte) sin16s::isUpper#3 ) + (word) sin16s::usinx#2 ← phi( sin16s::@12/(word) sin16s::usinx#4 ) + (word) mul_u16_sel::return#13 ← phi( sin16s::@12/(word) mul_u16_sel::return#5 ) + (word~) sin16s::$16 ← (word) mul_u16_sel::return#13 + (word) sin16s::x5_128#0 ← (word~) sin16s::$16 + (word~) sin16s::$17 ← (word) sin16s::usinx#2 + (word) sin16s::x5_128#0 + (word) sin16s::usinx#1 ← (word~) sin16s::$17 + (signed word~) sin16s::$18 ← ((signed word)) (word) sin16s::usinx#1 + (signed word) sin16s::sinx#0 ← (signed word~) sin16s::$18 + (boolean~) sin16s::$19 ← (byte) sin16s::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) sin16s::$20 ← ! (boolean~) sin16s::$19 + if((boolean~) sin16s::$20) goto sin16s::@3 + to:sin16s::@6 +sin16s::@5: scope:[sin16s] from sin16s::@1 + (byte) sin16s::isUpper#10 ← phi( sin16s::@1/(byte) sin16s::isUpper#9 ) + (dword) sin16s::x#7 ← phi( sin16s::@1/(dword) sin16s::x#4 ) + (dword~) sin16s::$5 ← (dword) PI_u4f28#0 - (dword) sin16s::x#7 + (dword) sin16s::x#2 ← (dword~) sin16s::$5 + to:sin16s::@2 +sin16s::@3: scope:[sin16s] from sin16s::@13 sin16s::@6 + (signed word) sin16s::sinx#2 ← phi( sin16s::@13/(signed word) sin16s::sinx#0 sin16s::@6/(signed word) sin16s::sinx#1 ) + (signed word) sin16s::return#1 ← (signed word) sin16s::sinx#2 + to:sin16s::@return +sin16s::@6: scope:[sin16s] from sin16s::@13 + (word) sin16s::usinx#3 ← phi( sin16s::@13/(word) sin16s::usinx#1 ) + (signed word~) sin16s::$21 ← ((signed word)) (word) sin16s::usinx#3 + (signed word~) sin16s::$22 ← - (signed word~) sin16s::$21 + (signed word) sin16s::sinx#1 ← (signed word~) sin16s::$22 + to:sin16s::@3 +sin16s::@return: scope:[sin16s] from sin16s::@3 + (signed word) sin16s::return#4 ← phi( sin16s::@3/(signed word) sin16s::return#1 ) + (signed word) sin16s::return#2 ← (signed word) sin16s::return#4 + return + to:@return +mul_u16_sel: scope:[mul_u16_sel] from sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@2 sin16s::@8 sin16s::@9 + (byte) mul_u16_sel::select#7 ← phi( sin16s::@10/(byte) mul_u16_sel::select#3 sin16s::@11/(byte) mul_u16_sel::select#4 sin16s::@12/(byte) mul_u16_sel::select#5 sin16s::@2/(byte) mul_u16_sel::select#0 sin16s::@8/(byte) mul_u16_sel::select#1 sin16s::@9/(byte) mul_u16_sel::select#2 ) + (word) mul_u16_sel::v2#6 ← phi( sin16s::@10/(word) mul_u16_sel::v2#3 sin16s::@11/(word) mul_u16_sel::v2#4 sin16s::@12/(word) mul_u16_sel::v2#5 sin16s::@2/(word) mul_u16_sel::v2#0 sin16s::@8/(word) mul_u16_sel::v2#1 sin16s::@9/(word) mul_u16_sel::v2#2 ) + (word) mul_u16_sel::v1#6 ← phi( sin16s::@10/(word) mul_u16_sel::v1#3 sin16s::@11/(word) mul_u16_sel::v1#4 sin16s::@12/(word) mul_u16_sel::v1#5 sin16s::@2/(word) mul_u16_sel::v1#0 sin16s::@8/(word) mul_u16_sel::v1#1 sin16s::@9/(word) mul_u16_sel::v1#2 ) (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 call mul16u param-assignment @@ -3081,28 +3056,28 @@ div32u16u::@return: scope:[div32u16u] from div32u16u::@3 (word) rem16u#9 ← (word) rem16u#18 return to:@return -@25: scope:[] from @21 +@26: scope:[] from @21 (byte*) char_cursor#50 ← phi( @21/(byte*) char_cursor#55 ) (byte*) line_cursor#12 ← phi( @21/(byte*) line_cursor#15 ) - (word) rem16u#25 ← phi( @21/(word) rem16u#29 ) + (word) rem16u#25 ← phi( @21/(word) rem16u#28 ) call main param-assignment - to:@26 -@26: scope:[] from @25 - (byte*) char_cursor#41 ← phi( @25/(byte*) char_cursor#20 ) - (byte*) line_cursor#9 ← phi( @25/(byte*) line_cursor#4 ) - (word) rem16u#19 ← phi( @25/(word) rem16u#4 ) + to:@27 +@27: scope:[] from @26 + (byte*) char_cursor#41 ← phi( @26/(byte*) char_cursor#20 ) + (byte*) line_cursor#9 ← phi( @26/(byte*) line_cursor#4 ) + (word) rem16u#19 ← phi( @26/(word) rem16u#4 ) (word) rem16u#10 ← (word) rem16u#19 (byte*) line_cursor#5 ← (byte*) line_cursor#9 (byte*) char_cursor#21 ← (byte*) char_cursor#41 to:@end -@end: scope:[] from @26 +@end: scope:[] from @27 SYMBOL TABLE SSA (label) @10 (label) @2 (label) @21 -(label) @25 (label) @26 +(label) @27 (label) @begin (label) @end (dword) PI2_u4f28 @@ -3535,198 +3510,143 @@ SYMBOL TABLE SSA (word) rem16u#32 (word) rem16u#33 (word) rem16u#34 -(word) rem16u#35 -(word) rem16u#36 -(word) rem16u#37 -(word) rem16u#38 -(word) rem16u#39 (word) rem16u#4 -(word) rem16u#40 -(word) rem16u#41 -(word) rem16u#42 -(word) rem16u#43 -(word) rem16u#44 -(word) rem16u#45 (word) rem16u#5 (word) rem16u#6 (word) rem16u#7 (word) rem16u#8 (word) rem16u#9 +(signed word()) sin16s((dword) sin16s::x) +(boolean~) sin16s::$0 +(boolean~) sin16s::$1 +(word/signed word/dword/signed dword~) sin16s::$10 +(word~) sin16s::$11 +(word~) sin16s::$12 +(word~) sin16s::$13 +(word~) sin16s::$14 +(word/signed word/dword/signed dword~) sin16s::$15 +(word~) sin16s::$16 +(word~) sin16s::$17 +(signed word~) sin16s::$18 +(boolean~) sin16s::$19 +(dword~) sin16s::$2 +(boolean~) sin16s::$20 +(signed word~) sin16s::$21 +(signed word~) sin16s::$22 +(boolean~) sin16s::$3 +(boolean~) sin16s::$4 +(dword~) sin16s::$5 +(dword~) sin16s::$6 +(word~) sin16s::$7 +(word~) sin16s::$8 +(word~) sin16s::$9 +(label) sin16s::@1 +(label) sin16s::@10 +(label) sin16s::@11 +(label) sin16s::@12 +(label) sin16s::@13 +(label) sin16s::@2 +(label) sin16s::@3 +(label) sin16s::@4 +(label) sin16s::@5 +(label) sin16s::@6 +(label) sin16s::@8 +(label) sin16s::@9 +(label) sin16s::@return +(byte) sin16s::isUpper +(byte) sin16s::isUpper#0 +(byte) sin16s::isUpper#1 +(byte) sin16s::isUpper#10 +(byte) sin16s::isUpper#2 +(byte) sin16s::isUpper#3 +(byte) sin16s::isUpper#4 +(byte) sin16s::isUpper#5 +(byte) sin16s::isUpper#6 +(byte) sin16s::isUpper#7 +(byte) sin16s::isUpper#8 +(byte) sin16s::isUpper#9 +(signed word) sin16s::return +(signed word) sin16s::return#0 +(signed word) sin16s::return#1 +(signed word) sin16s::return#2 +(signed word) sin16s::return#3 +(signed word) sin16s::return#4 +(signed word) sin16s::sinx +(signed word) sin16s::sinx#0 +(signed word) sin16s::sinx#1 +(signed word) sin16s::sinx#2 +(word) sin16s::usinx +(word) sin16s::usinx#0 +(word) sin16s::usinx#1 +(word) sin16s::usinx#2 +(word) sin16s::usinx#3 +(word) sin16s::usinx#4 +(word) sin16s::usinx#5 +(dword) sin16s::x +(dword) sin16s::x#0 +(dword) sin16s::x#1 +(dword) sin16s::x#2 +(dword) sin16s::x#3 +(dword) sin16s::x#4 +(dword) sin16s::x#5 +(dword) sin16s::x#6 +(dword) sin16s::x#7 +(word) sin16s::x1 +(word) sin16s::x1#0 +(word) sin16s::x1#1 +(word) sin16s::x1#2 +(word) sin16s::x1#3 +(word) sin16s::x1#4 +(word) sin16s::x2 +(word) sin16s::x2#0 +(word) sin16s::x3 +(word) sin16s::x3#0 +(word) sin16s::x3#1 +(word) sin16s::x3_6 +(word) sin16s::x3_6#0 +(word) sin16s::x4 +(word) sin16s::x4#0 +(word) sin16s::x5 +(word) sin16s::x5#0 +(word) sin16s::x5_128 +(word) sin16s::x5_128#0 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength) (dword~) sin16s_gen::$0 -(boolean~) sin16s_gen::$1 -(word~) sin16s_gen::$10 -(word/signed word/dword/signed dword~) sin16s_gen::$11 -(word~) sin16s_gen::$12 -(word~) sin16s_gen::$13 -(word~) sin16s_gen::$14 -(word~) sin16s_gen::$15 -(word/signed word/dword/signed dword~) sin16s_gen::$16 -(word~) sin16s_gen::$17 -(word~) sin16s_gen::$18 -(signed word~) sin16s_gen::$19 -(boolean~) sin16s_gen::$2 -(boolean~) sin16s_gen::$20 -(boolean~) sin16s_gen::$21 -(signed word~) sin16s_gen::$22 -(signed word~) sin16s_gen::$23 -(signed word*~) sin16s_gen::$24 -(dword~) sin16s_gen::$25 -(boolean~) sin16s_gen::$26 +(signed word~) sin16s_gen::$1 +(signed word*~) sin16s_gen::$2 (dword~) sin16s_gen::$3 (boolean~) sin16s_gen::$4 -(boolean~) sin16s_gen::$5 -(dword~) sin16s_gen::$6 -(dword~) sin16s_gen::$7 -(word~) sin16s_gen::$8 -(word~) sin16s_gen::$9 (label) sin16s_gen::@1 -(label) sin16s_gen::@10 -(label) sin16s_gen::@11 -(label) sin16s_gen::@12 -(label) sin16s_gen::@13 -(label) sin16s_gen::@14 -(label) sin16s_gen::@15 -(label) sin16s_gen::@2 (label) sin16s_gen::@3 (label) sin16s_gen::@4 -(label) sin16s_gen::@5 -(label) sin16s_gen::@6 -(label) sin16s_gen::@7 -(label) sin16s_gen::@9 (label) sin16s_gen::@return (word) sin16s_gen::i (word) sin16s_gen::i#0 (word) sin16s_gen::i#1 -(word) sin16s_gen::i#10 -(word) sin16s_gen::i#11 -(word) sin16s_gen::i#12 -(word) sin16s_gen::i#13 -(word) sin16s_gen::i#14 (word) sin16s_gen::i#2 (word) sin16s_gen::i#3 -(word) sin16s_gen::i#4 -(word) sin16s_gen::i#5 -(word) sin16s_gen::i#6 -(word) sin16s_gen::i#7 -(word) sin16s_gen::i#8 -(word) sin16s_gen::i#9 -(byte) sin16s_gen::isUpper -(byte) sin16s_gen::isUpper#0 -(byte) sin16s_gen::isUpper#1 -(byte) sin16s_gen::isUpper#10 -(byte) sin16s_gen::isUpper#2 -(byte) sin16s_gen::isUpper#3 -(byte) sin16s_gen::isUpper#4 -(byte) sin16s_gen::isUpper#5 -(byte) sin16s_gen::isUpper#6 -(byte) sin16s_gen::isUpper#7 -(byte) sin16s_gen::isUpper#8 -(byte) sin16s_gen::isUpper#9 (signed word*) sin16s_gen::sintab (signed word*) sin16s_gen::sintab#0 (signed word*) sin16s_gen::sintab#1 -(signed word*) sin16s_gen::sintab#10 -(signed word*) sin16s_gen::sintab#11 -(signed word*) sin16s_gen::sintab#12 -(signed word*) sin16s_gen::sintab#13 -(signed word*) sin16s_gen::sintab#14 -(signed word*) sin16s_gen::sintab#15 -(signed word*) sin16s_gen::sintab#16 (signed word*) sin16s_gen::sintab#2 (signed word*) sin16s_gen::sintab#3 (signed word*) sin16s_gen::sintab#4 (signed word*) sin16s_gen::sintab#5 -(signed word*) sin16s_gen::sintab#6 -(signed word*) sin16s_gen::sintab#7 -(signed word*) sin16s_gen::sintab#8 -(signed word*) sin16s_gen::sintab#9 -(signed word) sin16s_gen::sinx -(signed word) sin16s_gen::sinx#0 -(signed word) sin16s_gen::sinx#1 -(signed word) sin16s_gen::sinx#2 (dword) sin16s_gen::step (dword) sin16s_gen::step#0 (dword) sin16s_gen::step#1 -(dword) sin16s_gen::step#10 -(dword) sin16s_gen::step#11 -(dword) sin16s_gen::step#12 -(dword) sin16s_gen::step#13 (dword) sin16s_gen::step#2 -(dword) sin16s_gen::step#3 -(dword) sin16s_gen::step#4 -(dword) sin16s_gen::step#5 -(dword) sin16s_gen::step#6 -(dword) sin16s_gen::step#7 -(dword) sin16s_gen::step#8 -(dword) sin16s_gen::step#9 -(word) sin16s_gen::usinx -(word) sin16s_gen::usinx#0 -(word) sin16s_gen::usinx#1 -(word) sin16s_gen::usinx#2 -(word) sin16s_gen::usinx#3 -(word) sin16s_gen::usinx#4 -(word) sin16s_gen::usinx#5 (word) sin16s_gen::wavelength (word) sin16s_gen::wavelength#0 (word) sin16s_gen::wavelength#1 -(word) sin16s_gen::wavelength#10 -(word) sin16s_gen::wavelength#11 -(word) sin16s_gen::wavelength#12 -(word) sin16s_gen::wavelength#13 -(word) sin16s_gen::wavelength#14 -(word) sin16s_gen::wavelength#15 (word) sin16s_gen::wavelength#2 (word) sin16s_gen::wavelength#3 (word) sin16s_gen::wavelength#4 -(word) sin16s_gen::wavelength#5 -(word) sin16s_gen::wavelength#6 -(word) sin16s_gen::wavelength#7 -(word) sin16s_gen::wavelength#8 -(word) sin16s_gen::wavelength#9 (dword) sin16s_gen::x (dword) sin16s_gen::x#0 (dword) sin16s_gen::x#1 -(dword) sin16s_gen::x#10 -(dword) sin16s_gen::x#11 -(dword) sin16s_gen::x#12 -(dword) sin16s_gen::x#13 -(dword) sin16s_gen::x#14 (dword) sin16s_gen::x#2 (dword) sin16s_gen::x#3 -(dword) sin16s_gen::x#4 -(dword) sin16s_gen::x#5 -(dword) sin16s_gen::x#6 -(dword) sin16s_gen::x#7 -(dword) sin16s_gen::x#8 -(dword) sin16s_gen::x#9 -(word) sin16s_gen::x1 -(word) sin16s_gen::x1#0 -(word) sin16s_gen::x1#1 -(word) sin16s_gen::x1#2 -(word) sin16s_gen::x1#3 -(word) sin16s_gen::x1#4 -(word) sin16s_gen::x2 -(word) sin16s_gen::x2#0 -(word) sin16s_gen::x3 -(word) sin16s_gen::x3#0 -(word) sin16s_gen::x3#1 -(word) sin16s_gen::x3_6 -(word) sin16s_gen::x3_6#0 -(word) sin16s_gen::x4 -(word) sin16s_gen::x4#0 -(word) sin16s_gen::x5 -(word) sin16s_gen::x5#0 -(word) sin16s_gen::x5_128 -(word) sin16s_gen::x5_128#0 -(dword) sin16s_gen::xp -(dword) sin16s_gen::xp#0 -(dword) sin16s_gen::xp#1 -(dword) sin16s_gen::xp#2 -(dword) sin16s_gen::xp#3 -(dword) sin16s_gen::xp#4 -(dword) sin16s_gen::xp#5 -(dword) sin16s_gen::xp#6 OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (boolean~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3734,9 +3654,9 @@ Inversing boolean not (boolean~) divr16u::$9 ← (word) divr16u::rem#6 < (word) Inversing boolean not (boolean~) mul16u::$3 ← (byte~) mul16u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) mul16u::$2 ← (byte~) mul16u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (boolean~) print_sword::$1 ← (signed word) print_sword::w#2 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) print_sword::$0 ← (signed word) print_sword::w#2 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (boolean~) main::$3 ← (signed word) main::sw#0 < (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$2 ← (signed word) main::sw#0 >= (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not (boolean~) sin16s_gen::$2 ← (dword) sin16s_gen::xp#0 < (dword) PI_u4f28#0 from (boolean~) sin16s_gen::$1 ← (dword) sin16s_gen::xp#0 >= (dword) PI_u4f28#0 -Inversing boolean not (boolean~) sin16s_gen::$5 ← (dword) sin16s_gen::xp#3 < (dword) PI_HALF_u4f28#0 from (boolean~) sin16s_gen::$4 ← (dword) sin16s_gen::xp#3 >= (dword) PI_HALF_u4f28#0 -Inversing boolean not (boolean~) sin16s_gen::$21 ← (byte) sin16s_gen::isUpper#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) sin16s_gen::$20 ← (byte) sin16s_gen::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) sin16s::$1 ← (dword) sin16s::x#3 < (dword) PI_u4f28#0 from (boolean~) sin16s::$0 ← (dword) sin16s::x#3 >= (dword) PI_u4f28#0 +Inversing boolean not (boolean~) sin16s::$4 ← (dword) sin16s::x#4 < (dword) PI_HALF_u4f28#0 from (boolean~) sin16s::$3 ← (dword) sin16s::x#4 >= (dword) PI_HALF_u4f28#0 +Inversing boolean not (boolean~) sin16s::$20 ← (byte) sin16s::isUpper#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) sin16s::$19 ← (byte) sin16s::isUpper#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Succesful SSA optimization Pass2UnaryNotSimplification Not aliassing across scopes: divr16u::rem#10 divr16u::rem#3 Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1 @@ -3776,37 +3696,41 @@ Not aliassing across scopes: char_cursor#38 char_cursor#2 Not aliassing across scopes: char_cursor#39 char_cursor#2 Not aliassing across scopes: sin16s_gen::wavelength#1 sin16s_gen::wavelength#0 Not aliassing across scopes: rem16u#22 rem16u#20 -Not aliassing across scopes: sin16s_gen::sintab#16 sin16s_gen::sintab#0 +Not aliassing across scopes: sin16s_gen::sintab#5 sin16s_gen::sintab#0 Not aliassing across scopes: div32u16u::dividend#0 PI2_u4f28#0 Not aliassing across scopes: div32u16u::divisor#0 sin16s_gen::wavelength#1 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#2 Not aliassing across scopes: rem16u#14 rem16u#9 Not aliassing across scopes: sin16s_gen::$0 div32u16u::return#3 -Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0 -Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2 +Not aliassing across scopes: sin16s::return#0 sin16s::return#2 +Not aliassing across scopes: sin16s_gen::$1 sin16s::return#3 +Not aliassing across scopes: sin16s::x#3 sin16s::x#0 +Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0 +Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#7 -Not aliassing across scopes: sin16s_gen::$9 mul_u16_sel::return#8 -Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0 -Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#1 +Not aliassing across scopes: sin16s::$8 mul_u16_sel::return#8 +Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0 +Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#1 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#7 -Not aliassing across scopes: sin16s_gen::$10 mul_u16_sel::return#9 -Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0 +Not aliassing across scopes: sin16s::$9 mul_u16_sel::return#9 +Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0 Not aliassing across scopes: mul_u16_sel::return#2 mul_u16_sel::return#7 -Not aliassing across scopes: sin16s_gen::$12 mul_u16_sel::return#10 -Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#1 -Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#2 +Not aliassing across scopes: sin16s::$11 mul_u16_sel::return#10 +Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#1 +Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#2 Not aliassing across scopes: mul_u16_sel::return#3 mul_u16_sel::return#7 -Not aliassing across scopes: sin16s_gen::$14 mul_u16_sel::return#11 -Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0 -Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#3 +Not aliassing across scopes: sin16s::$13 mul_u16_sel::return#11 +Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0 +Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#3 Not aliassing across scopes: mul_u16_sel::return#4 mul_u16_sel::return#7 -Not aliassing across scopes: sin16s_gen::$15 mul_u16_sel::return#12 -Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0 +Not aliassing across scopes: sin16s::$14 mul_u16_sel::return#12 +Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0 Not aliassing across scopes: mul_u16_sel::return#5 mul_u16_sel::return#7 -Not aliassing across scopes: sin16s_gen::$17 mul_u16_sel::return#13 -Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1 -Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1 -Not aliassing across scopes: mul_u16_sel::select#7 mul_u16_sel::select#1 +Not aliassing across scopes: sin16s::$16 mul_u16_sel::return#13 +Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3 +Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3 +Not aliassing across scopes: mul_u16_sel::select#7 mul_u16_sel::select#3 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6 Not aliassing across scopes: mul16u::return#2 mul16u::return#1 @@ -3847,7 +3771,7 @@ Alias (dword) mul16u::res#2 = (dword) mul16u::res#5 (dword) mul16u::res#4 (dword Alias (word) mul16u::a#0 = (word~) mul16u::$5 Alias (dword) mul16u::mb#1 = (dword~) mul16u::$6 Alias (dword) mul16u::res#1 = (dword~) mul16u::$4 -Alias (word) rem16u#0 = (word) rem16u#31 (word) rem16u#29 (word) rem16u#25 +Alias (word) rem16u#0 = (word) rem16u#30 (word) rem16u#28 (word) rem16u#25 Alias (byte*) SCREEN#0 = (byte*) line_cursor#0 (byte*) char_cursor#0 (byte*) line_cursor#15 (byte*) char_cursor#55 (byte*) line_cursor#12 (byte*) char_cursor#50 Alias (byte*) print_str::str#3 = (byte*) print_str::str#4 Alias (byte*) char_cursor#2 = (byte*) char_cursor#22 (byte*) char_cursor#42 (byte*) char_cursor#23 @@ -3870,13 +3794,13 @@ Alias (byte*) line_cursor#1 = (byte*) char_cursor#14 (byte*) line_cursor#6 (byte Alias (byte*) line_cursor#10 = (byte*) line_cursor#13 Alias (byte*) char_cursor#47 = (byte*) char_cursor#53 Alias (word) main::wavelength#0 = (word) main::wavelength#8 (word) main::wavelength#6 -Alias (word) rem16u#12 = (word) rem16u#3 (word) rem16u#36 +Alias (word) rem16u#12 = (word) rem16u#3 (word) rem16u#33 Alias (byte*) line_cursor#3 = (byte*) line_cursor#7 Alias (byte*) char_cursor#16 = (byte*) char_cursor#36 Alias (signed word[120]) main::sintab1#0 = (signed word*) main::st1#0 Alias (signed word*) main::st1#3 = (signed word*) main::st1#4 (signed word*) main::st1#5 Alias (word) main::wavelength#1 = (word) main::wavelength#2 (word) main::wavelength#3 -Alias (word) rem16u#13 = (word) rem16u#26 (word) rem16u#30 (word) rem16u#21 (word) rem16u#4 +Alias (word) rem16u#13 = (word) rem16u#26 (word) rem16u#29 (word) rem16u#21 (word) rem16u#4 Alias (byte*) line_cursor#11 = (byte*) line_cursor#14 (byte*) line_cursor#16 (byte*) line_cursor#8 (byte*) line_cursor#4 Alias (byte*) char_cursor#17 = (byte*) char_cursor#37 Alias (byte*) char_cursor#18 = (byte*) char_cursor#38 (byte*) char_cursor#40 (byte*) char_cursor#20 @@ -3885,59 +3809,49 @@ Alias (byte*) char_cursor#49 = (byte*) char_cursor#54 Alias (signed word) main::sw#0 = (signed word) main::sw#3 (signed word) main::sw#2 Alias (signed word*) main::st1#2 = (signed word*) main::st1#7 (signed word*) main::st1#6 Alias (word) main::wavelength#4 = (word) main::wavelength#7 (word) main::wavelength#5 -Alias (word) rem16u#33 = (word) rem16u#37 (word) rem16u#34 +Alias (word) rem16u#31 = (word) rem16u#34 (word) rem16u#32 Alias (byte*) line_cursor#17 = (byte*) line_cursor#19 (byte*) line_cursor#18 Alias (byte*) char_cursor#19 = (byte*) char_cursor#39 Alias (dword) div32u16u::return#0 = (dword) div32u16u::return#3 -Alias (signed word*) sin16s_gen::sintab#15 = (signed word*) sin16s_gen::sintab#16 -Alias (word) sin16s_gen::wavelength#1 = (word) sin16s_gen::wavelength#15 +Alias (signed word*) sin16s_gen::sintab#4 = (signed word*) sin16s_gen::sintab#5 +Alias (word) sin16s_gen::wavelength#1 = (word) sin16s_gen::wavelength#4 Alias (word) rem16u#14 = (word) rem16u#5 Alias (dword) sin16s_gen::step#0 = (dword~) sin16s_gen::$0 -Alias (dword) sin16s_gen::xp#0 = (dword) sin16s_gen::x#2 (dword) sin16s_gen::xp#4 (dword) sin16s_gen::x#14 -Alias (signed word*) sin16s_gen::sintab#13 = (signed word*) sin16s_gen::sintab#14 -Alias (dword) sin16s_gen::step#12 = (dword) sin16s_gen::step#13 -Alias (word) sin16s_gen::i#13 = (word) sin16s_gen::i#14 -Alias (word) sin16s_gen::wavelength#13 = (word) sin16s_gen::wavelength#14 -Alias (word) rem16u#44 = (word) rem16u#45 -Alias (dword) sin16s_gen::xp#1 = (dword~) sin16s_gen::$3 -Alias (word) sin16s_gen::x1#0 = (word~) sin16s_gen::$8 (word) sin16s_gen::x1#1 (word) sin16s_gen::x1#4 (word) sin16s_gen::x1#2 (word) sin16s_gen::x1#3 +Alias (signed word) sin16s::return#0 = (signed word) sin16s::return#3 +Alias (signed word*) sin16s_gen::sintab#2 = (signed word*) sin16s_gen::sintab#3 +Alias (dword) sin16s_gen::x#2 = (dword) sin16s_gen::x#3 +Alias (dword) sin16s_gen::step#1 = (dword) sin16s_gen::step#2 +Alias (word) sin16s_gen::i#2 = (word) sin16s_gen::i#3 +Alias (word) sin16s_gen::wavelength#2 = (word) sin16s_gen::wavelength#3 +Alias (word) rem16u#15 = (word) rem16u#23 (word) rem16u#27 (word) rem16u#6 +Alias (signed word*) sin16s_gen::sintab#1 = (signed word*~) sin16s_gen::$2 +Alias (dword) sin16s_gen::x#1 = (dword~) sin16s_gen::$3 +Alias (dword) sin16s::x#3 = (dword) sin16s::x#5 +Alias (dword) sin16s::x#1 = (dword~) sin16s::$2 +Alias (word) sin16s::x1#0 = (word~) sin16s::$7 (word) sin16s::x1#1 (word) sin16s::x1#4 (word) sin16s::x1#2 (word) sin16s::x1#3 Alias (word) mul_u16_sel::return#0 = (word) mul_u16_sel::return#8 -Alias (byte) sin16s_gen::isUpper#2 = (byte) sin16s_gen::isUpper#7 (byte) sin16s_gen::isUpper#8 (byte) sin16s_gen::isUpper#6 (byte) sin16s_gen::isUpper#5 (byte) sin16s_gen::isUpper#4 (byte) sin16s_gen::isUpper#3 -Alias (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#9 (signed word*) sin16s_gen::sintab#8 (signed word*) sin16s_gen::sintab#7 (signed word*) sin16s_gen::sintab#6 (signed word*) sin16s_gen::sintab#5 (signed word*) sin16s_gen::sintab#3 (signed word*) sin16s_gen::sintab#4 -Alias (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#11 (dword) sin16s_gen::x#9 (dword) sin16s_gen::x#8 (dword) sin16s_gen::x#7 (dword) sin16s_gen::x#6 (dword) sin16s_gen::x#4 (dword) sin16s_gen::x#5 -Alias (dword) sin16s_gen::step#2 = (dword) sin16s_gen::step#8 (dword) sin16s_gen::step#9 (dword) sin16s_gen::step#7 (dword) sin16s_gen::step#6 (dword) sin16s_gen::step#5 (dword) sin16s_gen::step#4 (dword) sin16s_gen::step#3 -Alias (word) sin16s_gen::i#10 = (word) sin16s_gen::i#9 (word) sin16s_gen::i#8 (word) sin16s_gen::i#7 (word) sin16s_gen::i#6 (word) sin16s_gen::i#5 (word) sin16s_gen::i#3 (word) sin16s_gen::i#4 -Alias (word) sin16s_gen::wavelength#10 = (word) sin16s_gen::wavelength#9 (word) sin16s_gen::wavelength#8 (word) sin16s_gen::wavelength#7 (word) sin16s_gen::wavelength#6 (word) sin16s_gen::wavelength#5 (word) sin16s_gen::wavelength#3 (word) sin16s_gen::wavelength#4 -Alias (word) rem16u#27 = (word) rem16u#40 (word) rem16u#41 (word) rem16u#39 (word) rem16u#38 (word) rem16u#35 (word) rem16u#32 (word) rem16u#28 -Alias (word) sin16s_gen::x2#0 = (word~) sin16s_gen::$9 +Alias (byte) sin16s::isUpper#2 = (byte) sin16s::isUpper#7 (byte) sin16s::isUpper#8 (byte) sin16s::isUpper#6 (byte) sin16s::isUpper#5 (byte) sin16s::isUpper#4 (byte) sin16s::isUpper#3 +Alias (word) sin16s::x2#0 = (word~) sin16s::$8 Alias (word) mul_u16_sel::return#1 = (word) mul_u16_sel::return#9 -Alias (word) sin16s_gen::x3#0 = (word~) sin16s_gen::$10 (word) sin16s_gen::x3#1 -Alias (word) mul_u16_sel::v2#2 = (word/signed word/dword/signed dword~) sin16s_gen::$11 +Alias (word) sin16s::x3#0 = (word~) sin16s::$9 (word) sin16s::x3#1 +Alias (word) mul_u16_sel::v2#2 = (word/signed word/dword/signed dword~) sin16s::$10 Alias (word) mul_u16_sel::return#10 = (word) mul_u16_sel::return#2 -Alias (word) sin16s_gen::x3_6#0 = (word~) sin16s_gen::$12 -Alias (word) sin16s_gen::usinx#0 = (word~) sin16s_gen::$13 (word) sin16s_gen::usinx#5 (word) sin16s_gen::usinx#4 (word) sin16s_gen::usinx#2 +Alias (word) sin16s::x3_6#0 = (word~) sin16s::$11 +Alias (word) sin16s::usinx#0 = (word~) sin16s::$12 (word) sin16s::usinx#5 (word) sin16s::usinx#4 (word) sin16s::usinx#2 Alias (word) mul_u16_sel::return#11 = (word) mul_u16_sel::return#3 -Alias (word) sin16s_gen::x4#0 = (word~) sin16s_gen::$14 +Alias (word) sin16s::x4#0 = (word~) sin16s::$13 Alias (word) mul_u16_sel::return#12 = (word) mul_u16_sel::return#4 -Alias (word) sin16s_gen::x5#0 = (word~) sin16s_gen::$15 -Alias (word) mul_u16_sel::v2#5 = (word/signed word/dword/signed dword~) sin16s_gen::$16 +Alias (word) sin16s::x5#0 = (word~) sin16s::$14 +Alias (word) mul_u16_sel::v2#5 = (word/signed word/dword/signed dword~) sin16s::$15 Alias (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#5 -Alias (word) sin16s_gen::x5_128#0 = (word~) sin16s_gen::$17 -Alias (word) sin16s_gen::usinx#1 = (word~) sin16s_gen::$18 (word) sin16s_gen::usinx#3 -Alias (signed word) sin16s_gen::sinx#0 = (signed word~) sin16s_gen::$19 -Alias (dword) sin16s_gen::xp#3 = (dword) sin16s_gen::xp#6 -Alias (byte) sin16s_gen::isUpper#10 = (byte) sin16s_gen::isUpper#9 -Alias (signed word*) sin16s_gen::sintab#11 = (signed word*) sin16s_gen::sintab#12 -Alias (dword) sin16s_gen::x#12 = (dword) sin16s_gen::x#13 -Alias (dword) sin16s_gen::step#10 = (dword) sin16s_gen::step#11 -Alias (word) sin16s_gen::i#11 = (word) sin16s_gen::i#12 -Alias (word) sin16s_gen::wavelength#11 = (word) sin16s_gen::wavelength#12 -Alias (word) rem16u#42 = (word) rem16u#43 -Alias (dword) sin16s_gen::xp#2 = (dword~) sin16s_gen::$6 -Alias (signed word*) sin16s_gen::sintab#1 = (signed word*~) sin16s_gen::$24 -Alias (dword) sin16s_gen::x#1 = (dword~) sin16s_gen::$25 -Alias (signed word) sin16s_gen::sinx#1 = (signed word~) sin16s_gen::$23 -Alias (word) rem16u#15 = (word) rem16u#23 (word) rem16u#6 +Alias (word) sin16s::x5_128#0 = (word~) sin16s::$16 +Alias (word) sin16s::usinx#1 = (word~) sin16s::$17 (word) sin16s::usinx#3 +Alias (signed word) sin16s::sinx#0 = (signed word~) sin16s::$18 +Alias (dword) sin16s::x#4 = (dword) sin16s::x#7 +Alias (byte) sin16s::isUpper#10 = (byte) sin16s::isUpper#9 +Alias (dword) sin16s::x#2 = (dword~) sin16s::$5 +Alias (signed word) sin16s::return#1 = (signed word) sin16s::sinx#2 (signed word) sin16s::return#4 (signed word) sin16s::return#2 +Alias (signed word) sin16s::sinx#1 = (signed word~) sin16s::$22 Alias (dword) mul16u::return#2 = (dword) mul16u::return#4 Alias (byte) mul_u16_sel::select#6 = (byte) mul_u16_sel::select#7 Alias (word) mul_u16_sel::return#14 = (word) mul_u16_sel::return#6 (word~) mul_u16_sel::$2 (word) mul_u16_sel::return#7 @@ -3994,37 +3908,41 @@ Not aliassing across scopes: char_cursor#18 char_cursor#2 Not aliassing across scopes: char_cursor#19 char_cursor#2 Not aliassing across scopes: sin16s_gen::wavelength#1 sin16s_gen::wavelength#0 Not aliassing across scopes: rem16u#22 rem16u#20 -Not aliassing across scopes: sin16s_gen::sintab#15 sin16s_gen::sintab#0 +Not aliassing across scopes: sin16s_gen::sintab#4 sin16s_gen::sintab#0 Not aliassing across scopes: div32u16u::dividend#0 PI2_u4f28#0 Not aliassing across scopes: div32u16u::divisor#0 sin16s_gen::wavelength#1 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1 Not aliassing across scopes: rem16u#14 rem16u#17 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0 -Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0 -Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2 +Not aliassing across scopes: sin16s::return#0 sin16s::return#1 +Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0 +Not aliassing across scopes: sin16s::x#3 sin16s::x#0 +Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0 +Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0 -Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0 -Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0 +Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0 +Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1 -Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0 +Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1 +Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10 -Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0 -Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10 +Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0 +Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11 -Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0 -Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11 +Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0 +Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12 -Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0 +Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12 +Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13 -Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1 -Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1 -Not aliassing across scopes: mul_u16_sel::select#6 mul_u16_sel::select#1 +Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13 +Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3 +Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3 +Not aliassing across scopes: mul_u16_sel::select#6 mul_u16_sel::select#3 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6 Not aliassing across scopes: mul16u::return#2 mul16u::res#2 @@ -4054,15 +3972,9 @@ Alias (dword) mul16u::mb#2 = (dword) mul16u::mb#3 Alias (signed word) main::sw#0 = (signed word) main::sw#1 Alias (signed word*) main::st1#2 = (signed word*) main::st1#3 Alias (word) main::wavelength#1 = (word) main::wavelength#4 -Alias (word) rem16u#13 = (word) rem16u#33 +Alias (word) rem16u#13 = (word) rem16u#31 Alias (byte*) line_cursor#11 = (byte*) line_cursor#17 -Alias (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#11 (signed word*) sin16s_gen::sintab#13 (signed word*) sin16s_gen::sintab#2 -Alias (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#12 (dword) sin16s_gen::xp#0 (dword) sin16s_gen::x#3 -Alias (dword) sin16s_gen::step#1 = (dword) sin16s_gen::step#10 (dword) sin16s_gen::step#12 (dword) sin16s_gen::step#2 -Alias (word) sin16s_gen::i#10 = (word) sin16s_gen::i#11 (word) sin16s_gen::i#13 (word) sin16s_gen::i#2 -Alias (word) sin16s_gen::wavelength#10 = (word) sin16s_gen::wavelength#11 (word) sin16s_gen::wavelength#13 (word) sin16s_gen::wavelength#2 -Alias (word) rem16u#15 = (word) rem16u#42 (word) rem16u#44 (word) rem16u#27 -Alias (byte) sin16s_gen::isUpper#10 = (byte) sin16s_gen::isUpper#2 +Alias (byte) sin16s::isUpper#10 = (byte) sin16s::isUpper#2 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: divr16u::rem#10 divr16u::rem#3 Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1 @@ -4102,40 +4014,41 @@ Not aliassing across scopes: char_cursor#18 char_cursor#2 Not aliassing across scopes: char_cursor#19 char_cursor#2 Not aliassing across scopes: sin16s_gen::wavelength#1 sin16s_gen::wavelength#0 Not aliassing across scopes: rem16u#22 rem16u#20 -Not aliassing across scopes: sin16s_gen::sintab#15 sin16s_gen::sintab#0 +Not aliassing across scopes: sin16s_gen::sintab#4 sin16s_gen::sintab#0 Not aliassing across scopes: div32u16u::dividend#0 PI2_u4f28#0 Not aliassing across scopes: div32u16u::divisor#0 sin16s_gen::wavelength#1 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1 Not aliassing across scopes: rem16u#14 rem16u#17 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0 -Not aliassing identity: sin16s_gen::step#1 sin16s_gen::step#1 -Not aliassing identity: sin16s_gen::wavelength#10 sin16s_gen::wavelength#10 -Not aliassing identity: rem16u#15 rem16u#15 -Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0 -Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2 +Not aliassing across scopes: sin16s::return#0 sin16s::return#1 +Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0 +Not aliassing across scopes: sin16s::x#3 sin16s::x#0 +Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0 +Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0 -Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0 -Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0 +Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0 +Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1 -Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0 +Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1 +Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10 -Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0 -Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10 +Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0 +Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11 -Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0 -Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11 +Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0 +Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12 -Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0 +Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12 +Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13 -Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1 -Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1 -Not aliassing across scopes: mul_u16_sel::select#6 mul_u16_sel::select#1 +Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13 +Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3 +Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3 +Not aliassing across scopes: mul_u16_sel::select#6 mul_u16_sel::select#3 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6 Not aliassing across scopes: mul16u::return#2 mul16u::res#2 @@ -4160,7 +4073,7 @@ Self Phi Eliminated (word) main::wavelength#1 Self Phi Eliminated (word) rem16u#13 Self Phi Eliminated (byte*) line_cursor#11 Self Phi Eliminated (dword) sin16s_gen::step#1 -Self Phi Eliminated (word) sin16s_gen::wavelength#10 +Self Phi Eliminated (word) sin16s_gen::wavelength#2 Self Phi Eliminated (word) rem16u#15 Succesful SSA optimization Pass2SelfPhiElimination Redundant Phi (word) divr16u::divisor#2 (word) divr16u::divisor#6 @@ -4190,11 +4103,12 @@ Redundant Phi (byte*) char_cursor#18 (byte*) char_cursor#2 Redundant Phi (byte*) char_cursor#19 (byte*) char_cursor#2 Redundant Phi (word) sin16s_gen::wavelength#1 (word) sin16s_gen::wavelength#0 Redundant Phi (word) rem16u#22 (word) rem16u#20 -Redundant Phi (signed word*) sin16s_gen::sintab#15 (signed word*) sin16s_gen::sintab#0 +Redundant Phi (signed word*) sin16s_gen::sintab#4 (signed word*) sin16s_gen::sintab#0 Redundant Phi (word) rem16u#14 (word) rem16u#17 Redundant Phi (dword) sin16s_gen::step#1 (dword) sin16s_gen::step#0 -Redundant Phi (word) sin16s_gen::wavelength#10 (word) sin16s_gen::wavelength#1 +Redundant Phi (word) sin16s_gen::wavelength#2 (word) sin16s_gen::wavelength#1 Redundant Phi (word) rem16u#15 (word) rem16u#14 +Redundant Phi (dword) sin16s::x#3 (dword) sin16s::x#0 Redundant Phi (dword) div32u16u::dividend#1 (dword) div32u16u::dividend#0 Redundant Phi (word) div32u16u::divisor#1 (word) div32u16u::divisor#0 Redundant Phi (word) rem16u#24 (word) rem16u#22 @@ -4214,10 +4128,10 @@ Simple Condition (boolean~) print_sword::$1 if((signed word) print_sword::w#1>=( Simple Condition (boolean~) print_cls::$1 if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 Simple Condition (boolean~) main::$3 if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 Simple Condition (boolean~) main::$10 if((signed word*) main::st1#1<(signed word*~) main::$9) goto main::@1 -Simple Condition (boolean~) sin16s_gen::$2 if((dword) sin16s_gen::x#10<(dword) PI_u4f28#0) goto sin16s_gen::@2 -Simple Condition (boolean~) sin16s_gen::$5 if((dword) sin16s_gen::xp#3<(dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 -Simple Condition (boolean~) sin16s_gen::$21 if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@4 -Simple Condition (boolean~) sin16s_gen::$26 if((word) sin16s_gen::i#1<(word) sin16s_gen::wavelength#0) goto sin16s_gen::@1 +Simple Condition (boolean~) sin16s_gen::$4 if((word) sin16s_gen::i#1<(word) sin16s_gen::wavelength#0) goto sin16s_gen::@1 +Simple Condition (boolean~) sin16s::$1 if((dword) sin16s::x#0<(dword) PI_u4f28#0) goto sin16s::@1 +Simple Condition (boolean~) sin16s::$4 if((dword) sin16s::x#4<(dword) PI_HALF_u4f28#0) goto sin16s::@2 +Simple Condition (boolean~) sin16s::$20 if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@3 Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const word) rem16u#0 = 0 Constant (const word) divr16u::quotient#0 = 0 @@ -4235,8 +4149,8 @@ Constant (const dword) PI_u4f28#0 = 843314857 Constant (const dword) PI_HALF_u4f28#0 = 421657428 Constant (const dword) sin16s_gen::x#0 = 0 Constant (const word) sin16s_gen::i#0 = 0 -Constant (const byte) sin16s_gen::isUpper#0 = 0 -Constant (const byte) sin16s_gen::isUpper#1 = 1 +Constant (const byte) sin16s::isUpper#0 = 0 +Constant (const byte) sin16s::isUpper#1 = 1 Constant (const byte) mul_u16_sel::select#0 = 0 Constant (const byte) mul_u16_sel::select#1 = 1 Constant (const word) mul_u16_sel::v2#2 = 65536/6 @@ -4269,8 +4183,8 @@ Succesful SSA optimization Pass2FixInlineConstructors Eliminating unused constant (const word) rem16u#0 Succesful SSA optimization PassNEliminateUnusedVars Eliminating Noop Cast (word) print_word::w#0 ← ((word)) (signed word) print_sword::w#3 -Eliminating Noop Cast (signed word) sin16s_gen::sinx#0 ← ((signed word)) (word) sin16s_gen::usinx#1 -Eliminating Noop Cast (signed word~) sin16s_gen::$22 ← ((signed word)) (word) sin16s_gen::usinx#1 +Eliminating Noop Cast (signed word) sin16s::sinx#0 ← ((signed word)) (word) sin16s::usinx#1 +Eliminating Noop Cast (signed word~) sin16s::$21 ← ((signed word)) (word) sin16s::usinx#1 Succesful SSA optimization Pass2NopCastElimination Culled Empty Block (label) @2 Culled Empty Block (label) mul16u::@3 @@ -4282,7 +4196,7 @@ Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@6 Culled Empty Block (label) main::@9 Culled Empty Block (label) @21 -Culled Empty Block (label) @26 +Culled Empty Block (label) @27 Succesful SSA optimization Pass2CullEmptyBlocks Not aliassing across scopes: rem16u#1 divr16u::rem#11 Not aliassing across scopes: mul16u::a#2 mul16u::a#1 @@ -4296,30 +4210,34 @@ Not aliassing across scopes: char_cursor#33 char_cursor#46 Not aliassing across scopes: print_sword::w#1 main::sw#0 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0 -Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0 -Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2 +Not aliassing across scopes: sin16s::return#0 sin16s::return#1 +Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0 +Not aliassing across scopes: sin16s::x#4 sin16s::x#0 +Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0 +Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0 -Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0 -Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0 +Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0 +Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1 -Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0 +Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1 +Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10 -Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0 -Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10 +Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0 +Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11 -Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0 -Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11 +Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0 +Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12 -Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0 +Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12 +Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13 -Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1 -Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1 +Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13 +Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3 +Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6 Not aliassing across scopes: mul16u::return#2 mul16u::res#2 @@ -4343,30 +4261,34 @@ Not aliassing across scopes: char_cursor#33 char_cursor#46 Not aliassing across scopes: print_sword::w#1 main::sw#0 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0 -Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0 -Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2 +Not aliassing across scopes: sin16s::return#0 sin16s::return#1 +Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0 +Not aliassing across scopes: sin16s::x#4 sin16s::x#0 +Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0 +Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0 -Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0 -Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0 +Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0 +Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1 -Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0 +Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1 +Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10 -Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0 -Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10 +Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0 +Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11 -Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0 -Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11 +Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0 +Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12 -Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0 +Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12 +Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13 -Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1 -Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1 +Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13 +Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3 +Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6 Not aliassing across scopes: mul16u::return#2 mul16u::res#2 @@ -4389,30 +4311,34 @@ Not aliassing across scopes: char_cursor#33 char_cursor#46 Not aliassing across scopes: print_sword::w#1 main::sw#0 Not aliassing across scopes: div32u16u::return#0 div32u16u::return#1 Not aliassing across scopes: sin16s_gen::step#0 div32u16u::return#0 -Not aliassing across scopes: mul_u16_sel::v1#0 sin16s_gen::x1#0 -Not aliassing across scopes: mul_u16_sel::v2#0 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x#0 sin16s_gen::x#2 +Not aliassing across scopes: sin16s::return#0 sin16s::return#1 +Not aliassing across scopes: sin16s_gen::$1 sin16s::return#0 +Not aliassing across scopes: sin16s::x#4 sin16s::x#0 +Not aliassing across scopes: mul_u16_sel::v1#0 sin16s::x1#0 +Not aliassing across scopes: mul_u16_sel::v2#0 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#0 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x2#0 mul_u16_sel::return#0 -Not aliassing across scopes: mul_u16_sel::v1#1 sin16s_gen::x2#0 -Not aliassing across scopes: mul_u16_sel::v2#1 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x2#0 mul_u16_sel::return#0 +Not aliassing across scopes: mul_u16_sel::v1#1 sin16s::x2#0 +Not aliassing across scopes: mul_u16_sel::v2#1 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#1 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3#0 mul_u16_sel::return#1 -Not aliassing across scopes: mul_u16_sel::v1#2 sin16s_gen::x3#0 +Not aliassing across scopes: sin16s::x3#0 mul_u16_sel::return#1 +Not aliassing across scopes: mul_u16_sel::v1#2 sin16s::x3#0 Not aliassing across scopes: mul_u16_sel::return#10 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x3_6#0 mul_u16_sel::return#10 -Not aliassing across scopes: mul_u16_sel::v1#3 sin16s_gen::x3#0 -Not aliassing across scopes: mul_u16_sel::v2#3 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x3_6#0 mul_u16_sel::return#10 +Not aliassing across scopes: mul_u16_sel::v1#3 sin16s::x3#0 +Not aliassing across scopes: mul_u16_sel::v2#3 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#11 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x4#0 mul_u16_sel::return#11 -Not aliassing across scopes: mul_u16_sel::v1#4 sin16s_gen::x4#0 -Not aliassing across scopes: mul_u16_sel::v2#4 sin16s_gen::x1#0 +Not aliassing across scopes: sin16s::x4#0 mul_u16_sel::return#11 +Not aliassing across scopes: mul_u16_sel::v1#4 sin16s::x4#0 +Not aliassing across scopes: mul_u16_sel::v2#4 sin16s::x1#0 Not aliassing across scopes: mul_u16_sel::return#12 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5#0 mul_u16_sel::return#12 -Not aliassing across scopes: mul_u16_sel::v1#5 sin16s_gen::x5#0 +Not aliassing across scopes: sin16s::x5#0 mul_u16_sel::return#12 +Not aliassing across scopes: mul_u16_sel::v1#5 sin16s::x5#0 Not aliassing across scopes: mul_u16_sel::return#13 mul_u16_sel::return#14 -Not aliassing across scopes: sin16s_gen::x5_128#0 mul_u16_sel::return#13 -Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#1 -Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#1 +Not aliassing across scopes: sin16s::x5_128#0 mul_u16_sel::return#13 +Not aliassing across scopes: mul_u16_sel::v1#6 mul_u16_sel::v1#3 +Not aliassing across scopes: mul_u16_sel::v2#6 mul_u16_sel::v2#3 Not aliassing across scopes: mul16u::a#1 mul_u16_sel::v1#6 Not aliassing across scopes: mul16u::b#0 mul_u16_sel::v2#6 Not aliassing across scopes: mul16u::return#2 mul16u::res#2 @@ -4465,12 +4391,12 @@ Inlining constant with var siblings (const dword) sin16s_gen::x#0 Inlining constant with var siblings (const dword) sin16s_gen::x#0 Inlining constant with var siblings (const word) sin16s_gen::i#0 Inlining constant with var siblings (const word) sin16s_gen::i#0 -Inlining constant with var siblings (const byte) sin16s_gen::isUpper#0 -Inlining constant with different constant siblings (const byte) sin16s_gen::isUpper#0 -Inlining constant with var siblings (const byte) sin16s_gen::isUpper#1 -Inlining constant with different constant siblings (const byte) sin16s_gen::isUpper#1 Inlining constant with var siblings (const signed word[120]) sin16s_gen::sintab#0 Inlining constant with var siblings (const signed word[120]) sin16s_gen::sintab#0 +Inlining constant with var siblings (const byte) sin16s::isUpper#0 +Inlining constant with different constant siblings (const byte) sin16s::isUpper#0 +Inlining constant with var siblings (const byte) sin16s::isUpper#1 +Inlining constant with different constant siblings (const byte) sin16s::isUpper#1 Inlining constant with var siblings (const byte) mul_u16_sel::select#0 Inlining constant with different constant siblings (const byte) mul_u16_sel::select#0 Inlining constant with different constant siblings (const byte) mul_u16_sel::select#0 @@ -4517,12 +4443,12 @@ Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed Constant inlined sin16s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined div32u16u::dividend#0 = (const dword) PI2_u4f28#0 Constant inlined line_cursor#1 = (const byte*) SCREEN#0 +Constant inlined sin16s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined sin16s::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined divr16u::divisor#1 = (const word) main::wavelength#0 Constant inlined divr16u::divisor#0 = (const word) main::wavelength#0 -Constant inlined sin16s_gen::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined sin16s_gen::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin16s_gen::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_cls::sc#0 = (const byte*) SCREEN#0 Constant inlined sin16s_gen::sintab#0 = (const signed word[120]) main::sintab1#0 @@ -4545,23 +4471,23 @@ Constant inlined mul_u16_sel::select#3 = (byte/signed byte/word/signed word/dwor Constant inlined main::$8 = (const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined mul_u16_sel::select#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Succesful SSA optimization Pass2ConstantInlining -Block Sequence Planned @begin @25 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@9 sin16s_gen::@1 sin16s_gen::@5 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@3 sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@7 sin16s_gen::@4 sin16s_gen::@return mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return +Block Sequence Planned @begin @26 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@13 sin16s::@6 sin16s::@3 sin16s::@return mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return Added new block during phi lifting main::@10(between main::@8 and main::@1) Added new block during phi lifting main::@11(between main::@1 and main::@2) Added new block during phi lifting print_sword::@5(between print_sword and print_sword::@1) Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1) -Added new block during phi lifting sin16s_gen::@16(between sin16s_gen::@4 and sin16s_gen::@1) -Added new block during phi lifting sin16s_gen::@17(between sin16s_gen::@1 and sin16s_gen::@2) -Fixing phi predecessor for sin16s_gen::isUpper#10 to new block ( sin16s_gen::@1 -> sin16s_gen::@17 ) during phi lifting. -Added new block during phi lifting sin16s_gen::@18(between sin16s_gen::@2 and sin16s_gen::@3) -Added new block during phi lifting sin16s_gen::@19(between sin16s_gen::@15 and sin16s_gen::@4) +Added new block during phi lifting sin16s_gen::@5(between sin16s_gen::@4 and sin16s_gen::@1) +Added new block during phi lifting sin16s::@14(between sin16s and sin16s::@1) +Fixing phi predecessor for sin16s::isUpper#10 to new block ( sin16s -> sin16s::@14 ) during phi lifting. +Added new block during phi lifting sin16s::@15(between sin16s::@1 and sin16s::@2) +Added new block during phi lifting sin16s::@16(between sin16s::@13 and sin16s::@3) Added new block during phi lifting mul16u::@10(between mul16u::@2 and mul16u::@4) Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::@1) Added new block during phi lifting divr16u::@9(between divr16u::@1 and divr16u::@2) Added new block during phi lifting divr16u::@10(between divr16u::@2 and divr16u::@3) -Block Sequence Planned @begin @25 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return main::@10 main::@11 print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@9 sin16s_gen::@1 sin16s_gen::@5 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@3 sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@7 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@16 sin16s_gen::@19 sin16s_gen::@18 sin16s_gen::@17 mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 +Block Sequence Planned @begin @26 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return main::@10 main::@11 print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@13 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@16 sin16s::@15 sin16s::@14 mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @25 +Adding NOP phi() at start of @26 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@5 @@ -4574,9 +4500,10 @@ Calls in [main] to sin16s_gen:5 print_cls:7 print_str:12 print_sword:16 print_st Calls in [print_sword] to print_char:38 print_word:43 Calls in [print_word] to print_byte:50 print_byte:54 Calls in [print_byte] to print_char:61 print_char:66 -Calls in [sin16s_gen] to div32u16u:80 mul_u16_sel:98 mul_u16_sel:105 mul_u16_sel:110 mul_u16_sel:118 mul_u16_sel:125 mul_u16_sel:130 -Calls in [mul_u16_sel] to mul16u:153 -Calls in [div32u16u] to divr16u:177 divr16u:182 +Calls in [sin16s_gen] to div32u16u:80 sin16s:85 +Calls in [sin16s] to mul_u16_sel:111 mul_u16_sel:118 mul_u16_sel:123 mul_u16_sel:131 mul_u16_sel:138 mul_u16_sel:143 +Calls in [mul_u16_sel] to mul16u:158 +Calls in [div32u16u] to divr16u:182 divr16u:187 Propagating live ranges... Propagating live ranges... @@ -4624,17 +4551,6 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... Created 38 initial phi equivalence classes Coalesced [11] char_cursor#59 ← char_cursor#49 Coalesced [13] char_cursor#58 ← char_cursor#2 @@ -4660,58 +4576,59 @@ Coalesced (already) [60] char_cursor#67 ← char_cursor#46 Coalesced [64] print_char::ch#5 ← print_char::ch#2 Coalesced (already) [65] char_cursor#68 ← char_cursor#12 Coalesced [78] print_cls::sc#3 ← print_cls::sc#1 -Coalesced [86] sin16s_gen::xp#8 ← sin16s_gen::xp#1 -Coalesced [90] sin16s_gen::xp#10 ← sin16s_gen::xp#2 -Coalesced [96] mul_u16_sel::v1#12 ← mul_u16_sel::v1#0 -Coalesced [97] mul_u16_sel::v2#10 ← mul_u16_sel::v2#0 -Coalesced [103] mul_u16_sel::v1#7 ← mul_u16_sel::v1#1 -Coalesced [104] mul_u16_sel::v2#7 ← mul_u16_sel::v2#1 -Coalesced [109] mul_u16_sel::v1#8 ← mul_u16_sel::v1#2 -Coalesced [116] mul_u16_sel::v1#9 ← mul_u16_sel::v1#3 -Coalesced [117] mul_u16_sel::v2#8 ← mul_u16_sel::v2#3 -Coalesced [123] mul_u16_sel::v1#10 ← mul_u16_sel::v1#4 -Coalesced [124] mul_u16_sel::v2#9 ← mul_u16_sel::v2#4 -Coalesced [129] mul_u16_sel::v1#11 ← mul_u16_sel::v1#5 -Coalesced [136] sin16s_gen::sinx#4 ← sin16s_gen::sinx#1 -Coalesced [144] sin16s_gen::x#15 ← sin16s_gen::x#1 -Coalesced [145] sin16s_gen::sintab#17 ← sin16s_gen::sintab#1 -Coalesced [146] sin16s_gen::i#15 ← sin16s_gen::i#1 -Coalesced [148] sin16s_gen::xp#9 ← sin16s_gen::xp#3 -Not coalescing [149] sin16s_gen::xp#7 ← sin16s_gen::x#10 -Coalesced [160] mul16u::a#7 ← mul16u::a#1 -Coalesced [161] mul16u::mb#6 ← mul16u::mb#0 -Coalesced [168] mul16u::res#9 ← mul16u::res#1 -Coalesced [172] mul16u::a#8 ← mul16u::a#0 -Coalesced [173] mul16u::res#7 ← mul16u::res#6 -Coalesced [174] mul16u::mb#7 ← mul16u::mb#1 -Coalesced (already) [175] mul16u::res#8 ← mul16u::res#2 -Coalesced [181] divr16u::rem#12 ← divr16u::rem#4 -Coalesced [188] divr16u::rem#13 ← divr16u::rem#10 -Coalesced [189] divr16u::dividend#9 ← divr16u::dividend#5 -Coalesced [196] divr16u::rem#16 ← divr16u::rem#1 -Coalesced [203] divr16u::rem#18 ← divr16u::rem#2 -Coalesced [204] divr16u::return#8 ← divr16u::quotient#2 -Coalesced [210] divr16u::rem#14 ← divr16u::rem#11 -Coalesced [211] divr16u::dividend#10 ← divr16u::dividend#0 -Coalesced [212] divr16u::quotient#9 ← divr16u::return#0 -Coalesced [213] divr16u::i#7 ← divr16u::i#1 -Coalesced [214] divr16u::rem#17 ← divr16u::rem#6 -Coalesced [215] divr16u::return#7 ← divr16u::quotient#1 -Coalesced [216] divr16u::rem#15 ← divr16u::rem#0 +Coalesced [94] sin16s_gen::x#4 ← sin16s_gen::x#1 +Coalesced [95] sin16s_gen::sintab#6 ← sin16s_gen::sintab#1 +Coalesced [96] sin16s_gen::i#4 ← sin16s_gen::i#1 +Coalesced [99] sin16s::x#9 ← sin16s::x#1 +Coalesced [103] sin16s::x#11 ← sin16s::x#2 +Coalesced [109] mul_u16_sel::v1#10 ← mul_u16_sel::v1#0 +Coalesced [110] mul_u16_sel::v2#9 ← mul_u16_sel::v2#0 +Coalesced [116] mul_u16_sel::v1#11 ← mul_u16_sel::v1#1 +Coalesced [117] mul_u16_sel::v2#10 ← mul_u16_sel::v2#1 +Coalesced [122] mul_u16_sel::v1#12 ← mul_u16_sel::v1#2 +Coalesced [129] mul_u16_sel::v1#7 ← mul_u16_sel::v1#3 +Coalesced [130] mul_u16_sel::v2#7 ← mul_u16_sel::v2#3 +Coalesced [136] mul_u16_sel::v1#8 ← mul_u16_sel::v1#4 +Coalesced [137] mul_u16_sel::v2#8 ← mul_u16_sel::v2#4 +Coalesced [142] mul_u16_sel::v1#9 ← mul_u16_sel::v1#5 +Coalesced [149] sin16s::return#6 ← sin16s::sinx#1 +Coalesced [153] sin16s::x#10 ← sin16s::x#4 +Coalesced [154] sin16s::x#8 ← sin16s::x#0 +Coalesced [165] mul16u::a#7 ← mul16u::a#1 +Coalesced [166] mul16u::mb#6 ← mul16u::mb#0 +Coalesced [173] mul16u::res#9 ← mul16u::res#1 +Coalesced [177] mul16u::a#8 ← mul16u::a#0 +Coalesced [178] mul16u::res#7 ← mul16u::res#6 +Coalesced [179] mul16u::mb#7 ← mul16u::mb#1 +Coalesced (already) [180] mul16u::res#8 ← mul16u::res#2 +Coalesced [186] divr16u::rem#12 ← divr16u::rem#4 +Coalesced [193] divr16u::rem#13 ← divr16u::rem#10 +Coalesced [194] divr16u::dividend#9 ← divr16u::dividend#5 +Coalesced [201] divr16u::rem#16 ← divr16u::rem#1 +Coalesced [208] divr16u::rem#18 ← divr16u::rem#2 +Coalesced [209] divr16u::return#8 ← divr16u::quotient#2 +Coalesced [215] divr16u::rem#14 ← divr16u::rem#11 +Coalesced [216] divr16u::dividend#10 ← divr16u::dividend#0 +Coalesced [217] divr16u::quotient#9 ← divr16u::return#0 +Coalesced [218] divr16u::i#7 ← divr16u::i#1 +Coalesced [219] divr16u::rem#17 ← divr16u::rem#6 +Coalesced [220] divr16u::return#7 ← divr16u::quotient#1 +Coalesced [221] divr16u::rem#15 ← divr16u::rem#0 Coalesced down to 24 phi equivalence classes Culled Empty Block (label) main::@10 Culled Empty Block (label) main::@11 Culled Empty Block (label) print_sword::@5 Culled Empty Block (label) print_cls::@3 -Culled Empty Block (label) sin16s_gen::@16 -Culled Empty Block (label) sin16s_gen::@18 +Culled Empty Block (label) sin16s_gen::@5 +Culled Empty Block (label) sin16s::@15 +Culled Empty Block (label) sin16s::@14 Culled Empty Block (label) mul16u::@10 Culled Empty Block (label) divr16u::@8 Culled Empty Block (label) divr16u::@10 Culled Empty Block (label) divr16u::@9 -Block Sequence Planned @begin @25 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@9 sin16s_gen::@1 sin16s_gen::@5 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@3 sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@7 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@19 sin16s_gen::@17 mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return +Block Sequence Planned @begin @26 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@13 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@16 mul_u16_sel mul_u16_sel::@2 mul_u16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return Adding NOP phi() at start of @begin -Adding NOP phi() at start of @25 +Adding NOP phi() at start of @26 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@5 @@ -4757,26 +4674,18 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... -Propagating live ranges... FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() [ ] ( ) - to:@25 -@25: scope:[] from @begin + to:@26 +@26: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @25 +@end: scope:[] from @26 [3] phi() [ ] ( ) -main: scope:[main] from @25 +main: scope:[main] from @26 [4] phi() [ ] ( main:2 [ ] ) [5] call sin16s_gen param-assignment [ ] ( main:2 [ ] ) to:main::@5 @@ -4896,266 +4805,276 @@ sin16s_gen: scope:[sin16s_gen] from main [58] phi() [ ] ( main:2::sin16s_gen:5 [ ] ) [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] ) [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) - to:sin16s_gen::@9 -sin16s_gen::@9: scope:[sin16s_gen] from sin16s_gen + to:sin16s_gen::@3 +sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) to:sin16s_gen::@1 -sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@4 sin16s_gen::@9 - [62] (word) sin16s_gen::i#10 ← phi( sin16s_gen::@4/(word) sin16s_gen::i#1 sin16s_gen::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - [62] (signed word*) sin16s_gen::sintab#10 ← phi( sin16s_gen::@4/(signed word*) sin16s_gen::sintab#1 sin16s_gen::@9/(const signed word[120]) main::sintab1#0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - [62] (dword) sin16s_gen::x#10 ← phi( sin16s_gen::@4/(dword) sin16s_gen::x#1 sin16s_gen::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - to:sin16s_gen::@5 -sin16s_gen::@5: scope:[sin16s_gen] from sin16s_gen::@1 - [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) - to:sin16s_gen::@2 -sin16s_gen::@2: scope:[sin16s_gen] from sin16s_gen::@17 sin16s_gen::@5 - [65] (byte) sin16s_gen::isUpper#10 ← phi( sin16s_gen::@17/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@5/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) - [65] (dword) sin16s_gen::xp#3 ← phi( sin16s_gen::@17/(dword~) sin16s_gen::xp#7 sin16s_gen::@5/(dword) sin16s_gen::xp#1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) - [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) - to:sin16s_gen::@6 -sin16s_gen::@6: scope:[sin16s_gen] from sin16s_gen::@2 - [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) - to:sin16s_gen::@3 -sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen::@2 sin16s_gen::@6 - [68] (dword) sin16s_gen::xp#5 ← phi( sin16s_gen::@2/(dword) sin16s_gen::xp#3 sin16s_gen::@6/(dword) sin16s_gen::xp#2 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#5 ] ) - [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) - [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) - [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) - [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) - [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) - to:sin16s_gen::@10 -sin16s_gen::@10: scope:[sin16s_gen] from sin16s_gen::@3 - [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) - [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) - [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) - [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) - to:sin16s_gen::@11 -sin16s_gen::@11: scope:[sin16s_gen] from sin16s_gen::@10 - [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) - [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) - [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ) - [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) - to:sin16s_gen::@12 -sin16s_gen::@12: scope:[sin16s_gen] from sin16s_gen::@11 - [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) - [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) - [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) - [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) - [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) - to:sin16s_gen::@13 -sin16s_gen::@13: scope:[sin16s_gen] from sin16s_gen::@12 - [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) - [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) - [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) - [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) - to:sin16s_gen::@14 -sin16s_gen::@14: scope:[sin16s_gen] from sin16s_gen::@13 - [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) - [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) - [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) - to:sin16s_gen::@15 -sin16s_gen::@15: scope:[sin16s_gen] from sin16s_gen::@14 - [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) - [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) - [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ) - to:sin16s_gen::@7 -sin16s_gen::@7: scope:[sin16s_gen] from sin16s_gen::@15 - [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#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] (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 ] ) + [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) to:sin16s_gen::@4 -sin16s_gen::@4: scope:[sin16s_gen] from sin16s_gen::@19 sin16s_gen::@7 - [103] (signed word) sin16s_gen::sinx#2 ← phi( sin16s_gen::@19/(signed word~) sin16s_gen::sinx#3 sin16s_gen::@7/(signed word) sin16s_gen::sinx#1 ) [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#2 ] ) - [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) - [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) - [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) - [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ 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 ] ) - [108] 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 ] ) +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 ] ) to:sin16s_gen::@return sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@4 - [109] return [ ] ( main:2::sin16s_gen:5 [ ] ) + [72] return [ ] ( main:2::sin16s_gen:5 [ ] ) to:@return -sin16s_gen::@19: scope:[sin16s_gen] from sin16s_gen::@15 - [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) - to:sin16s_gen::@4 -sin16s_gen::@17: scope:[sin16s_gen] from sin16s_gen::@1 - [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) - to:sin16s_gen::@2 -mul_u16_sel: scope:[mul_u16_sel] from sin16s_gen::@10 sin16s_gen::@11 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@14 sin16s_gen::@3 - [112] (byte) mul_u16_sel::select#6 ← phi( sin16s_gen::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s_gen::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s_gen::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen::@14/(byte/signed byte/word/signed word/dword/signed dword) 3 sin16s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) - [112] (word) mul_u16_sel::v2#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v2#1 sin16s_gen::@11/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 sin16s_gen::@12/(word) mul_u16_sel::v2#3 sin16s_gen::@13/(word) mul_u16_sel::v2#4 sin16s_gen::@14/(dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 sin16s_gen::@3/(word) mul_u16_sel::v2#0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) - [112] (word) mul_u16_sel::v1#6 ← phi( sin16s_gen::@10/(word) mul_u16_sel::v1#1 sin16s_gen::@11/(word) mul_u16_sel::v1#2 sin16s_gen::@12/(word) mul_u16_sel::v1#3 sin16s_gen::@13/(word) mul_u16_sel::v1#4 sin16s_gen::@14/(word) mul_u16_sel::v1#5 sin16s_gen::@3/(word) mul_u16_sel::v1#0 ) [ mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) - [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) - [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) - [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) - [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) +sin16s: scope:[sin16s] from sin16s_gen::@1 + [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#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::x#0 ] ) + to:sin16s::@4 +sin16s::@4: scope:[sin16s] from sin16s + [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#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::x#1 ] ) + to:sin16s::@1 +sin16s::@1: scope:[sin16s] from sin16s sin16s::@4 + [75] (byte) sin16s::isUpper#10 ← phi( sin16s/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) + [75] (dword) sin16s::x#4 ← phi( sin16s/(dword) sin16s::x#0 sin16s::@4/(dword) sin16s::x#1 ) [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) + [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) + to:sin16s::@5 +sin16s::@5: scope:[sin16s] from sin16s::@1 + [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#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#10 sin16s::x#2 ] ) + to:sin16s::@2 +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#10 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#10 sin16s::x#6 ] ) + [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 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#10 sin16s::$6 ] ) + [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 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#10 sin16s::x1#0 ] ) + [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) + [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) + [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_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#10 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#10 sin16s::x1#0 sin16s::x2#0 ] ) + [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) + [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) + [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_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#10 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#10 sin16s::x1#0 sin16s::x3#0 ] ) + [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) + [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ) + [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) + to:sin16s::@10 +sin16s::@10: scope:[sin16s] from sin16s::@9 + [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 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#10 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#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) + [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) + [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 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#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) + to:sin16s::@11 +sin16s::@11: scope:[sin16s] from sin16s::@10 + [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) + [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) + [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) + [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#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#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) + to:sin16s::@12 +sin16s::@12: scope:[sin16s] from sin16s::@11 + [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5#0 ] ) + [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#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::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) + [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( 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#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) + to:sin16s::@13 +sin16s::@13: scope:[sin16s] from sin16s::@12 + [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) + [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#1 ] ) + [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ 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 ] ) + to:sin16s::@6 +sin16s::@6: scope:[sin16s] from sin16s::@13 + [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#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::sinx#1 ] ) + to:sin16s::@3 +sin16s::@3: scope:[sin16s] from sin16s::@16 sin16s::@6 + [113] (signed word) sin16s::return#1 ← phi( sin16s::@16/(signed word~) sin16s::return#5 sin16s::@6/(signed word) sin16s::sinx#1 ) [ sin16s::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::return#1 ] ) + to:sin16s::@return +sin16s::@return: scope:[sin16s] from sin16s::@3 + [114] return [ sin16s::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::return#1 ] ) + to:@return +sin16s::@16: scope:[sin16s] from sin16s::@13 + [115] (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::@12 sin16s::@2 sin16s::@8 sin16s::@9 + [116] (byte) mul_u16_sel::select#6 ← 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::@12/(byte/signed byte/word/signed word/dword/signed dword) 3 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#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) + [116] (word) mul_u16_sel::v2#6 ← phi( sin16s::@10/(word) mul_u16_sel::v2#3 sin16s::@11/(word) mul_u16_sel::v2#4 sin16s::@12/(dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 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#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) + [116] (word) mul_u16_sel::v1#6 ← phi( sin16s::@10/(word) mul_u16_sel::v1#3 sin16s::@11/(word) mul_u16_sel::v1#4 sin16s::@12/(word) mul_u16_sel::v1#5 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#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ( 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] 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#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#6 mul_u16_sel::v2#6 mul_u16_sel::select#6 ] ) + [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) + [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) + [119] call mul16u param-assignment [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) to:mul_u16_sel::@2 mul_u16_sel::@2: scope:[mul_u16_sel] from mul_u16_sel - [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) - [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) - [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) + [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) + [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ 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#10 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#10 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#10 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#10 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#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) + [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) to:mul_u16_sel::@return mul_u16_sel::@return: scope:[mul_u16_sel] from mul_u16_sel::@2 - [120] return [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) + [124] return [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) to:@return mul16u: scope:[mul16u] from mul_u16_sel - [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) + [125] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) to:mul16u::@1 mul16u::@1: scope:[mul16u] from mul16u mul16u::@4 - [122] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) - [122] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) - [122] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) - [123] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [126] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [126] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [126] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [127] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) to:mul16u::@return mul16u::@return: scope:[mul16u] from mul16u::@1 - [124] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + [128] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) to:@return mul16u::@2: scope:[mul16u] from mul16u::@1 - [125] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) - [126] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) + [129] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) + [130] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) to:mul16u::@7 mul16u::@7: scope:[mul16u] from mul16u::@2 - [127] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) + [131] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) to:mul16u::@4 mul16u::@4: scope:[mul16u] from mul16u::@2 mul16u::@7 - [128] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ) - [129] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) - [130] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) + [132] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] ) + [133] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) + [134] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) to:mul16u::@1 div32u16u: scope:[div32u16u] from sin16s_gen - [131] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] ) - [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) - [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) + [135] phi() [ ] ( main:2::sin16s_gen:5::div32u16u:59 [ ] ) + [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) + [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) to:div32u16u::@2 div32u16u::@2: scope:[div32u16u] from div32u16u - [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) - [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) - [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) - [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) + [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) + [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) + [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) + [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) to:div32u16u::@3 div32u16u::@3: scope:[div32u16u] from div32u16u::@2 - [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) - [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) + [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) + [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) to:div32u16u::@return div32u16u::@return: scope:[div32u16u] from div32u16u::@3 - [140] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) + [144] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) to:@return divr16u: scope:[divr16u] from div32u16u div32u16u::@2 - [141] (word) divr16u::divisor#6 ← phi( div32u16u/(const word) main::wavelength#0 div32u16u::@2/(const word) main::wavelength#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) - [141] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) - [141] (word) divr16u::rem#10 ← phi( div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) + [145] (word) divr16u::divisor#6 ← phi( div32u16u/(const word) main::wavelength#0 div32u16u::@2/(const word) main::wavelength#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) + [145] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) + [145] (word) divr16u::rem#10 ← phi( div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ) to:divr16u::@1 divr16u::@1: scope:[divr16u] from divr16u divr16u::@3 - [142] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) - [142] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) - [142] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) - [142] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) - [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) - [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) - [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) - [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) + [146] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) + [146] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) + [146] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) + [146] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ) + [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) + [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) + [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) + [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) to:divr16u::@4 divr16u::@4: scope:[divr16u] from divr16u::@1 - [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) + [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) to:divr16u::@2 divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4 - [148] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ) - [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) - [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) - [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) + [152] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ) + [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) + [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) + [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) to:divr16u::@5 divr16u::@5: scope:[divr16u] from divr16u::@2 - [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) - [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) + [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) + [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) to:divr16u::@3 divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5 - [154] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ) - [154] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ) - [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) - [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) + [158] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ) + [158] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ) + [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) + [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) to:divr16u::@6 divr16u::@6: scope:[divr16u] from divr16u::@3 - [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) + [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) to:divr16u::@return divr16u::@return: scope:[divr16u] from divr16u::@6 - [158] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) + [162] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) to:@return DOMINATORS @begin dominated by @begin -@25 dominated by @25 @begin -@end dominated by @25 @end @begin -main dominated by @25 main @begin -main::@5 dominated by @25 main main::@5 @begin -main::@1 dominated by @25 main main::@1 main::@5 @begin -main::@3 dominated by @25 main main::@1 main::@5 main::@3 @begin -main::@2 dominated by @25 main main::@1 main::@2 main::@5 @begin -main::@7 dominated by main::@7 @25 main main::@1 main::@2 main::@5 @begin -main::@8 dominated by main::@7 @25 main::@8 main main::@1 main::@2 main::@5 @begin -main::@return dominated by main::@7 @25 main::@8 main main::@1 main::@2 main::@5 @begin main::@return -print_str dominated by @25 main main::@1 main::@5 @begin print_str -print_str::@1 dominated by @25 main main::@1 main::@5 @begin print_str::@1 print_str -print_str::@return dominated by @25 main main::@1 main::@5 @begin print_str::@return print_str::@1 print_str -print_str::@2 dominated by @25 main main::@1 main::@5 @begin print_str::@1 print_str::@2 print_str -print_sword dominated by @25 main main::@1 main::@2 main::@5 @begin print_sword -print_sword::@2 dominated by @25 print_sword::@2 main main::@1 main::@2 main::@5 @begin print_sword -print_sword::@4 dominated by @25 print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 @begin print_sword -print_sword::@1 dominated by @25 print_sword::@1 main main::@1 main::@2 main::@5 @begin print_sword -print_sword::@return dominated by @25 print_sword::@1 main main::@1 main::@2 main::@5 @begin print_sword::@return print_sword -print_word dominated by @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_sword -print_word::@1 dominated by @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_word::@1 print_sword -print_word::@return dominated by @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_word::@return print_word::@1 print_sword -print_byte dominated by @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte print_sword -print_byte::@1 dominated by @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte::@1 print_byte print_sword -print_byte::@return dominated by @25 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte::@return print_byte::@1 print_byte print_sword -print_char dominated by @25 main print_char main::@1 main::@2 main::@5 @begin print_sword -print_char::@return dominated by @25 main print_char main::@1 main::@2 main::@5 print_char::@return @begin print_sword -print_cls dominated by @25 main main::@5 @begin print_cls -print_cls::@1 dominated by @25 main main::@5 @begin print_cls::@1 print_cls -print_cls::@return dominated by @25 main main::@5 @begin print_cls::@return print_cls::@1 print_cls -sin16s_gen dominated by @25 main @begin sin16s_gen -sin16s_gen::@9 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen -sin16s_gen::@1 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 -sin16s_gen::@5 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 sin16s_gen::@5 -sin16s_gen::@2 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 sin16s_gen::@2 -sin16s_gen::@6 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@6 -sin16s_gen::@3 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 -sin16s_gen::@10 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@10 -sin16s_gen::@11 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@10 sin16s_gen::@11 -sin16s_gen::@12 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@12 sin16s_gen::@10 sin16s_gen::@11 -sin16s_gen::@13 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 -sin16s_gen::@14 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 -sin16s_gen::@15 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 -sin16s_gen::@7 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@7 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 -sin16s_gen::@4 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 -sin16s_gen::@return dominated by @25 main sin16s_gen::@9 sin16s_gen::@return @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 -sin16s_gen::@19 dominated by @25 sin16s_gen::@19 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 sin16s_gen::@14 sin16s_gen::@15 sin16s_gen::@12 sin16s_gen::@13 sin16s_gen::@10 sin16s_gen::@11 -sin16s_gen::@17 dominated by @25 main sin16s_gen::@9 @begin sin16s_gen sin16s_gen::@1 sin16s_gen::@17 -mul_u16_sel dominated by @25 main sin16s_gen::@9 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 -mul_u16_sel::@2 dominated by @25 main sin16s_gen::@9 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 mul_u16_sel::@2 -mul_u16_sel::@return dominated by @25 main sin16s_gen::@9 mul_u16_sel @begin mul_u16_sel::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 mul_u16_sel::@2 -mul16u dominated by @25 main sin16s_gen::@9 mul16u mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 -mul16u::@1 dominated by @25 main sin16s_gen::@9 mul16u mul16u::@1 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 -mul16u::@return dominated by @25 main sin16s_gen::@9 mul16u mul16u::@1 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 mul16u::@return -mul16u::@2 dominated by @25 main sin16s_gen::@9 mul16u mul16u::@1 mul16u::@2 mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 -mul16u::@7 dominated by @25 main sin16s_gen::@9 mul16u mul16u::@1 mul16u::@2 mul_u16_sel @begin mul16u::@7 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 -mul16u::@4 dominated by @25 main sin16s_gen::@9 mul16u mul16u::@1 mul16u::@2 mul_u16_sel @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@2 -div32u16u dominated by @25 main @begin sin16s_gen div32u16u -div32u16u::@2 dominated by @25 main div32u16u::@2 @begin sin16s_gen div32u16u -div32u16u::@3 dominated by @25 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u -div32u16u::@return dominated by @25 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u div32u16u::@return -divr16u dominated by divr16u @25 main @begin sin16s_gen div32u16u -divr16u::@1 dominated by divr16u @25 divr16u::@1 main @begin sin16s_gen div32u16u -divr16u::@4 dominated by divr16u @25 divr16u::@1 main divr16u::@4 @begin sin16s_gen div32u16u -divr16u::@2 dominated by divr16u @25 divr16u::@2 divr16u::@1 main @begin sin16s_gen div32u16u -divr16u::@5 dominated by divr16u @25 divr16u::@2 divr16u::@1 main divr16u::@5 @begin sin16s_gen div32u16u -divr16u::@3 dominated by divr16u @25 divr16u::@2 divr16u::@1 main divr16u::@3 @begin sin16s_gen div32u16u -divr16u::@6 dominated by divr16u @25 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u -divr16u::@return dominated by divr16u @25 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u divr16u::@return +@26 dominated by @26 @begin +@end dominated by @26 @end @begin +main dominated by @26 main @begin +main::@5 dominated by @26 main main::@5 @begin +main::@1 dominated by @26 main main::@1 main::@5 @begin +main::@3 dominated by @26 main main::@1 main::@5 main::@3 @begin +main::@2 dominated by @26 main main::@1 main::@2 main::@5 @begin +main::@7 dominated by main::@7 @26 main main::@1 main::@2 main::@5 @begin +main::@8 dominated by main::@7 main::@8 @26 main main::@1 main::@2 main::@5 @begin +main::@return dominated by main::@7 main::@8 @26 main main::@1 main::@2 main::@5 @begin main::@return +print_str dominated by @26 main main::@1 main::@5 @begin print_str +print_str::@1 dominated by @26 main main::@1 main::@5 @begin print_str::@1 print_str +print_str::@return dominated by @26 main main::@1 main::@5 @begin print_str::@return print_str::@1 print_str +print_str::@2 dominated by @26 main main::@1 main::@5 @begin print_str::@1 print_str::@2 print_str +print_sword dominated by @26 main main::@1 main::@2 main::@5 @begin print_sword +print_sword::@2 dominated by @26 print_sword::@2 main main::@1 main::@2 main::@5 @begin print_sword +print_sword::@4 dominated by @26 print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 @begin print_sword +print_sword::@1 dominated by @26 print_sword::@1 main main::@1 main::@2 main::@5 @begin print_sword +print_sword::@return dominated by @26 print_sword::@1 main main::@1 main::@2 main::@5 @begin print_sword::@return print_sword +print_word dominated by @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_sword +print_word::@1 dominated by @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_word::@1 print_sword +print_word::@return dominated by @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_word::@return print_word::@1 print_sword +print_byte dominated by @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte print_sword +print_byte::@1 dominated by @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte::@1 print_byte print_sword +print_byte::@return dominated by @26 print_sword::@1 main print_word main::@1 main::@2 main::@5 @begin print_byte::@return print_byte::@1 print_byte print_sword +print_char dominated by @26 main print_char main::@1 main::@2 main::@5 @begin print_sword +print_char::@return dominated by @26 main print_char main::@1 main::@2 main::@5 print_char::@return @begin print_sword +print_cls dominated by @26 main main::@5 @begin print_cls +print_cls::@1 dominated by @26 main main::@5 @begin print_cls::@1 print_cls +print_cls::@return dominated by @26 main main::@5 @begin print_cls::@return print_cls::@1 print_cls +sin16s_gen dominated by @26 main @begin sin16s_gen +sin16s_gen::@3 dominated by @26 main @begin sin16s_gen sin16s_gen::@3 +sin16s_gen::@1 dominated by @26 main @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 +sin16s_gen::@4 dominated by @26 main @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 +sin16s_gen::@return dominated by @26 main sin16s_gen::@return @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 +sin16s dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 +sin16s::@4 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4 +sin16s::@1 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 +sin16s::@5 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5 +sin16s::@2 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 +sin16s::@8 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2 +sin16s::@9 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 +sin16s::@10 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2 +sin16s::@11 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@11 sin16s::@10 sin16s::@2 +sin16s::@12 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2 +sin16s::@13 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@13 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2 +sin16s::@6 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@13 sin16s::@6 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2 +sin16s::@3 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@13 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2 +sin16s::@return dominated by @26 main sin16s @begin sin16s::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@13 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2 +sin16s::@16 dominated by @26 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@16 sin16s::@8 sin16s::@13 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2 +mul_u16_sel dominated by @26 main sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 +mul_u16_sel::@2 dominated by @26 main sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 mul_u16_sel::@2 +mul_u16_sel::@return dominated by @26 main sin16s mul_u16_sel @begin mul_u16_sel::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 mul_u16_sel::@2 +mul16u dominated by @26 main mul16u sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 +mul16u::@1 dominated by @26 main mul16u mul16u::@1 sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 +mul16u::@return dominated by @26 main mul16u mul16u::@1 sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 mul16u::@return +mul16u::@2 dominated by @26 main mul16u mul16u::@1 mul16u::@2 sin16s mul_u16_sel @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 +mul16u::@7 dominated by @26 main mul16u mul16u::@1 mul16u::@2 sin16s mul_u16_sel @begin mul16u::@7 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 +mul16u::@4 dominated by @26 main mul16u mul16u::@1 mul16u::@2 sin16s mul_u16_sel @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 +div32u16u dominated by @26 main @begin sin16s_gen div32u16u +div32u16u::@2 dominated by @26 main div32u16u::@2 @begin sin16s_gen div32u16u +div32u16u::@3 dominated by @26 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u +div32u16u::@return dominated by @26 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u div32u16u::@return +divr16u dominated by divr16u @26 main @begin sin16s_gen div32u16u +divr16u::@1 dominated by divr16u @26 divr16u::@1 main @begin sin16s_gen div32u16u +divr16u::@4 dominated by divr16u @26 divr16u::@1 main divr16u::@4 @begin sin16s_gen div32u16u +divr16u::@2 dominated by divr16u @26 divr16u::@2 divr16u::@1 main @begin sin16s_gen div32u16u +divr16u::@5 dominated by divr16u @26 divr16u::@2 divr16u::@1 main divr16u::@5 @begin sin16s_gen div32u16u +divr16u::@3 dominated by divr16u @26 divr16u::@2 divr16u::@1 main divr16u::@3 @begin sin16s_gen div32u16u +divr16u::@6 dominated by divr16u @26 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u +divr16u::@return dominated by divr16u @26 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u divr16u::@return NATURAL LOOPS Found back edge: Loop head: main::@1 tails: main::@8 blocks: null @@ -5167,13 +5086,13 @@ Found back edge: Loop head: divr16u::@1 tails: divr16u::@3 blocks: null Populated: Loop head: main::@1 tails: main::@8 blocks: main::@8 main::@7 main::@2 main::@1 main::@3 Populated: Loop head: print_str::@1 tails: print_str::@2 blocks: print_str::@2 print_str::@1 Populated: Loop head: print_cls::@1 tails: print_cls::@1 blocks: print_cls::@1 -Populated: Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@19 sin16s_gen::@7 sin16s_gen::@15 sin16s_gen::@14 sin16s_gen::@13 sin16s_gen::@12 sin16s_gen::@11 sin16s_gen::@10 sin16s_gen::@3 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@17 sin16s_gen::@5 sin16s_gen::@1 +Populated: Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@1 Populated: Loop head: mul16u::@1 tails: mul16u::@4 blocks: mul16u::@4 mul16u::@2 mul16u::@7 mul16u::@1 Populated: Loop head: divr16u::@1 tails: divr16u::@3 blocks: divr16u::@3 divr16u::@2 divr16u::@5 divr16u::@1 divr16u::@4 Loop head: main::@1 tails: main::@8 blocks: main::@8 main::@7 main::@2 main::@1 main::@3 Loop head: print_str::@1 tails: print_str::@2 blocks: print_str::@2 print_str::@1 Loop head: print_cls::@1 tails: print_cls::@1 blocks: print_cls::@1 -Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@19 sin16s_gen::@7 sin16s_gen::@15 sin16s_gen::@14 sin16s_gen::@13 sin16s_gen::@12 sin16s_gen::@11 sin16s_gen::@10 sin16s_gen::@3 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@17 sin16s_gen::@5 sin16s_gen::@1 +Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@1 Loop head: mul16u::@1 tails: mul16u::@4 blocks: mul16u::@4 mul16u::@2 mul16u::@7 mul16u::@1 Loop head: divr16u::@1 tails: divr16u::@3 blocks: divr16u::@3 divr16u::@2 divr16u::@5 divr16u::@1 divr16u::@4 @@ -5182,25 +5101,26 @@ Found 0 loops in scope [] Found 1 loops in scope [main] Loop head: main::@1 tails: main::@8 blocks: main::@8 main::@7 main::@2 main::@1 main::@3 Found 1 loops in scope [sin16s_gen] - Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@19 sin16s_gen::@7 sin16s_gen::@15 sin16s_gen::@14 sin16s_gen::@13 sin16s_gen::@12 sin16s_gen::@11 sin16s_gen::@10 sin16s_gen::@3 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@17 sin16s_gen::@5 sin16s_gen::@1 + Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@1 Found 1 loops in scope [print_cls] Loop head: print_cls::@1 tails: print_cls::@1 blocks: print_cls::@1 Found 1 loops in scope [print_str] Loop head: print_str::@1 tails: print_str::@2 blocks: print_str::@2 print_str::@1 Found 0 loops in scope [print_sword] Found 0 loops in scope [div32u16u] -Found 0 loops in scope [mul_u16_sel] +Found 0 loops in scope [sin16s] Found 0 loops in scope [print_char] Found 0 loops in scope [print_word] Found 1 loops in scope [divr16u] Loop head: divr16u::@1 tails: divr16u::@3 blocks: divr16u::@3 divr16u::@2 divr16u::@5 divr16u::@1 divr16u::@4 +Found 0 loops in scope [mul_u16_sel] +Found 0 loops in scope [print_byte] Found 1 loops in scope [mul16u] Loop head: mul16u::@1 tails: mul16u::@4 blocks: mul16u::@4 mul16u::@2 mul16u::@7 mul16u::@1 -Found 0 loops in scope [print_byte] Loop head: main::@1 tails: main::@8 blocks: main::@8 main::@7 main::@2 main::@1 main::@3 depth: 1 Loop head: print_str::@1 tails: print_str::@2 blocks: print_str::@2 print_str::@1 depth: 2 Loop head: print_cls::@1 tails: print_cls::@1 blocks: print_cls::@1 depth: 1 -Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@19 sin16s_gen::@7 sin16s_gen::@15 sin16s_gen::@14 sin16s_gen::@13 sin16s_gen::@12 sin16s_gen::@11 sin16s_gen::@10 sin16s_gen::@3 sin16s_gen::@2 sin16s_gen::@6 sin16s_gen::@17 sin16s_gen::@5 sin16s_gen::@1 depth: 1 +Loop head: sin16s_gen::@1 tails: sin16s_gen::@4 blocks: sin16s_gen::@4 sin16s_gen::@1 depth: 1 Loop head: mul16u::@1 tails: mul16u::@4 blocks: mul16u::@4 mul16u::@2 mul16u::@7 mul16u::@1 depth: 2 Loop head: divr16u::@1 tails: divr16u::@3 blocks: divr16u::@3 divr16u::@2 divr16u::@5 divr16u::@1 divr16u::@4 depth: 1 @@ -5291,29 +5211,29 @@ VARIABLE REGISTER WEIGHTS (dword~) mul_u16_sel::$0 4.0 (dword~) mul_u16_sel::$1 4.0 (word) mul_u16_sel::return -(word) mul_u16_sel::return#0 22.0 -(word) mul_u16_sel::return#1 22.0 -(word) mul_u16_sel::return#10 22.0 -(word) mul_u16_sel::return#11 22.0 -(word) mul_u16_sel::return#12 22.0 -(word) mul_u16_sel::return#13 22.0 -(word) mul_u16_sel::return#14 8.5 +(word) mul_u16_sel::return#0 4.0 +(word) mul_u16_sel::return#1 4.0 +(word) mul_u16_sel::return#10 4.0 +(word) mul_u16_sel::return#11 4.0 +(word) mul_u16_sel::return#12 4.0 +(word) mul_u16_sel::return#13 4.0 +(word) mul_u16_sel::return#14 1.75 (byte) mul_u16_sel::select (byte) mul_u16_sel::select#6 0.3333333333333333 (word) mul_u16_sel::v1 -(word) mul_u16_sel::v1#0 11.0 -(word) mul_u16_sel::v1#1 11.0 -(word) mul_u16_sel::v1#2 22.0 -(word) mul_u16_sel::v1#3 11.0 -(word) mul_u16_sel::v1#4 11.0 -(word) mul_u16_sel::v1#5 22.0 -(word) mul_u16_sel::v1#6 68.0 +(word) mul_u16_sel::v1#0 2.0 +(word) mul_u16_sel::v1#1 2.0 +(word) mul_u16_sel::v1#2 4.0 +(word) mul_u16_sel::v1#3 2.0 +(word) mul_u16_sel::v1#4 2.0 +(word) mul_u16_sel::v1#5 4.0 +(word) mul_u16_sel::v1#6 14.0 (word) mul_u16_sel::v2 -(word) mul_u16_sel::v2#0 22.0 -(word) mul_u16_sel::v2#1 22.0 -(word) mul_u16_sel::v2#3 22.0 -(word) mul_u16_sel::v2#4 22.0 -(word) mul_u16_sel::v2#6 23.0 +(word) mul_u16_sel::v2#0 4.0 +(word) mul_u16_sel::v2#1 4.0 +(word) mul_u16_sel::v2#3 4.0 +(word) mul_u16_sel::v2#4 4.0 +(word) mul_u16_sel::v2#6 5.0 (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 4.0 (byte~) print_byte::$2 4.0 @@ -5345,49 +5265,53 @@ VARIABLE REGISTER WEIGHTS (word) print_word::w (word) rem16u (word) rem16u#1 0.8 +(signed word()) sin16s((dword) sin16s::x) +(dword~) sin16s::$6 4.0 +(byte) sin16s::isUpper +(byte) sin16s::isUpper#10 0.05555555555555555 +(signed word) sin16s::return +(signed word) sin16s::return#0 22.0 +(signed word) sin16s::return#1 5.0 +(signed word~) sin16s::return#5 4.0 +(signed word) sin16s::sinx +(signed word) sin16s::sinx#1 4.0 +(word) sin16s::usinx +(word) sin16s::usinx#0 0.26666666666666666 +(word) sin16s::usinx#1 1.0 +(dword) sin16s::x +(dword) sin16s::x#0 8.5 +(dword) sin16s::x#1 4.0 +(dword) sin16s::x#2 4.0 +(dword) sin16s::x#4 5.0 +(dword) sin16s::x#6 6.0 +(word) sin16s::x1 +(word) sin16s::x1#0 0.6363636363636365 +(word) sin16s::x2 +(word) sin16s::x2#0 4.0 +(word) sin16s::x3 +(word) sin16s::x3#0 1.0 +(word) sin16s::x3_6 +(word) sin16s::x3_6#0 4.0 +(word) sin16s::x4 +(word) sin16s::x4#0 4.0 +(word) sin16s::x5 +(word) sin16s::x5#0 4.0 +(word) sin16s::x5_128 +(word) sin16s::x5_128#0 4.0 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength) -(dword~) sin16s_gen::$7 22.0 +(signed word~) sin16s_gen::$1 22.0 (word) sin16s_gen::i (word) sin16s_gen::i#1 16.5 -(word) sin16s_gen::i#10 0.46808510638297873 -(byte) sin16s_gen::isUpper -(byte) sin16s_gen::isUpper#10 0.3055555555555556 +(word) sin16s_gen::i#2 2.75 (signed word*) sin16s_gen::sintab (signed word*) sin16s_gen::sintab#1 5.5 -(signed word*) sin16s_gen::sintab#10 0.7333333333333333 -(signed word) sin16s_gen::sinx -(signed word) sin16s_gen::sinx#1 22.0 -(signed word) sin16s_gen::sinx#2 33.0 -(signed word~) sin16s_gen::sinx#3 22.0 +(signed word*) sin16s_gen::sintab#2 5.5 (dword) sin16s_gen::step -(dword) sin16s_gen::step#0 0.26 -(word) sin16s_gen::usinx -(word) sin16s_gen::usinx#0 1.4666666666666666 -(word) sin16s_gen::usinx#1 5.5 +(dword) sin16s_gen::step#0 1.1818181818181819 (word) sin16s_gen::wavelength (dword) sin16s_gen::x (dword) sin16s_gen::x#1 7.333333333333333 -(dword) sin16s_gen::x#10 1.1956521739130435 -(word) sin16s_gen::x1 -(word) sin16s_gen::x1#0 3.5 -(word) sin16s_gen::x2 -(word) sin16s_gen::x2#0 22.0 -(word) sin16s_gen::x3 -(word) sin16s_gen::x3#0 5.5 -(word) sin16s_gen::x3_6 -(word) sin16s_gen::x3_6#0 22.0 -(word) sin16s_gen::x4 -(word) sin16s_gen::x4#0 22.0 -(word) sin16s_gen::x5 -(word) sin16s_gen::x5#0 22.0 -(word) sin16s_gen::x5_128 -(word) sin16s_gen::x5_128#0 22.0 -(dword) sin16s_gen::xp -(dword) sin16s_gen::xp#1 22.0 -(dword) sin16s_gen::xp#2 22.0 -(dword) sin16s_gen::xp#3 27.5 -(dword) sin16s_gen::xp#5 33.0 -(dword~) sin16s_gen::xp#7 22.0 +(dword) sin16s_gen::x#2 4.714285714285714 Initial phi equivalence classes [ main::st1#2 main::st1#1 ] @@ -5397,14 +5321,14 @@ Initial phi equivalence classes [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] [ 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 ] [ print_cls::sc#2 print_cls::sc#1 ] -[ sin16s_gen::x#10 sin16s_gen::x#1 ] -[ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] -[ sin16s_gen::i#10 sin16s_gen::i#1 ] -[ sin16s_gen::isUpper#10 ] -[ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] -[ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] -[ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] -[ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] +[ sin16s_gen::x#2 sin16s_gen::x#1 ] +[ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] +[ sin16s_gen::i#2 sin16s_gen::i#1 ] +[ sin16s::isUpper#10 ] +[ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] +[ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] +[ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] +[ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] [ mul_u16_sel::select#6 ] [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] @@ -5419,22 +5343,24 @@ Added variable print_byte::$0 to zero page equivalence class [ print_byte::$0 ] Added variable print_byte::$2 to zero page equivalence class [ print_byte::$2 ] Added variable div32u16u::return#0 to zero page equivalence class [ div32u16u::return#0 ] Added variable sin16s_gen::step#0 to zero page equivalence class [ sin16s_gen::step#0 ] -Added variable sin16s_gen::$7 to zero page equivalence class [ sin16s_gen::$7 ] -Added variable sin16s_gen::x1#0 to zero page equivalence class [ sin16s_gen::x1#0 ] +Added variable sin16s::return#0 to zero page equivalence class [ sin16s::return#0 ] +Added variable sin16s_gen::$1 to zero page equivalence class [ sin16s_gen::$1 ] +Added variable sin16s::$6 to zero page equivalence class [ sin16s::$6 ] +Added variable sin16s::x1#0 to zero page equivalence class [ sin16s::x1#0 ] Added variable mul_u16_sel::return#0 to zero page equivalence class [ mul_u16_sel::return#0 ] -Added variable sin16s_gen::x2#0 to zero page equivalence class [ sin16s_gen::x2#0 ] +Added variable sin16s::x2#0 to zero page equivalence class [ sin16s::x2#0 ] Added variable mul_u16_sel::return#1 to zero page equivalence class [ mul_u16_sel::return#1 ] -Added variable sin16s_gen::x3#0 to zero page equivalence class [ sin16s_gen::x3#0 ] +Added variable sin16s::x3#0 to zero page equivalence class [ sin16s::x3#0 ] Added variable mul_u16_sel::return#10 to zero page equivalence class [ mul_u16_sel::return#10 ] -Added variable sin16s_gen::x3_6#0 to zero page equivalence class [ sin16s_gen::x3_6#0 ] -Added variable sin16s_gen::usinx#0 to zero page equivalence class [ sin16s_gen::usinx#0 ] +Added variable sin16s::x3_6#0 to zero page equivalence class [ sin16s::x3_6#0 ] +Added variable sin16s::usinx#0 to zero page equivalence class [ sin16s::usinx#0 ] Added variable mul_u16_sel::return#11 to zero page equivalence class [ mul_u16_sel::return#11 ] -Added variable sin16s_gen::x4#0 to zero page equivalence class [ sin16s_gen::x4#0 ] +Added variable sin16s::x4#0 to zero page equivalence class [ sin16s::x4#0 ] Added variable mul_u16_sel::return#12 to zero page equivalence class [ mul_u16_sel::return#12 ] -Added variable sin16s_gen::x5#0 to zero page equivalence class [ sin16s_gen::x5#0 ] +Added variable sin16s::x5#0 to zero page equivalence class [ sin16s::x5#0 ] Added variable mul_u16_sel::return#13 to zero page equivalence class [ mul_u16_sel::return#13 ] -Added variable sin16s_gen::x5_128#0 to zero page equivalence class [ sin16s_gen::x5_128#0 ] -Added variable sin16s_gen::usinx#1 to zero page equivalence class [ sin16s_gen::usinx#1 ] +Added variable sin16s::x5_128#0 to zero page equivalence class [ sin16s::x5_128#0 ] +Added variable sin16s::usinx#1 to zero page equivalence class [ sin16s::usinx#1 ] Added variable mul16u::b#0 to zero page equivalence class [ mul16u::b#0 ] Added variable mul16u::return#2 to zero page equivalence class [ mul16u::return#2 ] Added variable mul_u16_sel::$0 to zero page equivalence class [ mul_u16_sel::$0 ] @@ -5457,14 +5383,14 @@ Complete equivalence classes [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] [ 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 ] [ print_cls::sc#2 print_cls::sc#1 ] -[ sin16s_gen::x#10 sin16s_gen::x#1 ] -[ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] -[ sin16s_gen::i#10 sin16s_gen::i#1 ] -[ sin16s_gen::isUpper#10 ] -[ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] -[ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] -[ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] -[ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] +[ sin16s_gen::x#2 sin16s_gen::x#1 ] +[ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] +[ sin16s_gen::i#2 sin16s_gen::i#1 ] +[ sin16s::isUpper#10 ] +[ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] +[ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] +[ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] +[ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] [ mul_u16_sel::select#6 ] [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] @@ -5479,22 +5405,24 @@ Complete equivalence classes [ print_byte::$2 ] [ div32u16u::return#0 ] [ sin16s_gen::step#0 ] -[ sin16s_gen::$7 ] -[ sin16s_gen::x1#0 ] +[ sin16s::return#0 ] +[ sin16s_gen::$1 ] +[ sin16s::$6 ] +[ sin16s::x1#0 ] [ mul_u16_sel::return#0 ] -[ sin16s_gen::x2#0 ] +[ sin16s::x2#0 ] [ mul_u16_sel::return#1 ] -[ sin16s_gen::x3#0 ] +[ sin16s::x3#0 ] [ mul_u16_sel::return#10 ] -[ sin16s_gen::x3_6#0 ] -[ sin16s_gen::usinx#0 ] +[ sin16s::x3_6#0 ] +[ sin16s::usinx#0 ] [ mul_u16_sel::return#11 ] -[ sin16s_gen::x4#0 ] +[ sin16s::x4#0 ] [ mul_u16_sel::return#12 ] -[ sin16s_gen::x5#0 ] +[ sin16s::x5#0 ] [ mul_u16_sel::return#13 ] -[ sin16s_gen::x5_128#0 ] -[ sin16s_gen::usinx#1 ] +[ sin16s::x5_128#0 ] +[ sin16s::usinx#1 ] [ mul16u::b#0 ] [ mul16u::return#2 ] [ mul_u16_sel::$0 ] @@ -5516,14 +5444,14 @@ Allocated zp ZP_BYTE:8 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Allocated zp ZP_BYTE:9 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] Allocated zp ZP_WORD:10 [ 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 ] Allocated zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] -Allocated zp ZP_DWORD:14 [ sin16s_gen::x#10 sin16s_gen::x#1 ] -Allocated zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] -Allocated zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ] -Allocated zp ZP_BYTE:22 [ sin16s_gen::isUpper#10 ] -Allocated zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] -Allocated zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] -Allocated zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] -Allocated zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] +Allocated zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ] +Allocated zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] +Allocated zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] +Allocated zp ZP_BYTE:22 [ sin16s::isUpper#10 ] +Allocated zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] +Allocated zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] +Allocated zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] +Allocated zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] Allocated zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] Allocated zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] Allocated zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] @@ -5538,36 +5466,38 @@ Allocated zp ZP_BYTE:55 [ print_byte::$0 ] Allocated zp ZP_BYTE:56 [ print_byte::$2 ] Allocated zp ZP_DWORD:57 [ div32u16u::return#0 ] Allocated zp ZP_DWORD:61 [ sin16s_gen::step#0 ] -Allocated zp ZP_DWORD:65 [ sin16s_gen::$7 ] -Allocated zp ZP_WORD:69 [ sin16s_gen::x1#0 ] -Allocated zp ZP_WORD:71 [ mul_u16_sel::return#0 ] -Allocated zp ZP_WORD:73 [ sin16s_gen::x2#0 ] -Allocated zp ZP_WORD:75 [ mul_u16_sel::return#1 ] -Allocated zp ZP_WORD:77 [ sin16s_gen::x3#0 ] -Allocated zp ZP_WORD:79 [ mul_u16_sel::return#10 ] -Allocated zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ] -Allocated zp ZP_WORD:83 [ sin16s_gen::usinx#0 ] -Allocated zp ZP_WORD:85 [ mul_u16_sel::return#11 ] -Allocated zp ZP_WORD:87 [ sin16s_gen::x4#0 ] -Allocated zp ZP_WORD:89 [ mul_u16_sel::return#12 ] -Allocated zp ZP_WORD:91 [ sin16s_gen::x5#0 ] -Allocated zp ZP_WORD:93 [ mul_u16_sel::return#13 ] -Allocated zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ] -Allocated zp ZP_WORD:97 [ sin16s_gen::usinx#1 ] -Allocated zp ZP_WORD:99 [ mul16u::b#0 ] -Allocated zp ZP_DWORD:101 [ mul16u::return#2 ] -Allocated zp ZP_DWORD:105 [ mul_u16_sel::$0 ] -Allocated zp ZP_DWORD:109 [ mul_u16_sel::$1 ] -Allocated zp ZP_WORD:113 [ mul_u16_sel::return#14 ] -Allocated zp ZP_BYTE:115 [ mul16u::$1 ] -Allocated zp ZP_WORD:116 [ divr16u::return#2 ] -Allocated zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ] -Allocated zp ZP_WORD:120 [ divr16u::return#3 ] -Allocated zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] -Allocated zp ZP_DWORD:124 [ div32u16u::return#1 ] -Allocated zp ZP_BYTE:128 [ divr16u::$1 ] -Allocated zp ZP_BYTE:129 [ divr16u::$2 ] -Allocated zp ZP_WORD:130 [ rem16u#1 ] +Allocated zp ZP_WORD:65 [ sin16s::return#0 ] +Allocated zp ZP_WORD:67 [ sin16s_gen::$1 ] +Allocated zp ZP_DWORD:69 [ sin16s::$6 ] +Allocated zp ZP_WORD:73 [ sin16s::x1#0 ] +Allocated zp ZP_WORD:75 [ mul_u16_sel::return#0 ] +Allocated zp ZP_WORD:77 [ sin16s::x2#0 ] +Allocated zp ZP_WORD:79 [ mul_u16_sel::return#1 ] +Allocated zp ZP_WORD:81 [ sin16s::x3#0 ] +Allocated zp ZP_WORD:83 [ mul_u16_sel::return#10 ] +Allocated zp ZP_WORD:85 [ sin16s::x3_6#0 ] +Allocated zp ZP_WORD:87 [ sin16s::usinx#0 ] +Allocated zp ZP_WORD:89 [ mul_u16_sel::return#11 ] +Allocated zp ZP_WORD:91 [ sin16s::x4#0 ] +Allocated zp ZP_WORD:93 [ mul_u16_sel::return#12 ] +Allocated zp ZP_WORD:95 [ sin16s::x5#0 ] +Allocated zp ZP_WORD:97 [ mul_u16_sel::return#13 ] +Allocated zp ZP_WORD:99 [ sin16s::x5_128#0 ] +Allocated zp ZP_WORD:101 [ sin16s::usinx#1 ] +Allocated zp ZP_WORD:103 [ mul16u::b#0 ] +Allocated zp ZP_DWORD:105 [ mul16u::return#2 ] +Allocated zp ZP_DWORD:109 [ mul_u16_sel::$0 ] +Allocated zp ZP_DWORD:113 [ mul_u16_sel::$1 ] +Allocated zp ZP_WORD:117 [ mul_u16_sel::return#14 ] +Allocated zp ZP_BYTE:119 [ mul16u::$1 ] +Allocated zp ZP_WORD:120 [ divr16u::return#2 ] +Allocated zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ] +Allocated zp ZP_WORD:124 [ divr16u::return#3 ] +Allocated zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ] +Allocated zp ZP_DWORD:128 [ div32u16u::return#1 ] +Allocated zp ZP_BYTE:132 [ divr16u::$1 ] +Allocated zp ZP_BYTE:133 [ divr16u::$2 ] +Allocated zp ZP_WORD:134 [ rem16u#1 ] INITIAL ASM //SEG0 Basic Upstart @@ -5579,21 +5509,21 @@ INITIAL ASM .const PI2_u4f28 = $6487ed51 .const PI_u4f28 = $3243f6a9 .const PI_HALF_u4f28 = $1921fb54 - .label rem16u = $82 + .label rem16u = $86 .label char_cursor = $a //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] -b25_from_bbegin: - jmp b25 -//SEG4 @25 -b25: +//SEG3 [1] phi from @begin to @26 [phi:@begin->@26] +b26_from_bbegin: + jmp b26 +//SEG4 @26 +b26: //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @25 to main [phi:@25->main] -main_from_b25: +//SEG6 [4] phi from @26 to main [phi:@26->main] +main_from_b26: jsr main -//SEG7 [3] phi from @25 to @end [phi:@25->@end] -bend_from_b25: +//SEG7 [3] phi from @26 to @end [phi:@26->@end] +bend_from_b26: jmp bend //SEG8 @end bend: @@ -5940,25 +5870,13 @@ print_cls: { } //SEG122 sin16s_gen sin16s_gen: { - .label _7 = $41 + .label _1 = $43 .label step = $3d - .label xp = $17 - .label x1 = $45 - .label x2 = $49 - .label x3 = $4d - .label x3_6 = $51 - .label usinx = $53 - .label x4 = $57 - .label x5 = $5b - .label x5_128 = $5f - .label usinx_1 = $61 .label sintab = $12 .label x = $e .label i = $14 - .label sinx = $1b - .label isUpper = $16 //SEG123 [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] ) - //SEG124 [131] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u] + //SEG124 [135] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u] div32u16u_from_sin16s_gen: jsr div32u16u //SEG125 [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) -- vduz1=vduz2 @@ -5970,9 +5888,9 @@ sin16s_gen: { sta div32u16u.return+2 lda div32u16u.return_1+3 sta div32u16u.return+3 - jmp b9 - //SEG126 sin16s_gen::@9 - b9: + jmp b3 + //SEG126 sin16s_gen::@3 + b3: //SEG127 [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) -- vduz1=vduz2 lda div32u16u.return sta step @@ -5982,19 +5900,19 @@ sin16s_gen: { sta step+2 lda div32u16u.return+3 sta step+3 - //SEG128 [62] phi from sin16s_gen::@9 to sin16s_gen::@1 [phi:sin16s_gen::@9->sin16s_gen::@1] - b1_from_b9: - //SEG129 [62] phi (word) sin16s_gen::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#0] -- vwuz1=vbuc1 + //SEG128 [62] phi from sin16s_gen::@3 to sin16s_gen::@1 [phi:sin16s_gen::@3->sin16s_gen::@1] + b1_from_b3: + //SEG129 [62] phi (word) sin16s_gen::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#0] -- vwuz1=vbuc1 lda #<0 sta i lda #>0 sta i+1 - //SEG130 [62] phi (signed word*) sin16s_gen::sintab#10 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@9->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG130 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #<main.sintab1 sta sintab lda #>main.sintab1 sta sintab+1 - //SEG131 [62] phi (dword) sin16s_gen::x#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#2] -- vduz1=vbuc1 + //SEG131 [62] phi (dword) sin16s_gen::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#2] -- vduz1=vbuc1 lda #0 sta x lda #0 @@ -6004,359 +5922,44 @@ sin16s_gen: { jmp b1 //SEG132 [62] phi from sin16s_gen::@4 to sin16s_gen::@1 [phi:sin16s_gen::@4->sin16s_gen::@1] b1_from_b4: - //SEG133 [62] phi (word) sin16s_gen::i#10 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy - //SEG134 [62] phi (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy - //SEG135 [62] phi (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy + //SEG133 [62] phi (word) sin16s_gen::i#2 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy + //SEG134 [62] phi (signed word*) sin16s_gen::sintab#2 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy + //SEG135 [62] phi (dword) sin16s_gen::x#2 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy jmp b1 //SEG136 sin16s_gen::@1 b1: - //SEG137 [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- vduz1_lt_vduc1_then_la1 - lda x+3 - cmp #>PI_u4f28>>$10 - bcc b17 - bne !+ - lda x+2 - cmp #<PI_u4f28>>$10 - bcc b17 - bne !+ - lda x+1 - cmp #>PI_u4f28 - bcc b17 - bne !+ + //SEG137 [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 ] ) -- vduz1=vduz2 lda x - cmp #<PI_u4f28 - bcc b17 - !: - jmp b5 - //SEG138 sin16s_gen::@5 - b5: - //SEG139 [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) -- vduz1=vduz2_minus_vduc1 - lda x - sec - sbc #<PI_u4f28 - sta xp + sta sin16s.x lda x+1 - sbc #>PI_u4f28 - sta xp+1 + sta sin16s.x+1 lda x+2 - sbc #<PI_u4f28>>$10 - sta xp+2 + sta sin16s.x+2 lda x+3 - sbc #>PI_u4f28>>$10 - sta xp+3 - //SEG140 [65] phi from sin16s_gen::@5 to sin16s_gen::@2 [phi:sin16s_gen::@5->sin16s_gen::@2] - b2_from_b5: - //SEG141 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@5->sin16s_gen::@2#0] -- vbuz1=vbuc1 - lda #1 - sta isUpper - //SEG142 [65] phi (dword) sin16s_gen::xp#3 = (dword) sin16s_gen::xp#1 [phi:sin16s_gen::@5->sin16s_gen::@2#1] -- register_copy - jmp b2 - //SEG143 sin16s_gen::@2 - b2: - //SEG144 [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 - lda xp+3 - cmp #>PI_HALF_u4f28>>$10 - bcc b3_from_b2 - bne !+ - lda xp+2 - cmp #<PI_HALF_u4f28>>$10 - bcc b3_from_b2 - bne !+ - lda xp+1 - cmp #>PI_HALF_u4f28 - bcc b3_from_b2 - bne !+ - lda xp - cmp #<PI_HALF_u4f28 - bcc b3_from_b2 - !: - jmp b6 - //SEG145 sin16s_gen::@6 - b6: - //SEG146 [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) -- vduz1=vduc1_minus_vduz1 - lda #<PI_u4f28 - sec - sbc xp - sta xp - lda #>PI_u4f28 - sbc xp+1 - sta xp+1 - lda #<PI_u4f28>>$10 - sbc xp+2 - sta xp+2 - lda #>PI_u4f28>>$10 - sbc xp+3 - sta xp+3 - //SEG147 [68] phi from sin16s_gen::@2 sin16s_gen::@6 to sin16s_gen::@3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3] - b3_from_b2: - b3_from_b6: - //SEG148 [68] phi (dword) sin16s_gen::xp#5 = (dword) sin16s_gen::xp#3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3#0] -- register_copy - jmp b3 - //SEG149 sin16s_gen::@3 - b3: - //SEG150 [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) -- vduz1=vduz2_rol_3 - lda xp - sta _7 - lda xp+1 - sta _7+1 - lda xp+2 - sta _7+2 - lda xp+3 - sta _7+3 - asl _7 - rol _7+1 - rol _7+2 - rol _7+3 - asl _7 - rol _7+1 - rol _7+2 - rol _7+3 - asl _7 - rol _7+1 - rol _7+2 - rol _7+3 - //SEG151 [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) -- vwuz1=_hi_vduz2 - lda _7+2 - sta x1 - lda _7+3 - sta x1+1 - //SEG152 [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v1 - lda x1+1 - sta mul_u16_sel.v1+1 - //SEG153 [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG154 [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - //SEG155 [112] phi from sin16s_gen::@3 to mul_u16_sel [phi:sin16s_gen::@3->mul_u16_sel] - mul_u16_sel_from_b3: - //SEG156 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->mul_u16_sel#0] -- vbuz1=vbuc1 - lda #0 - sta mul_u16_sel.select - //SEG157 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s_gen::@3->mul_u16_sel#1] -- register_copy - //SEG158 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s_gen::@3->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG159 [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - jmp b10 - //SEG160 sin16s_gen::@10 - b10: - //SEG161 [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return - sta x2 - lda mul_u16_sel.return+1 - sta x2+1 - //SEG162 [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) -- vwuz1=vwuz2 - lda x2 - sta mul_u16_sel.v1 - lda x2+1 - sta mul_u16_sel.v1+1 - //SEG163 [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG164 [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - //SEG165 [112] phi from sin16s_gen::@10 to mul_u16_sel [phi:sin16s_gen::@10->mul_u16_sel] - mul_u16_sel_from_b10: - //SEG166 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@10->mul_u16_sel#0] -- vbuz1=vbuc1 - lda #1 - sta mul_u16_sel.select - //SEG167 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s_gen::@10->mul_u16_sel#1] -- register_copy - //SEG168 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s_gen::@10->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG169 [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return_1 - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return_1+1 - jmp b11 - //SEG170 sin16s_gen::@11 - b11: - //SEG171 [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_1 - sta x3 - lda mul_u16_sel.return_1+1 - sta x3+1 - //SEG172 [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) -- vwuz1=vwuz2 - lda x3 - sta mul_u16_sel.v1 - lda x3+1 - sta mul_u16_sel.v1+1 - //SEG173 [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ) - //SEG174 [112] phi from sin16s_gen::@11 to mul_u16_sel [phi:sin16s_gen::@11->mul_u16_sel] - mul_u16_sel_from_b11: - //SEG175 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@11->mul_u16_sel#0] -- vbuz1=vbuc1 - lda #1 - sta mul_u16_sel.select - //SEG176 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s_gen::@11->mul_u16_sel#1] -- vwuz1=vwuc1 - lda #<$10000/6 - sta mul_u16_sel.v2 - lda #>$10000/6 - sta mul_u16_sel.v2+1 - //SEG177 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s_gen::@11->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG178 [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return_10 - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return_10+1 - jmp b12 - //SEG179 sin16s_gen::@12 - b12: - //SEG180 [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_10 - sta x3_6 - lda mul_u16_sel.return_10+1 - sta x3_6+1 - //SEG181 [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz3 - lda x1 - sec - sbc x3_6 - sta usinx - lda x1+1 - sbc x3_6+1 - sta usinx+1 - //SEG182 [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) -- vwuz1=vwuz2 - lda x3 - sta mul_u16_sel.v1 - lda x3+1 - sta mul_u16_sel.v1+1 - //SEG183 [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG184 [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - //SEG185 [112] phi from sin16s_gen::@12 to mul_u16_sel [phi:sin16s_gen::@12->mul_u16_sel] - mul_u16_sel_from_b12: - //SEG186 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@12->mul_u16_sel#0] -- vbuz1=vbuc1 - lda #0 - sta mul_u16_sel.select - //SEG187 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s_gen::@12->mul_u16_sel#1] -- register_copy - //SEG188 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s_gen::@12->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG189 [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return_11 - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return_11+1 - jmp b13 - //SEG190 sin16s_gen::@13 - b13: - //SEG191 [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_11 - sta x4 - lda mul_u16_sel.return_11+1 - sta x4+1 - //SEG192 [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) -- vwuz1=vwuz2 - lda x4 - sta mul_u16_sel.v1 - lda x4+1 - sta mul_u16_sel.v1+1 - //SEG193 [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG194 [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - //SEG195 [112] phi from sin16s_gen::@13 to mul_u16_sel [phi:sin16s_gen::@13->mul_u16_sel] - mul_u16_sel_from_b13: - //SEG196 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@13->mul_u16_sel#0] -- vbuz1=vbuc1 - lda #0 - sta mul_u16_sel.select - //SEG197 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s_gen::@13->mul_u16_sel#1] -- register_copy - //SEG198 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s_gen::@13->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG199 [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return_12 - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return_12+1 - jmp b14 - //SEG200 sin16s_gen::@14 - b14: - //SEG201 [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_12 - sta x5 - lda mul_u16_sel.return_12+1 - sta x5+1 - //SEG202 [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) -- vwuz1=vwuz2 - lda x5 - sta mul_u16_sel.v1 - lda x5+1 - sta mul_u16_sel.v1+1 - //SEG203 [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - //SEG204 [112] phi from sin16s_gen::@14 to mul_u16_sel [phi:sin16s_gen::@14->mul_u16_sel] - mul_u16_sel_from_b14: - //SEG205 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s_gen::@14->mul_u16_sel#0] -- vbuz1=vbuc1 - lda #3 - sta mul_u16_sel.select - //SEG206 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s_gen::@14->mul_u16_sel#1] -- vwuz1=vwuc1 - lda #<$10000/$80 - sta mul_u16_sel.v2 - lda #>$10000/$80 - sta mul_u16_sel.v2+1 - //SEG207 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s_gen::@14->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG208 [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return_13 - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return_13+1 - jmp b15 - //SEG209 sin16s_gen::@15 - b15: - //SEG210 [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_13 - sta x5_128 - lda mul_u16_sel.return_13+1 - sta x5_128+1 - //SEG211 [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) -- vwuz1=vwuz2_plus_vwuz3 - lda usinx_1 - clc - adc usinx - sta x5_128 - lda usinx_1+1 - adc usinx+1 - sta x5_128+1 - //SEG212 [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ) -- vbuz1_eq_0_then_la1 - lda isUpper - beq b19 - jmp b7 - //SEG213 sin16s_gen::@7 - b7: - //SEG214 [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) -- vwsz1=_neg_vwsz2 - sec - lda usinx_1 - eor #$ff - adc #0 - sta sinx - lda usinx_1+1 - eor #$ff - adc #0 - sta sinx+1 - //SEG215 [103] phi from sin16s_gen::@19 sin16s_gen::@7 to sin16s_gen::@4 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4] - b4_from_b19: - b4_from_b7: - //SEG216 [103] phi (signed word) sin16s_gen::sinx#2 = (signed word~) sin16s_gen::sinx#3 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4#0] -- register_copy + sta sin16s.x+3 + //SEG138 [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 ] ) + jsr sin16s + //SEG139 [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) -- vwsz1=vwsz2 + lda sin16s.return_1 + sta sin16s.return + lda sin16s.return_1+1 + sta sin16s.return+1 jmp b4 - //SEG217 sin16s_gen::@4 + //SEG140 sin16s_gen::@4 b4: - //SEG218 [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- _deref_pwsz1=vwsz2 + //SEG141 [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 ] ) -- vwsz1=vwsz2 + lda sin16s.return + sta _1 + lda sin16s.return+1 + sta _1+1 + //SEG142 [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 ] ) -- _deref_pwsz1=vwsz2 ldy #0 - lda sinx + lda _1 sta (sintab),y iny - lda sinx+1 + lda _1+1 sta (sintab),y - //SEG219 [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) -- pwsz1=pwsz1_plus_vbuc1 + //SEG143 [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 ] ) -- pwsz1=pwsz1_plus_vbuc1 clc lda sintab adc #<2 @@ -6364,7 +5967,7 @@ sin16s_gen: { lda sintab+1 adc #>2 sta sintab+1 - //SEG220 [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) -- vduz1=vduz1_plus_vduz2 + //SEG144 [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 ] ) -- vduz1=vduz1_plus_vduz2 lda x clc adc step @@ -6378,12 +5981,12 @@ sin16s_gen: { lda x+3 adc step+3 sta x+3 - //SEG221 [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ 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 ] ) -- vwuz1=_inc_vwuz1 + //SEG145 [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 ] ) -- vwuz1=_inc_vwuz1 inc i bne !+ inc i+1 !: - //SEG222 [108] 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 ] ) -- vwuz1_lt_vwuc1_then_la1 + //SEG146 [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 ] ) -- vwuz1_lt_vwuc1_then_la1 lda i+1 cmp #>main.wavelength bcc b1_from_b4 @@ -6393,64 +5996,416 @@ sin16s_gen: { bcc b1_from_b4 !: jmp breturn - //SEG223 sin16s_gen::@return + //SEG147 sin16s_gen::@return breturn: - //SEG224 [109] return [ ] ( main:2::sin16s_gen:5 [ ] ) + //SEG148 [72] return [ ] ( main:2::sin16s_gen:5 [ ] ) rts - //SEG225 sin16s_gen::@19 - b19: - //SEG226 [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) -- vwsz1=vwsz2 - lda usinx_1 - sta sinx - lda usinx_1+1 - sta sinx+1 - jmp b4_from_b19 - //SEG227 sin16s_gen::@17 - b17: - //SEG228 [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) -- vduz1=vduz2 - lda x - sta xp - lda x+1 - sta xp+1 - lda x+2 - sta xp+2 +} +//SEG149 sin16s +sin16s: { + .label _6 = $45 + .label x = $17 + .label return = $41 + .label x1 = $49 + .label x2 = $4d + .label x3 = $51 + .label x3_6 = $55 + .label usinx = $57 + .label x4 = $5b + .label x5 = $5f + .label x5_128 = $63 + .label usinx_1 = $65 + .label return_1 = $1b + .label sinx = $1b + .label isUpper = $16 + .label return_5 = $1b + //SEG150 [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#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::x#0 ] ) -- vduz1_lt_vduc1_then_la1 lda x+3 - sta xp+3 - //SEG229 [65] phi from sin16s_gen::@17 to sin16s_gen::@2 [phi:sin16s_gen::@17->sin16s_gen::@2] - b2_from_b17: - //SEG230 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@17->sin16s_gen::@2#0] -- vbuz1=vbuc1 + cmp #>PI_u4f28>>$10 + bcc b1_from_sin16s + bne !+ + lda x+2 + cmp #<PI_u4f28>>$10 + bcc b1_from_sin16s + bne !+ + lda x+1 + cmp #>PI_u4f28 + bcc b1_from_sin16s + bne !+ + lda x + cmp #<PI_u4f28 + bcc b1_from_sin16s + !: + jmp b4 + //SEG151 sin16s::@4 + b4: + //SEG152 [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#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::x#1 ] ) -- vduz1=vduz1_minus_vduc1 + lda x + sec + sbc #<PI_u4f28 + sta x + lda x+1 + sbc #>PI_u4f28 + sta x+1 + lda x+2 + sbc #<PI_u4f28>>$10 + sta x+2 + lda x+3 + sbc #>PI_u4f28>>$10 + sta x+3 + //SEG153 [75] phi from sin16s::@4 to sin16s::@1 [phi:sin16s::@4->sin16s::@1] + b1_from_b4: + //SEG154 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@4->sin16s::@1#0] -- vbuz1=vbuc1 + lda #1 + sta isUpper + //SEG155 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#1 [phi:sin16s::@4->sin16s::@1#1] -- register_copy + jmp b1 + //SEG156 [75] phi from sin16s to sin16s::@1 [phi:sin16s->sin16s::@1] + b1_from_sin16s: + //SEG157 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s->sin16s::@1#0] -- vbuz1=vbuc1 lda #0 sta isUpper - //SEG231 [65] phi (dword) sin16s_gen::xp#3 = (dword~) sin16s_gen::xp#7 [phi:sin16s_gen::@17->sin16s_gen::@2#1] -- register_copy + //SEG158 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#0 [phi:sin16s->sin16s::@1#1] -- register_copy + jmp b1 + //SEG159 sin16s::@1 + b1: + //SEG160 [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 + lda x+3 + cmp #>PI_HALF_u4f28>>$10 + bcc b2_from_b1 + bne !+ + lda x+2 + cmp #<PI_HALF_u4f28>>$10 + bcc b2_from_b1 + bne !+ + lda x+1 + cmp #>PI_HALF_u4f28 + bcc b2_from_b1 + bne !+ + lda x + cmp #<PI_HALF_u4f28 + bcc b2_from_b1 + !: + jmp b5 + //SEG161 sin16s::@5 + b5: + //SEG162 [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#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#10 sin16s::x#2 ] ) -- vduz1=vduc1_minus_vduz1 + lda #<PI_u4f28 + sec + sbc x + sta x + lda #>PI_u4f28 + sbc x+1 + sta x+1 + lda #<PI_u4f28>>$10 + sbc x+2 + sta x+2 + lda #>PI_u4f28>>$10 + sbc x+3 + sta x+3 + //SEG163 [78] phi from sin16s::@1 sin16s::@5 to sin16s::@2 [phi:sin16s::@1/sin16s::@5->sin16s::@2] + b2_from_b1: + b2_from_b5: + //SEG164 [78] phi (dword) sin16s::x#6 = (dword) sin16s::x#4 [phi:sin16s::@1/sin16s::@5->sin16s::@2#0] -- register_copy jmp b2 + //SEG165 sin16s::@2 + b2: + //SEG166 [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 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#10 sin16s::$6 ] ) -- vduz1=vduz2_rol_3 + lda x + sta _6 + lda x+1 + sta _6+1 + lda x+2 + sta _6+2 + lda x+3 + sta _6+3 + asl _6 + rol _6+1 + rol _6+2 + rol _6+3 + asl _6 + rol _6+1 + rol _6+2 + rol _6+3 + asl _6 + rol _6+1 + rol _6+2 + rol _6+3 + //SEG167 [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 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#10 sin16s::x1#0 ] ) -- vwuz1=_hi_vduz2 + lda _6+2 + sta x1 + lda _6+3 + sta x1+1 + //SEG168 [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v1 + lda x1+1 + sta mul_u16_sel.v1+1 + //SEG169 [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG170 [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + //SEG171 [116] phi from sin16s::@2 to mul_u16_sel [phi:sin16s::@2->mul_u16_sel] + mul_u16_sel_from_b2: + //SEG172 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@2->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #0 + sta mul_u16_sel.select + //SEG173 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s::@2->mul_u16_sel#1] -- register_copy + //SEG174 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s::@2->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG175 [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + jmp b8 + //SEG176 sin16s::@8 + b8: + //SEG177 [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x2#0 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return + sta x2 + lda mul_u16_sel.return+1 + sta x2+1 + //SEG178 [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) -- vwuz1=vwuz2 + lda x2 + sta mul_u16_sel.v1 + lda x2+1 + sta mul_u16_sel.v1+1 + //SEG179 [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG180 [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + //SEG181 [116] phi from sin16s::@8 to mul_u16_sel [phi:sin16s::@8->mul_u16_sel] + mul_u16_sel_from_b8: + //SEG182 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@8->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #1 + sta mul_u16_sel.select + //SEG183 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s::@8->mul_u16_sel#1] -- register_copy + //SEG184 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s::@8->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG185 [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return_1 + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return_1+1 + jmp b9 + //SEG186 sin16s::@9 + b9: + //SEG187 [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_1 + sta x3 + lda mul_u16_sel.return_1+1 + sta x3+1 + //SEG188 [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) -- vwuz1=vwuz2 + lda x3 + sta mul_u16_sel.v1 + lda x3+1 + sta mul_u16_sel.v1+1 + //SEG189 [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ) + //SEG190 [116] phi from sin16s::@9 to mul_u16_sel [phi:sin16s::@9->mul_u16_sel] + mul_u16_sel_from_b9: + //SEG191 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #1 + sta mul_u16_sel.select + //SEG192 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mul_u16_sel#1] -- vwuz1=vwuc1 + lda #<$10000/6 + sta mul_u16_sel.v2 + lda #>$10000/6 + sta mul_u16_sel.v2+1 + //SEG193 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s::@9->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG194 [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return_10 + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return_10+1 + jmp b10 + //SEG195 sin16s::@10 + b10: + //SEG196 [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_10 + sta x3_6 + lda mul_u16_sel.return_10+1 + sta x3_6+1 + //SEG197 [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz3 + lda x1 + sec + sbc x3_6 + sta usinx + lda x1+1 + sbc x3_6+1 + sta usinx+1 + //SEG198 [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) -- vwuz1=vwuz2 + lda x3 + sta mul_u16_sel.v1 + lda x3+1 + sta mul_u16_sel.v1+1 + //SEG199 [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG200 [98] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + //SEG201 [116] phi from sin16s::@10 to mul_u16_sel [phi:sin16s::@10->mul_u16_sel] + mul_u16_sel_from_b10: + //SEG202 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@10->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #0 + sta mul_u16_sel.select + //SEG203 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s::@10->mul_u16_sel#1] -- register_copy + //SEG204 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s::@10->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG205 [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return_11 + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return_11+1 + jmp b11 + //SEG206 sin16s::@11 + b11: + //SEG207 [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_11 + sta x4 + lda mul_u16_sel.return_11+1 + sta x4+1 + //SEG208 [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) -- vwuz1=vwuz2 + lda x4 + sta mul_u16_sel.v1 + lda x4+1 + sta mul_u16_sel.v1+1 + //SEG209 [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG210 [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + //SEG211 [116] phi from sin16s::@11 to mul_u16_sel [phi:sin16s::@11->mul_u16_sel] + mul_u16_sel_from_b11: + //SEG212 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@11->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #0 + sta mul_u16_sel.select + //SEG213 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s::@11->mul_u16_sel#1] -- register_copy + //SEG214 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s::@11->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG215 [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#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#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return_12 + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return_12+1 + jmp b12 + //SEG216 sin16s::@12 + b12: + //SEG217 [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5#0 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_12 + sta x5 + lda mul_u16_sel.return_12+1 + sta x5+1 + //SEG218 [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#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::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) -- vwuz1=vwuz2 + lda x5 + sta mul_u16_sel.v1 + lda x5+1 + sta mul_u16_sel.v1+1 + //SEG219 [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + //SEG220 [116] phi from sin16s::@12 to mul_u16_sel [phi:sin16s::@12->mul_u16_sel] + mul_u16_sel_from_b12: + //SEG221 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s::@12->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #3 + sta mul_u16_sel.select + //SEG222 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s::@12->mul_u16_sel#1] -- vwuz1=vwuc1 + lda #<$10000/$80 + sta mul_u16_sel.v2 + lda #>$10000/$80 + sta mul_u16_sel.v2+1 + //SEG223 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s::@12->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG224 [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( 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#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return_13 + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return_13+1 + jmp b13 + //SEG225 sin16s::@13 + b13: + //SEG226 [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_13 + sta x5_128 + lda mul_u16_sel.return_13+1 + sta x5_128+1 + //SEG227 [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#1 ] ) -- vwuz1=vwuz2_plus_vwuz3 + lda usinx_1 + clc + adc usinx + sta x5_128 + lda usinx_1+1 + adc usinx+1 + sta x5_128+1 + //SEG228 [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ 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 ] ) -- vbuz1_eq_0_then_la1 + lda isUpper + beq b16 + jmp b6 + //SEG229 sin16s::@6 + b6: + //SEG230 [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#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::sinx#1 ] ) -- vwsz1=_neg_vwsz2 + sec + lda usinx_1 + eor #$ff + adc #0 + sta sinx + lda usinx_1+1 + eor #$ff + adc #0 + sta sinx+1 + //SEG231 [113] phi from sin16s::@16 sin16s::@6 to sin16s::@3 [phi:sin16s::@16/sin16s::@6->sin16s::@3] + b3_from_b16: + b3_from_b6: + //SEG232 [113] phi (signed word) sin16s::return#1 = (signed word~) sin16s::return#5 [phi:sin16s::@16/sin16s::@6->sin16s::@3#0] -- register_copy + jmp b3 + //SEG233 sin16s::@3 + b3: + jmp breturn + //SEG234 sin16s::@return + breturn: + //SEG235 [114] return [ sin16s::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::return#1 ] ) + rts + //SEG236 sin16s::@16 + b16: + //SEG237 [115] (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 ] ) -- vwsz1=vwsz2 + lda usinx_1 + sta return_5 + lda usinx_1+1 + sta return_5+1 + jmp b3_from_b16 } -//SEG232 mul_u16_sel +//SEG238 mul_u16_sel mul_u16_sel: { - .label _0 = $69 - .label _1 = $6d + .label _0 = $6d + .label _1 = $71 .label v1 = $1d .label v2 = $1f - .label return = $47 - .label return_1 = $4b - .label return_10 = $4f - .label return_11 = $55 - .label return_12 = $59 - .label return_13 = $5d + .label return = $4b + .label return_1 = $4f + .label return_10 = $53 + .label return_11 = $59 + .label return_12 = $5d + .label return_13 = $61 .label select = $21 - .label return_14 = $71 - //SEG233 [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 + .label return_14 = $75 + //SEG239 [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 lda v1 sta mul16u.a lda v1+1 sta mul16u.a+1 - //SEG234 [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) -- vwuz1=vwuz2 + //SEG240 [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) -- vwuz1=vwuz2 lda v2 sta mul16u.b lda v2+1 sta mul16u.b+1 - //SEG235 [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + //SEG241 [119] call mul16u param-assignment [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) jsr mul16u - //SEG236 [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) -- vduz1=vduz2 + //SEG242 [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) -- vduz1=vduz2 lda mul16u.res sta mul16u.return lda mul16u.res+1 @@ -6460,9 +6415,9 @@ mul_u16_sel: { lda mul16u.res+3 sta mul16u.return+3 jmp b2 - //SEG237 mul_u16_sel::@2 + //SEG243 mul_u16_sel::@2 b2: - //SEG238 [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) -- vduz1=vduz2 + //SEG244 [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) -- vduz1=vduz2 lda mul16u.return sta _0 lda mul16u.return+1 @@ -6471,7 +6426,7 @@ mul_u16_sel: { sta _0+2 lda mul16u.return+3 sta _0+3 - //SEG239 [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz2_rol_vbuz3 + //SEG245 [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ 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#10 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#10 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#10 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#10 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#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz2_rol_vbuz3 lda _0 sta _1 lda _0+1 @@ -6490,26 +6445,26 @@ mul_u16_sel: { dey bne !- !e: - //SEG240 [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 + //SEG246 [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 lda _1+2 sta return_14 lda _1+3 sta return_14+1 jmp breturn - //SEG241 mul_u16_sel::@return + //SEG247 mul_u16_sel::@return breturn: - //SEG242 [120] return [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) + //SEG248 [124] return [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) rts } -//SEG243 mul16u +//SEG249 mul16u mul16u: { - .label _1 = $73 + .label _1 = $77 .label mb = $28 .label a = $22 .label res = $24 - .label b = $63 - .label return = $65 - //SEG244 [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 + .label b = $67 + .label return = $69 + //SEG250 [125] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 lda b sta mb lda b+1 @@ -6517,43 +6472,43 @@ mul16u: { lda #0 sta mb+2 sta mb+3 - //SEG245 [122] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] + //SEG251 [126] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] b1_from_mul16u: - //SEG246 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy - //SEG247 [122] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 + //SEG252 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy + //SEG253 [126] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 lda #0 sta res lda #0 sta res+1 sta res+2 sta res+3 - //SEG248 [122] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy + //SEG254 [126] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy jmp b1 - //SEG249 mul16u::@1 + //SEG255 mul16u::@1 b1: - //SEG250 [123] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 + //SEG256 [127] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 lda a bne b2 lda a+1 bne b2 jmp breturn - //SEG251 mul16u::@return + //SEG257 mul16u::@return breturn: - //SEG252 [124] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + //SEG258 [128] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) rts - //SEG253 mul16u::@2 + //SEG259 mul16u::@2 b2: - //SEG254 [125] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuz1=vwuz2_band_vbuc1 + //SEG260 [129] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuz1=vwuz2_band_vbuc1 lda a and #1 sta _1 - //SEG255 [126] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuz1_eq_0_then_la1 + //SEG261 [130] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuz1_eq_0_then_la1 lda _1 beq b4_from_b2 jmp b7 - //SEG256 mul16u::@7 + //SEG262 mul16u::@7 b7: - //SEG257 [127] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 + //SEG263 [131] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 lda res clc adc mb @@ -6567,101 +6522,101 @@ mul16u: { lda res+3 adc mb+3 sta res+3 - //SEG258 [128] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4] + //SEG264 [132] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4] b4_from_b2: b4_from_b7: - //SEG259 [128] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy + //SEG265 [132] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy jmp b4 - //SEG260 mul16u::@4 + //SEG266 mul16u::@4 b4: - //SEG261 [129] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 + //SEG267 [133] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 clc ror a+1 ror a - //SEG262 [130] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 + //SEG268 [134] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 asl mb rol mb+1 rol mb+2 rol mb+3 - //SEG263 [122] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1] + //SEG269 [126] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1] b1_from_b4: - //SEG264 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy - //SEG265 [122] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy - //SEG266 [122] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy + //SEG270 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy + //SEG271 [126] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy + //SEG272 [126] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy jmp b1 } -//SEG267 div32u16u +//SEG273 div32u16u div32u16u: { .label return = $39 - .label quotient_hi = $76 - .label quotient_lo = $7a - .label return_1 = $7c - //SEG268 [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) - //SEG269 [141] phi from div32u16u to divr16u [phi:div32u16u->divr16u] + .label quotient_hi = $7a + .label quotient_lo = $7e + .label return_1 = $80 + //SEG274 [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) + //SEG275 [145] phi from div32u16u to divr16u [phi:div32u16u->divr16u] divr16u_from_div32u16u: - //SEG270 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 + //SEG276 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 lda #<main.wavelength sta divr16u.divisor lda #>main.wavelength sta divr16u.divisor+1 - //SEG271 [141] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 + //SEG277 [145] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 lda #<PI2_u4f28>>16 sta divr16u.dividend lda #>PI2_u4f28>>16 sta divr16u.dividend+1 - //SEG272 [141] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 + //SEG278 [145] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 lda #<0 sta divr16u.rem lda #>0 sta divr16u.rem+1 jsr divr16u - //SEG273 [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) -- vwuz1=vwuz2 + //SEG279 [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) -- vwuz1=vwuz2 lda divr16u.return sta divr16u.return_2 lda divr16u.return+1 sta divr16u.return_2+1 jmp b2 - //SEG274 div32u16u::@2 + //SEG280 div32u16u::@2 b2: - //SEG275 [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 + //SEG281 [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 lda divr16u.return_2 sta quotient_hi lda divr16u.return_2+1 sta quotient_hi+1 - //SEG276 [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) -- vwuz1=vwuz2 + //SEG282 [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) -- vwuz1=vwuz2 lda rem16u sta divr16u.rem lda rem16u+1 sta divr16u.rem+1 - //SEG277 [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) - //SEG278 [141] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u] + //SEG283 [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) + //SEG284 [145] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u] divr16u_from_b2: - //SEG279 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 + //SEG285 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 lda #<main.wavelength sta divr16u.divisor lda #>main.wavelength sta divr16u.divisor+1 - //SEG280 [141] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 + //SEG286 [145] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 lda #<PI2_u4f28&$ffff sta divr16u.dividend lda #>PI2_u4f28&$ffff sta divr16u.dividend+1 - //SEG281 [141] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy + //SEG287 [145] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy jsr divr16u - //SEG282 [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) -- vwuz1=vwuz2 + //SEG288 [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) -- vwuz1=vwuz2 lda divr16u.return sta divr16u.return_3 lda divr16u.return+1 sta divr16u.return_3+1 jmp b3 - //SEG283 div32u16u::@3 + //SEG289 div32u16u::@3 b3: - //SEG284 [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) -- vwuz1=vwuz2 + //SEG290 [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) -- vwuz1=vwuz2 lda divr16u.return_3 sta quotient_lo lda divr16u.return_3+1 sta quotient_lo+1 - //SEG285 [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 + //SEG291 [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 lda quotient_hi sta return_1+2 lda quotient_hi+1 @@ -6671,79 +6626,79 @@ div32u16u: { lda quotient_lo+1 sta return_1+1 jmp breturn - //SEG286 div32u16u::@return + //SEG292 div32u16u::@return breturn: - //SEG287 [140] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) + //SEG293 [144] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) rts } -//SEG288 divr16u +//SEG294 divr16u divr16u: { - .label _1 = $80 - .label _2 = $81 + .label _1 = $84 + .label _2 = $85 .label rem = $2e .label dividend = $30 .label quotient = $32 .label i = $34 .label return = $32 - .label return_2 = $74 - .label return_3 = $78 + .label return_2 = $78 + .label return_3 = $7c .label divisor = $2c - //SEG289 [142] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1] + //SEG295 [146] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1] b1_from_divr16u: - //SEG290 [142] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuz1=vbuc1 + //SEG296 [146] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG291 [142] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 + //SEG297 [146] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 lda #<0 sta quotient lda #>0 sta quotient+1 - //SEG292 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy - //SEG293 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy + //SEG298 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy + //SEG299 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy jmp b1 - //SEG294 [142] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1] + //SEG300 [146] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1] b1_from_b3: - //SEG295 [142] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy - //SEG296 [142] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy - //SEG297 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy - //SEG298 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy + //SEG301 [146] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy + //SEG302 [146] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy + //SEG303 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy + //SEG304 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy jmp b1 - //SEG299 divr16u::@1 + //SEG305 divr16u::@1 b1: - //SEG300 [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 + //SEG306 [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 asl rem rol rem+1 - //SEG301 [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuz1=_hi_vwuz2 + //SEG307 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuz1=_hi_vwuz2 lda dividend+1 sta _1 - //SEG302 [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuz1=vbuz2_band_vbuc1 + //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuz1=vbuz2_band_vbuc1 lda #$80 and _1 sta _2 - //SEG303 [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuz1_eq_0_then_la1 + //SEG309 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuz1_eq_0_then_la1 lda _2 beq b2_from_b1 jmp b4 - //SEG304 divr16u::@4 + //SEG310 divr16u::@4 b4: - //SEG305 [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 + //SEG311 [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 lda #1 ora rem sta rem - //SEG306 [148] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2] + //SEG312 [152] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2] b2_from_b1: b2_from_b4: - //SEG307 [148] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy + //SEG313 [152] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy jmp b2 - //SEG308 divr16u::@2 + //SEG314 divr16u::@2 b2: - //SEG309 [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 + //SEG315 [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 asl dividend rol dividend+1 - //SEG310 [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 + //SEG316 [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 asl quotient rol quotient+1 - //SEG311 [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 + //SEG317 [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 lda rem+1 cmp divisor+1 bcc b3_from_b2 @@ -6753,14 +6708,14 @@ divr16u: { bcc b3_from_b2 !: jmp b5 - //SEG312 divr16u::@5 + //SEG318 divr16u::@5 b5: - //SEG313 [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 + //SEG319 [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 inc quotient bne !+ inc quotient+1 !: - //SEG314 [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 + //SEG320 [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 lda rem sec sbc divisor @@ -6768,32 +6723,32 @@ divr16u: { lda rem+1 sbc divisor+1 sta rem+1 - //SEG315 [154] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3] + //SEG321 [158] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3] b3_from_b2: b3_from_b5: - //SEG316 [154] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy - //SEG317 [154] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy + //SEG322 [158] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy + //SEG323 [158] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy jmp b3 - //SEG318 divr16u::@3 + //SEG324 divr16u::@3 b3: - //SEG319 [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG325 [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //SEG320 [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b3 jmp b6 - //SEG321 divr16u::@6 + //SEG327 divr16u::@6 b6: - //SEG322 [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) -- vwuz1=vwuz2 + //SEG328 [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) -- vwuz1=vwuz2 lda rem sta rem16u lda rem+1 sta rem16u+1 jmp breturn - //SEG323 divr16u::@return + //SEG329 divr16u::@return breturn: - //SEG324 [158] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) + //SEG330 [162] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) rts } @@ -6816,68 +6771,70 @@ Statement [54] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( m Statement [56] 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 ] ) always clobbers reg byte a Statement [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) always clobbers reg byte a -Statement [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) always clobbers reg byte a -Statement [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) always clobbers reg byte a -Statement [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ sin16s_gen::isUpper#10 ] -Statement [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) always clobbers reg byte a -Statement [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) always clobbers reg byte a -Statement [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) always clobbers reg byte a -Statement [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) always clobbers reg byte a -Statement [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) always clobbers reg byte a -Statement [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) always clobbers reg byte a -Statement [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) always clobbers reg byte a -Statement [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) always clobbers reg byte a -Statement [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) always clobbers reg byte a -Statement [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) always clobbers reg byte a -Statement [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) always clobbers reg byte a -Statement [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) always clobbers reg byte a -Statement [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) always clobbers reg byte a -Statement [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) always clobbers reg byte a -Statement [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) always clobbers reg byte a -Statement [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) always clobbers reg byte a -Statement [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) always clobbers reg byte a -Statement [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) always clobbers reg byte a -Statement [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) always clobbers reg byte a -Statement [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) always clobbers reg byte a -Statement [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) always clobbers reg byte a -Statement [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) always clobbers reg byte a -Statement [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) always clobbers reg byte a -Statement [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) always clobbers reg byte a -Statement [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) always clobbers reg byte a -Statement [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) always clobbers reg byte a -Statement [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) always clobbers reg byte a -Statement [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) always clobbers reg byte a -Statement [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) always clobbers reg byte a reg byte y -Statement [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) always clobbers reg byte a -Statement [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) always clobbers reg byte a -Statement [108] 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 ] ) always clobbers reg byte a -Statement [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) always clobbers reg byte a -Statement [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) always clobbers reg byte a -Statement [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a +Statement [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a reg byte y +Statement [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 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a +Statement [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#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::x#0 ] ) always clobbers reg byte a +Statement [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#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::x#1 ] ) always clobbers reg byte a +Statement [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ sin16s::isUpper#10 ] +Statement [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#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#10 sin16s::x#2 ] ) always clobbers reg byte a +Statement [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 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#10 sin16s::$6 ] ) always clobbers reg byte a +Statement [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 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#10 sin16s::x1#0 ] ) always clobbers reg byte a +Statement [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) always clobbers reg byte a +Statement [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) always clobbers reg byte a +Statement [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) always clobbers reg byte a +Statement [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x2#0 ] ) always clobbers reg byte a +Statement [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) always clobbers reg byte a +Statement [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) always clobbers reg byte a +Statement [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) always clobbers reg byte a +Statement [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 ] ) always clobbers reg byte a +Statement [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) always clobbers reg byte a +Statement [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) always clobbers reg byte a +Statement [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ) always clobbers reg byte a +Statement [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) always clobbers reg byte a +Statement [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) always clobbers reg byte a +Statement [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) always clobbers reg byte a +Statement [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) always clobbers reg byte a +Statement [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) always clobbers reg byte a +Statement [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) always clobbers reg byte a +Statement [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) always clobbers reg byte a +Statement [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#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#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) always clobbers reg byte a +Statement [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5#0 ] ) always clobbers reg byte a +Statement [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#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::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) always clobbers reg byte a +Statement [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( 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#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) always clobbers reg byte a +Statement [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) always clobbers reg byte a +Statement [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#1 ] ) always clobbers reg byte a +Statement [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#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::sinx#1 ] ) always clobbers reg byte a +Statement [115] (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 ] ) always clobbers reg byte a +Statement [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] -Statement [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) always clobbers reg byte a -Statement [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) always clobbers reg byte a -Statement [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) always clobbers reg byte a -Statement [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) always clobbers reg byte a -Statement [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) always clobbers reg byte a -Statement [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) always clobbers reg byte a -Statement [123] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) always clobbers reg byte a -Statement [125] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) always clobbers reg byte a -Statement [127] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) always clobbers reg byte a -Statement [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a -Statement [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) always clobbers reg byte a -Statement [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) always clobbers reg byte a -Statement [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) always clobbers reg byte a -Statement [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a -Statement [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) always clobbers reg byte a -Statement [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a +Statement [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) always clobbers reg byte a +Statement [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) always clobbers reg byte a +Statement [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) always clobbers reg byte a +Statement [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ 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#10 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#10 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#10 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#10 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#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) always clobbers reg byte a +Statement [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) always clobbers reg byte a +Statement [125] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) always clobbers reg byte a +Statement [127] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) always clobbers reg byte a +Statement [129] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) always clobbers reg byte a +Statement [131] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) always clobbers reg byte a +Statement [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a +Statement [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) always clobbers reg byte a +Statement [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) always clobbers reg byte a +Statement [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) always clobbers reg byte a +Statement [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a +Statement [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) always clobbers reg byte a +Statement [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ divr16u::i#2 divr16u::i#1 ] -Statement [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a -Statement [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a -Statement [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a -Statement [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a -Statement [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a +Statement [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a +Statement [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a +Statement [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a +Statement [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a Statement [9] (signed word) main::sw#0 ← *((signed word*) main::st1#2) [ main::st1#2 char_cursor#49 main::sw#0 ] ( main:2 [ main::st1#2 char_cursor#49 main::sw#0 ] ) always clobbers reg byte a reg byte y Statement [10] if((signed word) main::sw#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::st1#2 char_cursor#49 main::sw#0 ] ( main:2 [ main::st1#2 char_cursor#49 main::sw#0 ] ) always clobbers reg byte a Statement [14] (signed word) print_sword::w#1 ← (signed word) main::sw#0 [ main::st1#2 char_cursor#48 print_sword::w#1 ] ( main:2 [ main::st1#2 char_cursor#48 print_sword::w#1 ] ) always clobbers reg byte a @@ -6895,65 +6852,67 @@ Statement [54] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( m Statement [56] 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 ] ) always clobbers reg byte a Statement [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) always clobbers reg byte a Statement [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) always clobbers reg byte a -Statement [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) always clobbers reg byte a -Statement [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) always clobbers reg byte a -Statement [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) always clobbers reg byte a -Statement [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) always clobbers reg byte a -Statement [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) always clobbers reg byte a -Statement [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) always clobbers reg byte a -Statement [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) always clobbers reg byte a -Statement [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) always clobbers reg byte a -Statement [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) always clobbers reg byte a -Statement [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) always clobbers reg byte a -Statement [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) always clobbers reg byte a -Statement [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) always clobbers reg byte a -Statement [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) always clobbers reg byte a -Statement [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) always clobbers reg byte a -Statement [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) always clobbers reg byte a -Statement [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) always clobbers reg byte a -Statement [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) always clobbers reg byte a -Statement [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) always clobbers reg byte a -Statement [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) always clobbers reg byte a -Statement [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) always clobbers reg byte a -Statement [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) always clobbers reg byte a -Statement [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) always clobbers reg byte a -Statement [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) always clobbers reg byte a -Statement [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) always clobbers reg byte a -Statement [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) always clobbers reg byte a -Statement [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) always clobbers reg byte a -Statement [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) always clobbers reg byte a -Statement [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) always clobbers reg byte a -Statement [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) always clobbers reg byte a -Statement [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) always clobbers reg byte a -Statement [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) always clobbers reg byte a -Statement [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) always clobbers reg byte a reg byte y -Statement [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) always clobbers reg byte a -Statement [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) always clobbers reg byte a -Statement [108] 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 ] ) always clobbers reg byte a -Statement [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) always clobbers reg byte a -Statement [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) always clobbers reg byte a -Statement [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) always clobbers reg byte a -Statement [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) always clobbers reg byte a -Statement [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) always clobbers reg byte a -Statement [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) always clobbers reg byte a -Statement [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) always clobbers reg byte a -Statement [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) always clobbers reg byte a -Statement [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) always clobbers reg byte a -Statement [123] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) always clobbers reg byte a -Statement [125] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) always clobbers reg byte a -Statement [127] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) always clobbers reg byte a -Statement [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a -Statement [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) always clobbers reg byte a -Statement [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) always clobbers reg byte a -Statement [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) always clobbers reg byte a -Statement [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a -Statement [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) always clobbers reg byte a -Statement [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a -Statement [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a -Statement [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a -Statement [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a -Statement [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a -Statement [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a +Statement [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a reg byte y +Statement [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 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a +Statement [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 ] ) always clobbers reg byte a +Statement [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#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::x#0 ] ) always clobbers reg byte a +Statement [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#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::x#1 ] ) always clobbers reg byte a +Statement [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) always clobbers reg byte a +Statement [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#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#10 sin16s::x#2 ] ) always clobbers reg byte a +Statement [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 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#10 sin16s::$6 ] ) always clobbers reg byte a +Statement [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 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#10 sin16s::x1#0 ] ) always clobbers reg byte a +Statement [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) always clobbers reg byte a +Statement [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) always clobbers reg byte a +Statement [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) always clobbers reg byte a +Statement [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x2#0 ] ) always clobbers reg byte a +Statement [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) always clobbers reg byte a +Statement [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) always clobbers reg byte a +Statement [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) always clobbers reg byte a +Statement [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 ] ) always clobbers reg byte a +Statement [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) always clobbers reg byte a +Statement [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) always clobbers reg byte a +Statement [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ) always clobbers reg byte a +Statement [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) always clobbers reg byte a +Statement [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) always clobbers reg byte a +Statement [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) always clobbers reg byte a +Statement [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) always clobbers reg byte a +Statement [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) always clobbers reg byte a +Statement [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) always clobbers reg byte a +Statement [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) always clobbers reg byte a +Statement [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#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#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) always clobbers reg byte a +Statement [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5#0 ] ) always clobbers reg byte a +Statement [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#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::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) always clobbers reg byte a +Statement [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( 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#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) always clobbers reg byte a +Statement [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) always clobbers reg byte a +Statement [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#1 ] ) always clobbers reg byte a +Statement [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#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::sinx#1 ] ) always clobbers reg byte a +Statement [115] (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 ] ) always clobbers reg byte a +Statement [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) always clobbers reg byte a +Statement [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) always clobbers reg byte a +Statement [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) always clobbers reg byte a +Statement [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) always clobbers reg byte a +Statement [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ 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#10 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#10 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#10 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#10 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#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) always clobbers reg byte a +Statement [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) always clobbers reg byte a +Statement [125] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) always clobbers reg byte a +Statement [127] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) always clobbers reg byte a +Statement [129] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) always clobbers reg byte a +Statement [131] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) always clobbers reg byte a +Statement [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) always clobbers reg byte a +Statement [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) always clobbers reg byte a +Statement [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) always clobbers reg byte a +Statement [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) always clobbers reg byte a +Statement [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) always clobbers reg byte a +Statement [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) always clobbers reg byte a +Statement [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a +Statement [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) always clobbers reg byte a +Statement [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a +Statement [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a +Statement [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a +Statement [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a Potential registers zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] : zp ZP_WORD:2 , Potential registers zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] : zp ZP_WORD:4 , Potential registers zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] : zp ZP_WORD:6 , @@ -6961,14 +6920,14 @@ Potential registers zp ZP_BYTE:8 [ print_byte::b#2 print_byte::b#0 print_byte::b Potential registers zp ZP_BYTE:9 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] : zp ZP_BYTE:9 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_WORD:10 [ 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 ] : zp ZP_WORD:10 , Potential registers zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:12 , -Potential registers zp ZP_DWORD:14 [ sin16s_gen::x#10 sin16s_gen::x#1 ] : zp ZP_DWORD:14 , -Potential registers zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] : zp ZP_WORD:18 , -Potential registers zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ] : zp ZP_WORD:20 , -Potential registers zp ZP_BYTE:22 [ sin16s_gen::isUpper#10 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , -Potential registers zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] : zp ZP_DWORD:23 , -Potential registers zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] : zp ZP_WORD:27 , -Potential registers zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] : zp ZP_WORD:29 , -Potential registers zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] : zp ZP_WORD:31 , +Potential registers zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ] : zp ZP_DWORD:14 , +Potential registers zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] : zp ZP_WORD:18 , +Potential registers zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] : zp ZP_WORD:20 , +Potential registers zp ZP_BYTE:22 [ sin16s::isUpper#10 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , +Potential registers zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] : zp ZP_DWORD:23 , +Potential registers zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] : zp ZP_WORD:27 , +Potential registers zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] : zp ZP_WORD:29 , +Potential registers zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] : zp ZP_WORD:31 , Potential registers zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , Potential registers zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] : zp ZP_WORD:34 , Potential registers zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] : zp ZP_DWORD:36 , @@ -6983,111 +6942,120 @@ Potential registers zp ZP_BYTE:55 [ print_byte::$0 ] : zp ZP_BYTE:55 , reg byte Potential registers zp ZP_BYTE:56 [ print_byte::$2 ] : zp ZP_BYTE:56 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_DWORD:57 [ div32u16u::return#0 ] : zp ZP_DWORD:57 , Potential registers zp ZP_DWORD:61 [ sin16s_gen::step#0 ] : zp ZP_DWORD:61 , -Potential registers zp ZP_DWORD:65 [ sin16s_gen::$7 ] : zp ZP_DWORD:65 , -Potential registers zp ZP_WORD:69 [ sin16s_gen::x1#0 ] : zp ZP_WORD:69 , -Potential registers zp ZP_WORD:71 [ mul_u16_sel::return#0 ] : zp ZP_WORD:71 , -Potential registers zp ZP_WORD:73 [ sin16s_gen::x2#0 ] : zp ZP_WORD:73 , -Potential registers zp ZP_WORD:75 [ mul_u16_sel::return#1 ] : zp ZP_WORD:75 , -Potential registers zp ZP_WORD:77 [ sin16s_gen::x3#0 ] : zp ZP_WORD:77 , -Potential registers zp ZP_WORD:79 [ mul_u16_sel::return#10 ] : zp ZP_WORD:79 , -Potential registers zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ] : zp ZP_WORD:81 , -Potential registers zp ZP_WORD:83 [ sin16s_gen::usinx#0 ] : zp ZP_WORD:83 , -Potential registers zp ZP_WORD:85 [ mul_u16_sel::return#11 ] : zp ZP_WORD:85 , -Potential registers zp ZP_WORD:87 [ sin16s_gen::x4#0 ] : zp ZP_WORD:87 , -Potential registers zp ZP_WORD:89 [ mul_u16_sel::return#12 ] : zp ZP_WORD:89 , -Potential registers zp ZP_WORD:91 [ sin16s_gen::x5#0 ] : zp ZP_WORD:91 , -Potential registers zp ZP_WORD:93 [ mul_u16_sel::return#13 ] : zp ZP_WORD:93 , -Potential registers zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ] : zp ZP_WORD:95 , -Potential registers zp ZP_WORD:97 [ sin16s_gen::usinx#1 ] : zp ZP_WORD:97 , -Potential registers zp ZP_WORD:99 [ mul16u::b#0 ] : zp ZP_WORD:99 , -Potential registers zp ZP_DWORD:101 [ mul16u::return#2 ] : zp ZP_DWORD:101 , -Potential registers zp ZP_DWORD:105 [ mul_u16_sel::$0 ] : zp ZP_DWORD:105 , -Potential registers zp ZP_DWORD:109 [ mul_u16_sel::$1 ] : zp ZP_DWORD:109 , -Potential registers zp ZP_WORD:113 [ mul_u16_sel::return#14 ] : zp ZP_WORD:113 , -Potential registers zp ZP_BYTE:115 [ mul16u::$1 ] : zp ZP_BYTE:115 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:116 [ divr16u::return#2 ] : zp ZP_WORD:116 , -Potential registers zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ] : zp ZP_WORD:118 , -Potential registers zp ZP_WORD:120 [ divr16u::return#3 ] : zp ZP_WORD:120 , -Potential registers zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] : zp ZP_WORD:122 , -Potential registers zp ZP_DWORD:124 [ div32u16u::return#1 ] : zp ZP_DWORD:124 , -Potential registers zp ZP_BYTE:128 [ divr16u::$1 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:129 [ divr16u::$2 ] : zp ZP_BYTE:129 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:130 [ rem16u#1 ] : zp ZP_WORD:130 , +Potential registers zp ZP_WORD:65 [ sin16s::return#0 ] : zp ZP_WORD:65 , +Potential registers zp ZP_WORD:67 [ sin16s_gen::$1 ] : zp ZP_WORD:67 , +Potential registers zp ZP_DWORD:69 [ sin16s::$6 ] : zp ZP_DWORD:69 , +Potential registers zp ZP_WORD:73 [ sin16s::x1#0 ] : zp ZP_WORD:73 , +Potential registers zp ZP_WORD:75 [ mul_u16_sel::return#0 ] : zp ZP_WORD:75 , +Potential registers zp ZP_WORD:77 [ sin16s::x2#0 ] : zp ZP_WORD:77 , +Potential registers zp ZP_WORD:79 [ mul_u16_sel::return#1 ] : zp ZP_WORD:79 , +Potential registers zp ZP_WORD:81 [ sin16s::x3#0 ] : zp ZP_WORD:81 , +Potential registers zp ZP_WORD:83 [ mul_u16_sel::return#10 ] : zp ZP_WORD:83 , +Potential registers zp ZP_WORD:85 [ sin16s::x3_6#0 ] : zp ZP_WORD:85 , +Potential registers zp ZP_WORD:87 [ sin16s::usinx#0 ] : zp ZP_WORD:87 , +Potential registers zp ZP_WORD:89 [ mul_u16_sel::return#11 ] : zp ZP_WORD:89 , +Potential registers zp ZP_WORD:91 [ sin16s::x4#0 ] : zp ZP_WORD:91 , +Potential registers zp ZP_WORD:93 [ mul_u16_sel::return#12 ] : zp ZP_WORD:93 , +Potential registers zp ZP_WORD:95 [ sin16s::x5#0 ] : zp ZP_WORD:95 , +Potential registers zp ZP_WORD:97 [ mul_u16_sel::return#13 ] : zp ZP_WORD:97 , +Potential registers zp ZP_WORD:99 [ sin16s::x5_128#0 ] : zp ZP_WORD:99 , +Potential registers zp ZP_WORD:101 [ sin16s::usinx#1 ] : zp ZP_WORD:101 , +Potential registers zp ZP_WORD:103 [ mul16u::b#0 ] : zp ZP_WORD:103 , +Potential registers zp ZP_DWORD:105 [ mul16u::return#2 ] : zp ZP_DWORD:105 , +Potential registers zp ZP_DWORD:109 [ mul_u16_sel::$0 ] : zp ZP_DWORD:109 , +Potential registers zp ZP_DWORD:113 [ mul_u16_sel::$1 ] : zp ZP_DWORD:113 , +Potential registers zp ZP_WORD:117 [ mul_u16_sel::return#14 ] : zp ZP_WORD:117 , +Potential registers zp ZP_BYTE:119 [ mul16u::$1 ] : zp ZP_BYTE:119 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:120 [ divr16u::return#2 ] : zp ZP_WORD:120 , +Potential registers zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ] : zp ZP_WORD:122 , +Potential registers zp ZP_WORD:124 [ divr16u::return#3 ] : zp ZP_WORD:124 , +Potential registers zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ] : zp ZP_WORD:126 , +Potential registers zp ZP_DWORD:128 [ div32u16u::return#1 ] : zp ZP_DWORD:128 , +Potential registers zp ZP_BYTE:132 [ divr16u::$1 ] : zp ZP_BYTE:132 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:133 [ divr16u::$2 ] : zp ZP_BYTE:133 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:134 [ rem16u#1 ] : zp ZP_WORD:134 , REGISTER UPLIFT SCOPES -Uplift Scope [mul16u] 353.83: zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] 249.57: zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] 202: zp ZP_BYTE:115 [ mul16u::$1 ] 170: zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] 4: zp ZP_WORD:99 [ mul16u::b#0 ] 4: zp ZP_DWORD:101 [ mul16u::return#2 ] -Uplift Scope [mul_u16_sel] 156: zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] 111: zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] 22: zp ZP_WORD:71 [ mul_u16_sel::return#0 ] 22: zp ZP_WORD:75 [ mul_u16_sel::return#1 ] 22: zp ZP_WORD:79 [ mul_u16_sel::return#10 ] 22: zp ZP_WORD:85 [ mul_u16_sel::return#11 ] 22: zp ZP_WORD:89 [ mul_u16_sel::return#12 ] 22: zp ZP_WORD:93 [ mul_u16_sel::return#13 ] 8.5: zp ZP_WORD:113 [ mul_u16_sel::return#14 ] 4: zp ZP_DWORD:105 [ mul_u16_sel::$0 ] 4: zp ZP_DWORD:109 [ mul_u16_sel::$1 ] 0.33: zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] -Uplift Scope [sin16s_gen] 126.5: zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] 77: zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] 22: zp ZP_DWORD:65 [ sin16s_gen::$7 ] 22: zp ZP_WORD:73 [ sin16s_gen::x2#0 ] 22: zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ] 22: zp ZP_WORD:87 [ sin16s_gen::x4#0 ] 22: zp ZP_WORD:91 [ sin16s_gen::x5#0 ] 22: zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ] 16.97: zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ] 8.53: zp ZP_DWORD:14 [ sin16s_gen::x#10 sin16s_gen::x#1 ] 6.23: zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] 5.5: zp ZP_WORD:77 [ sin16s_gen::x3#0 ] 5.5: zp ZP_WORD:97 [ sin16s_gen::usinx#1 ] 3.5: zp ZP_WORD:69 [ sin16s_gen::x1#0 ] 1.47: zp ZP_WORD:83 [ sin16s_gen::usinx#0 ] 0.31: zp ZP_BYTE:22 [ sin16s_gen::isUpper#10 ] 0.26: zp ZP_DWORD:61 [ sin16s_gen::step#0 ] +Uplift Scope [mul16u] 353.83: zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] 249.57: zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] 202: zp ZP_BYTE:119 [ mul16u::$1 ] 170: zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] 4: zp ZP_WORD:103 [ mul16u::b#0 ] 4: zp ZP_DWORD:105 [ mul16u::return#2 ] Uplift Scope [print_str] 305.5: zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] -Uplift Scope [divr16u] 106.92: zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] 35.54: zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] 22: zp ZP_BYTE:128 [ divr16u::$1 ] 22: zp ZP_BYTE:129 [ divr16u::$2 ] 18.19: zp ZP_BYTE:52 [ divr16u::i#2 divr16u::i#1 ] 9.75: zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] 4: zp ZP_WORD:116 [ divr16u::return#2 ] 4: zp ZP_WORD:120 [ divr16u::return#3 ] 1.38: zp ZP_WORD:44 [ divr16u::divisor#6 ] -Uplift Scope [] 191.74: zp ZP_WORD:10 [ 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 ] 0.8: zp ZP_WORD:130 [ rem16u#1 ] +Uplift Scope [divr16u] 106.92: zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] 35.54: zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] 22: zp ZP_BYTE:132 [ divr16u::$1 ] 22: zp ZP_BYTE:133 [ divr16u::$2 ] 18.19: zp ZP_BYTE:52 [ divr16u::i#2 divr16u::i#1 ] 9.75: zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] 4: zp ZP_WORD:120 [ divr16u::return#2 ] 4: zp ZP_WORD:124 [ divr16u::return#3 ] 1.38: zp ZP_WORD:44 [ divr16u::divisor#6 ] +Uplift Scope [] 191.74: zp ZP_WORD:10 [ 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 ] 0.8: zp ZP_WORD:134 [ rem16u#1 ] +Uplift Scope [sin16s] 27.5: zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] 22: zp ZP_WORD:65 [ sin16s::return#0 ] 13: zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] 4: zp ZP_DWORD:69 [ sin16s::$6 ] 4: zp ZP_WORD:77 [ sin16s::x2#0 ] 4: zp ZP_WORD:85 [ sin16s::x3_6#0 ] 4: zp ZP_WORD:91 [ sin16s::x4#0 ] 4: zp ZP_WORD:95 [ sin16s::x5#0 ] 4: zp ZP_WORD:99 [ sin16s::x5_128#0 ] 1: zp ZP_WORD:81 [ sin16s::x3#0 ] 1: zp ZP_WORD:101 [ sin16s::usinx#1 ] 0.64: zp ZP_WORD:73 [ sin16s::x1#0 ] 0.27: zp ZP_WORD:87 [ sin16s::usinx#0 ] 0.06: zp ZP_BYTE:22 [ sin16s::isUpper#10 ] +Uplift Scope [mul_u16_sel] 30: zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] 21: zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] 4: zp ZP_WORD:75 [ mul_u16_sel::return#0 ] 4: zp ZP_WORD:79 [ mul_u16_sel::return#1 ] 4: zp ZP_WORD:83 [ mul_u16_sel::return#10 ] 4: zp ZP_WORD:89 [ mul_u16_sel::return#11 ] 4: zp ZP_WORD:93 [ mul_u16_sel::return#12 ] 4: zp ZP_WORD:97 [ mul_u16_sel::return#13 ] 4: zp ZP_DWORD:109 [ mul_u16_sel::$0 ] 4: zp ZP_DWORD:113 [ mul_u16_sel::$1 ] 1.75: zp ZP_WORD:117 [ mul_u16_sel::return#14 ] 0.33: zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] +Uplift Scope [sin16s_gen] 22: zp ZP_WORD:67 [ sin16s_gen::$1 ] 19.25: zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] 12.05: zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ] 11: zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] 1.18: zp ZP_DWORD:61 [ sin16s_gen::step#0 ] Uplift Scope [print_cls] 33: zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] Uplift Scope [main] 19.8: zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] 6.6: zp ZP_WORD:53 [ main::sw#0 ] Uplift Scope [print_byte] 10: zp ZP_BYTE:8 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] 4: zp ZP_BYTE:55 [ print_byte::$0 ] 4: zp ZP_BYTE:56 [ print_byte::$2 ] Uplift Scope [print_char] 14: zp ZP_BYTE:9 [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] -Uplift Scope [div32u16u] 4: zp ZP_DWORD:57 [ div32u16u::return#0 ] 4: zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] 1.33: zp ZP_DWORD:124 [ div32u16u::return#1 ] 0.8: zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ] +Uplift Scope [div32u16u] 4: zp ZP_DWORD:57 [ div32u16u::return#0 ] 4: zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ] 1.33: zp ZP_DWORD:128 [ div32u16u::return#1 ] 0.8: zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ] Uplift Scope [print_sword] 9.58: zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] Uplift Scope [print_word] -Uplifting [mul16u] best 30529 combination zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:99 [ mul16u::b#0 ] zp ZP_DWORD:101 [ mul16u::return#2 ] -Uplifting [mul_u16_sel] best 30510 combination zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] zp ZP_WORD:71 [ mul_u16_sel::return#0 ] zp ZP_WORD:75 [ mul_u16_sel::return#1 ] zp ZP_WORD:79 [ mul_u16_sel::return#10 ] zp ZP_WORD:85 [ mul_u16_sel::return#11 ] zp ZP_WORD:89 [ mul_u16_sel::return#12 ] zp ZP_WORD:93 [ mul_u16_sel::return#13 ] zp ZP_WORD:113 [ mul_u16_sel::return#14 ] zp ZP_DWORD:105 [ mul_u16_sel::$0 ] zp ZP_DWORD:109 [ mul_u16_sel::$1 ] reg byte x [ mul_u16_sel::select#6 ] -Uplifting [sin16s_gen] best 30440 combination zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] zp ZP_DWORD:65 [ sin16s_gen::$7 ] zp ZP_WORD:73 [ sin16s_gen::x2#0 ] zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ] zp ZP_WORD:87 [ sin16s_gen::x4#0 ] zp ZP_WORD:91 [ sin16s_gen::x5#0 ] zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ] zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ] zp ZP_DWORD:14 [ sin16s_gen::x#10 sin16s_gen::x#1 ] zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] zp ZP_WORD:77 [ sin16s_gen::x3#0 ] zp ZP_WORD:97 [ sin16s_gen::usinx#1 ] zp ZP_WORD:69 [ sin16s_gen::x1#0 ] zp ZP_WORD:83 [ sin16s_gen::usinx#0 ] reg byte y [ sin16s_gen::isUpper#10 ] zp ZP_DWORD:61 [ sin16s_gen::step#0 ] -Uplifting [print_str] best 30440 combination zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] -Uplifting [divr16u] best 30250 combination zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:116 [ divr16u::return#2 ] zp ZP_WORD:120 [ divr16u::return#3 ] zp ZP_WORD:44 [ divr16u::divisor#6 ] -Uplifting [] best 30250 combination zp ZP_WORD:10 [ 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 ] zp ZP_WORD:130 [ rem16u#1 ] -Uplifting [print_cls] best 30250 combination zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] -Uplifting [main] best 30250 combination zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] zp ZP_WORD:53 [ main::sw#0 ] -Uplifting [print_byte] best 30238 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] -Uplifting [print_char] best 30226 combination reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] -Uplifting [div32u16u] best 30226 combination zp ZP_DWORD:57 [ div32u16u::return#0 ] zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:124 [ div32u16u::return#1 ] zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ] -Uplifting [print_sword] best 30226 combination zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] -Uplifting [print_word] best 30226 combination -Coalescing zero page register [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 ] ] with [ zp ZP_WORD:97 [ sin16s_gen::usinx#1 ] ] -Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 ] ] with [ zp ZP_WORD:77 [ sin16s_gen::x3#0 ] ] -Coalescing zero page register [ zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] ] with [ zp ZP_WORD:130 [ rem16u#1 ] ] +Uplifting [mul16u] best 25183 combination zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:40 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:34 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] zp ZP_WORD:103 [ mul16u::b#0 ] zp ZP_DWORD:105 [ mul16u::return#2 ] +Uplifting [print_str] best 25183 combination zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] +Uplifting [divr16u] best 24993 combination zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:120 [ divr16u::return#2 ] zp ZP_WORD:124 [ divr16u::return#3 ] zp ZP_WORD:44 [ divr16u::divisor#6 ] +Uplifting [] best 24993 combination zp ZP_WORD:10 [ 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 ] zp ZP_WORD:134 [ rem16u#1 ] +Uplifting [sin16s] best 24986 combination zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp ZP_WORD:65 [ sin16s::return#0 ] zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] zp ZP_DWORD:69 [ sin16s::$6 ] zp ZP_WORD:77 [ sin16s::x2#0 ] zp ZP_WORD:85 [ sin16s::x3_6#0 ] zp ZP_WORD:91 [ sin16s::x4#0 ] zp ZP_WORD:95 [ sin16s::x5#0 ] zp ZP_WORD:99 [ sin16s::x5_128#0 ] zp ZP_WORD:81 [ sin16s::x3#0 ] zp ZP_WORD:101 [ sin16s::usinx#1 ] zp ZP_WORD:73 [ sin16s::x1#0 ] zp ZP_WORD:87 [ sin16s::usinx#0 ] reg byte x [ sin16s::isUpper#10 ] +Uplifting [mul_u16_sel] best 24986 combination zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] zp ZP_WORD:75 [ mul_u16_sel::return#0 ] zp ZP_WORD:79 [ mul_u16_sel::return#1 ] zp ZP_WORD:83 [ mul_u16_sel::return#10 ] zp ZP_WORD:89 [ mul_u16_sel::return#11 ] zp ZP_WORD:93 [ mul_u16_sel::return#12 ] zp ZP_WORD:97 [ mul_u16_sel::return#13 ] zp ZP_DWORD:109 [ mul_u16_sel::$0 ] zp ZP_DWORD:113 [ mul_u16_sel::$1 ] zp ZP_WORD:117 [ mul_u16_sel::return#14 ] zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] +Uplifting [sin16s_gen] best 24986 combination zp ZP_WORD:67 [ sin16s_gen::$1 ] zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] zp ZP_DWORD:14 [ sin16s_gen::x#2 sin16s_gen::x#1 ] zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] zp ZP_DWORD:61 [ sin16s_gen::step#0 ] +Uplifting [print_cls] best 24986 combination zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] +Uplifting [main] best 24986 combination zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] zp ZP_WORD:53 [ main::sw#0 ] +Uplifting [print_byte] best 24974 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] +Uplifting [print_char] best 24962 combination reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ] +Uplifting [div32u16u] best 24962 combination zp ZP_DWORD:57 [ div32u16u::return#0 ] zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ] zp ZP_DWORD:128 [ div32u16u::return#1 ] zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ] +Uplifting [print_sword] best 24962 combination zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] +Uplifting [print_word] best 24962 combination +Attempting to uplift remaining variables inzp ZP_BYTE:33 [ mul_u16_sel::select#6 ] +Uplifting [mul_u16_sel] best 24962 combination zp ZP_BYTE:33 [ mul_u16_sel::select#6 ] +Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 ] ] with [ zp ZP_WORD:101 [ sin16s::usinx#1 ] ] +Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 ] ] with [ zp ZP_WORD:81 [ sin16s::x3#0 ] ] +Coalescing zero page register [ zp ZP_WORD:46 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] ] with [ zp ZP_WORD:134 [ rem16u#1 ] ] Coalescing zero page register [ zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] ] with [ zp ZP_WORD:53 [ main::sw#0 ] ] -Coalescing zero page register [ zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 ] ] with [ zp ZP_DWORD:65 [ sin16s_gen::$7 ] ] -Coalescing zero page register [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 ] ] with [ zp ZP_WORD:83 [ sin16s_gen::usinx#0 ] ] -Coalescing zero page register [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 ] ] with [ zp ZP_WORD:81 [ sin16s_gen::x3_6#0 ] ] -Coalescing zero page register [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 ] ] with [ zp ZP_WORD:79 [ mul_u16_sel::return#10 ] ] -Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 ] ] with [ zp ZP_WORD:73 [ sin16s_gen::x2#0 ] ] -Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 ] ] with [ zp ZP_WORD:71 [ mul_u16_sel::return#0 ] ] -Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 ] ] with [ zp ZP_WORD:75 [ mul_u16_sel::return#1 ] ] -Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 ] ] with [ zp ZP_WORD:87 [ sin16s_gen::x4#0 ] ] -Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 ] ] with [ zp ZP_WORD:85 [ mul_u16_sel::return#11 ] ] -Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 ] ] with [ zp ZP_WORD:91 [ sin16s_gen::x5#0 ] ] -Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 ] ] with [ zp ZP_WORD:89 [ mul_u16_sel::return#12 ] ] -Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 ] ] with [ zp ZP_WORD:99 [ mul16u::b#0 ] ] -Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] ] with [ zp ZP_DWORD:101 [ mul16u::return#2 ] ] -Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 ] ] with [ zp ZP_DWORD:105 [ mul_u16_sel::$0 ] ] -Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 ] ] with [ zp ZP_DWORD:109 [ mul_u16_sel::$1 ] ] -Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] ] with [ zp ZP_WORD:116 [ divr16u::return#2 ] ] -Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 ] ] with [ zp ZP_WORD:120 [ divr16u::return#3 ] ] -Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 ] ] with [ zp ZP_WORD:122 [ div32u16u::quotient_lo#0 ] ] +Coalescing zero page register [ zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] ] with [ zp ZP_DWORD:69 [ sin16s::$6 ] ] +Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 ] ] with [ zp ZP_WORD:65 [ sin16s::return#0 ] ] +Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 ] ] with [ zp ZP_WORD:67 [ sin16s_gen::$1 ] ] +Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 ] ] with [ zp ZP_WORD:87 [ sin16s::usinx#0 ] ] +Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 ] ] with [ zp ZP_WORD:85 [ sin16s::x3_6#0 ] ] +Coalescing zero page register [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 sin16s::x3_6#0 ] ] with [ zp ZP_WORD:83 [ mul_u16_sel::return#10 ] ] +Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 ] ] with [ zp ZP_WORD:77 [ sin16s::x2#0 ] ] +Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 ] ] with [ zp ZP_WORD:75 [ mul_u16_sel::return#0 ] ] +Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 ] ] with [ zp ZP_WORD:79 [ mul_u16_sel::return#1 ] ] +Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 ] ] with [ zp ZP_WORD:91 [ sin16s::x4#0 ] ] +Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 ] ] with [ zp ZP_WORD:89 [ mul_u16_sel::return#11 ] ] +Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 ] ] with [ zp ZP_WORD:95 [ sin16s::x5#0 ] ] +Coalescing zero page register [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 ] ] with [ zp ZP_WORD:93 [ mul_u16_sel::return#12 ] ] +Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 ] ] with [ zp ZP_WORD:103 [ mul16u::b#0 ] ] +Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] ] with [ zp ZP_DWORD:105 [ mul16u::return#2 ] ] +Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 ] ] with [ zp ZP_DWORD:109 [ mul_u16_sel::$0 ] ] +Coalescing zero page register [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 ] ] with [ zp ZP_DWORD:113 [ mul_u16_sel::$1 ] ] +Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] ] with [ zp ZP_WORD:120 [ divr16u::return#2 ] ] +Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 ] ] with [ zp ZP_WORD:124 [ divr16u::return#3 ] ] +Coalescing zero page register [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 ] ] with [ zp ZP_WORD:126 [ div32u16u::quotient_lo#0 ] ] Coalescing zero page register [ zp ZP_DWORD:57 [ div32u16u::return#0 ] ] with [ zp ZP_DWORD:61 [ sin16s_gen::step#0 ] ] -Coalescing zero page register [ zp ZP_DWORD:57 [ div32u16u::return#0 sin16s_gen::step#0 ] ] with [ zp ZP_DWORD:124 [ div32u16u::return#1 ] ] -Coalescing zero page register [ zp ZP_WORD:93 [ mul_u16_sel::return#13 ] ] with [ zp ZP_WORD:95 [ sin16s_gen::x5_128#0 ] ] -Coalescing zero page register [ zp ZP_WORD:93 [ mul_u16_sel::return#13 sin16s_gen::x5_128#0 ] ] with [ zp ZP_WORD:113 [ mul_u16_sel::return#14 ] ] +Coalescing zero page register [ zp ZP_DWORD:57 [ div32u16u::return#0 sin16s_gen::step#0 ] ] with [ zp ZP_DWORD:128 [ div32u16u::return#1 ] ] +Coalescing zero page register [ zp ZP_WORD:97 [ mul_u16_sel::return#13 ] ] with [ zp ZP_WORD:99 [ sin16s::x5_128#0 ] ] +Coalescing zero page register [ zp ZP_WORD:97 [ mul_u16_sel::return#13 sin16s::x5_128#0 ] ] with [ zp ZP_WORD:117 [ mul_u16_sel::return#14 ] ] Coalescing zero page register [ zp ZP_WORD:2 [ main::st1#2 main::st1#1 ] ] with [ zp ZP_WORD:12 [ print_cls::sc#2 print_cls::sc#1 ] ] -Coalescing zero page register [ zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 ] ] with [ zp ZP_WORD:18 [ sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] ] -Coalescing zero page register [ zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#10 sin16s_gen::sintab#1 ] ] with [ zp ZP_WORD:44 [ divr16u::divisor#6 ] ] -Coalescing zero page register [ zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] ] with [ zp ZP_WORD:20 [ sin16s_gen::i#10 sin16s_gen::i#1 ] ] -Coalescing zero page register [ zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#10 sin16s_gen::i#1 ] ] with [ zp ZP_WORD:46 [ 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 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 ] ] with [ zp ZP_WORD:27 [ sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 mul_u16_sel::return#10 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 sin16s_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 mul_u16_sel::return#10 ] ] with [ zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] ] -Coalescing zero page register [ zp ZP_WORD:10 [ 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 ] ] with [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 ] ] -Coalescing zero page register [ zp ZP_WORD:10 [ 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#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 ] ] with [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] ] -Coalescing zero page register [ zp ZP_DWORD:23 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 sin16s_gen::$7 ] ] with [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ] ] -Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 ] ] with [ zp ZP_WORD:93 [ mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 ] ] -Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 ] ] with [ zp ZP_WORD:118 [ div32u16u::quotient_hi#0 ] ] -Allocated (was zp ZP_WORD:10) 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#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] -Allocated (was zp ZP_DWORD:14) zp ZP_DWORD:10 [ sin16s_gen::x#10 sin16s_gen::x#1 ] -Allocated (was zp ZP_DWORD:23) zp ZP_DWORD:14 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 sin16s_gen::$7 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ] -Allocated (was zp ZP_WORD:31) zp ZP_WORD:18 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ] -Allocated (was zp ZP_WORD:34) zp ZP_WORD:20 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] -Allocated (was zp ZP_DWORD:40) zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] -Allocated (was zp ZP_DWORD:57) zp ZP_DWORD:26 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ] -Allocated (was zp ZP_WORD:69) zp ZP_WORD:30 [ sin16s_gen::x1#0 ] +Coalescing zero page register [ zp ZP_WORD:2 [ main::st1#2 main::st1#1 print_cls::sc#2 print_cls::sc#1 ] ] with [ zp ZP_WORD:18 [ sin16s_gen::sintab#2 sin16s_gen::sintab#1 ] ] +Coalescing zero page register [ 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 ] ] with [ zp ZP_WORD:44 [ divr16u::divisor#6 ] ] +Coalescing zero page register [ zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 ] ] with [ zp ZP_WORD:20 [ sin16s_gen::i#2 sin16s_gen::i#1 ] ] +Coalescing zero page register [ zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#2 sin16s_gen::i#1 ] ] with [ zp ZP_WORD:46 [ 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 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 main::sw#0 ] ] with [ zp ZP_WORD:27 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 sin16s::x3_6#0 mul_u16_sel::return#10 ] ] +Coalescing zero page register [ 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 sin16s::x3_6#0 mul_u16_sel::return#10 ] ] with [ zp ZP_WORD:48 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] ] +Coalescing zero page register [ zp ZP_WORD:10 [ 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 ] ] with [ zp ZP_WORD:29 [ mul_u16_sel::v1#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 ] ] +Coalescing zero page register [ zp ZP_WORD:10 [ 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#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 ] ] with [ zp ZP_WORD:50 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] ] +Coalescing zero page register [ zp ZP_DWORD:23 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$6 ] ] with [ zp ZP_DWORD:36 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ] ] +Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul_u16_sel::v2#1 mul16u::b#0 ] ] with [ zp ZP_WORD:97 [ mul_u16_sel::return#13 sin16s::x5_128#0 mul_u16_sel::return#14 ] ] +Coalescing zero page register [ zp ZP_WORD:31 [ mul_u16_sel::v2#6 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#13 sin16s::x5_128#0 mul_u16_sel::return#14 ] ] with [ zp ZP_WORD:122 [ div32u16u::quotient_hi#0 ] ] +Allocated (was zp ZP_WORD:10) 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#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] +Allocated (was zp ZP_DWORD:14) zp ZP_DWORD:10 [ sin16s_gen::x#2 sin16s_gen::x#1 ] +Allocated (was zp ZP_DWORD:23) zp ZP_DWORD:14 [ 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 ] +Allocated (was zp ZP_WORD:31) zp ZP_WORD:18 [ mul_u16_sel::v2#6 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#13 sin16s::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ] +Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:20 [ mul_u16_sel::select#6 ] +Allocated (was zp ZP_WORD:34) zp ZP_WORD:21 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] +Allocated (was zp ZP_DWORD:40) zp ZP_DWORD:23 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] +Allocated (was zp ZP_DWORD:57) zp ZP_DWORD:27 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ] +Allocated (was zp ZP_WORD:73) zp ZP_WORD:31 [ sin16s::x1#0 ] ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -7103,17 +7071,17 @@ ASSEMBLER BEFORE OPTIMIZATION .label char_cursor = 8 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] -b25_from_bbegin: - jmp b25 -//SEG4 @25 -b25: +//SEG3 [1] phi from @begin to @26 [phi:@begin->@26] +b26_from_bbegin: + jmp b26 +//SEG4 @26 +b26: //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @25 to main [phi:@25->main] -main_from_b25: +//SEG6 [4] phi from @26 to main [phi:@26->main] +main_from_b26: jsr main -//SEG7 [3] phi from @25 to @end [phi:@25->@end] -bend_from_b25: +//SEG7 [3] phi from @26 to @end [phi:@26->@end] +bend_from_b26: jmp bend //SEG8 @end bend: @@ -7447,45 +7415,35 @@ print_cls: { } //SEG122 sin16s_gen sin16s_gen: { - .label _7 = $e - .label step = $1a - .label xp = $e - .label x1 = $1e - .label x2 = 8 - .label x3 = 8 - .label x3_6 = 6 - .label usinx = 6 - .label x4 = 8 - .label x5 = 8 - .label x5_128 = $12 + .label _1 = 6 + .label step = $1b .label sintab = 2 .label x = $a .label i = 4 - .label sinx = 6 //SEG123 [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] ) - //SEG124 [131] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u] + //SEG124 [135] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u] div32u16u_from_sin16s_gen: jsr div32u16u //SEG125 [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) - // (dword) div32u16u::return#0 = (dword) div32u16u::return#1 // register copy zp ZP_DWORD:26 - jmp b9 - //SEG126 sin16s_gen::@9 - b9: + // (dword) div32u16u::return#0 = (dword) div32u16u::return#1 // register copy zp ZP_DWORD:27 + jmp b3 + //SEG126 sin16s_gen::@3 + b3: //SEG127 [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) - // (dword) sin16s_gen::step#0 = (dword) div32u16u::return#0 // register copy zp ZP_DWORD:26 - //SEG128 [62] phi from sin16s_gen::@9 to sin16s_gen::@1 [phi:sin16s_gen::@9->sin16s_gen::@1] - b1_from_b9: - //SEG129 [62] phi (word) sin16s_gen::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#0] -- vwuz1=vbuc1 + // (dword) sin16s_gen::step#0 = (dword) div32u16u::return#0 // register copy zp ZP_DWORD:27 + //SEG128 [62] phi from sin16s_gen::@3 to sin16s_gen::@1 [phi:sin16s_gen::@3->sin16s_gen::@1] + b1_from_b3: + //SEG129 [62] phi (word) sin16s_gen::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#0] -- vwuz1=vbuc1 lda #<0 sta i lda #>0 sta i+1 - //SEG130 [62] phi (signed word*) sin16s_gen::sintab#10 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@9->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG130 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #<main.sintab1 sta sintab lda #>main.sintab1 sta sintab+1 - //SEG131 [62] phi (dword) sin16s_gen::x#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#2] -- vduz1=vbuc1 + //SEG131 [62] phi (dword) sin16s_gen::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#2] -- vduz1=vbuc1 lda #0 sta x lda #0 @@ -7495,304 +7453,38 @@ sin16s_gen: { jmp b1 //SEG132 [62] phi from sin16s_gen::@4 to sin16s_gen::@1 [phi:sin16s_gen::@4->sin16s_gen::@1] b1_from_b4: - //SEG133 [62] phi (word) sin16s_gen::i#10 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy - //SEG134 [62] phi (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy - //SEG135 [62] phi (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy + //SEG133 [62] phi (word) sin16s_gen::i#2 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy + //SEG134 [62] phi (signed word*) sin16s_gen::sintab#2 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy + //SEG135 [62] phi (dword) sin16s_gen::x#2 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy jmp b1 //SEG136 sin16s_gen::@1 b1: - //SEG137 [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- vduz1_lt_vduc1_then_la1 - lda x+3 - cmp #>PI_u4f28>>$10 - bcc b17 - bne !+ - lda x+2 - cmp #<PI_u4f28>>$10 - bcc b17 - bne !+ - lda x+1 - cmp #>PI_u4f28 - bcc b17 - bne !+ + //SEG137 [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 ] ) -- vduz1=vduz2 lda x - cmp #<PI_u4f28 - bcc b17 - !: - jmp b5 - //SEG138 sin16s_gen::@5 - b5: - //SEG139 [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) -- vduz1=vduz2_minus_vduc1 - lda x - sec - sbc #<PI_u4f28 - sta xp + sta sin16s.x lda x+1 - sbc #>PI_u4f28 - sta xp+1 + sta sin16s.x+1 lda x+2 - sbc #<PI_u4f28>>$10 - sta xp+2 + sta sin16s.x+2 lda x+3 - sbc #>PI_u4f28>>$10 - sta xp+3 - //SEG140 [65] phi from sin16s_gen::@5 to sin16s_gen::@2 [phi:sin16s_gen::@5->sin16s_gen::@2] - b2_from_b5: - //SEG141 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@5->sin16s_gen::@2#0] -- vbuyy=vbuc1 - ldy #1 - //SEG142 [65] phi (dword) sin16s_gen::xp#3 = (dword) sin16s_gen::xp#1 [phi:sin16s_gen::@5->sin16s_gen::@2#1] -- register_copy - jmp b2 - //SEG143 sin16s_gen::@2 - b2: - //SEG144 [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 - lda xp+3 - cmp #>PI_HALF_u4f28>>$10 - bcc b3_from_b2 - bne !+ - lda xp+2 - cmp #<PI_HALF_u4f28>>$10 - bcc b3_from_b2 - bne !+ - lda xp+1 - cmp #>PI_HALF_u4f28 - bcc b3_from_b2 - bne !+ - lda xp - cmp #<PI_HALF_u4f28 - bcc b3_from_b2 - !: - jmp b6 - //SEG145 sin16s_gen::@6 - b6: - //SEG146 [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) -- vduz1=vduc1_minus_vduz1 - lda #<PI_u4f28 - sec - sbc xp - sta xp - lda #>PI_u4f28 - sbc xp+1 - sta xp+1 - lda #<PI_u4f28>>$10 - sbc xp+2 - sta xp+2 - lda #>PI_u4f28>>$10 - sbc xp+3 - sta xp+3 - //SEG147 [68] phi from sin16s_gen::@2 sin16s_gen::@6 to sin16s_gen::@3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3] - b3_from_b2: - b3_from_b6: - //SEG148 [68] phi (dword) sin16s_gen::xp#5 = (dword) sin16s_gen::xp#3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3#0] -- register_copy - jmp b3 - //SEG149 sin16s_gen::@3 - b3: - //SEG150 [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) -- vduz1=vduz1_rol_3 - ldx #3 - !: - asl _7 - rol _7+1 - rol _7+2 - rol _7+3 - dex - bne !- - //SEG151 [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) -- vwuz1=_hi_vduz2 - lda _7+2 - sta x1 - lda _7+3 - sta x1+1 - //SEG152 [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v1 - lda x1+1 - sta mul_u16_sel.v1+1 - //SEG153 [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG154 [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - //SEG155 [112] phi from sin16s_gen::@3 to mul_u16_sel [phi:sin16s_gen::@3->mul_u16_sel] - mul_u16_sel_from_b3: - //SEG156 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #0 - //SEG157 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s_gen::@3->mul_u16_sel#1] -- register_copy - //SEG158 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s_gen::@3->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG159 [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - jmp b10 - //SEG160 sin16s_gen::@10 - b10: - //SEG161 [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) - // (word) sin16s_gen::x2#0 = (word) mul_u16_sel::return#0 // register copy zp ZP_WORD:8 - //SEG162 [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) - // (word) mul_u16_sel::v1#1 = (word) sin16s_gen::x2#0 // register copy zp ZP_WORD:8 - //SEG163 [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG164 [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - //SEG165 [112] phi from sin16s_gen::@10 to mul_u16_sel [phi:sin16s_gen::@10->mul_u16_sel] - mul_u16_sel_from_b10: - //SEG166 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@10->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #1 - //SEG167 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s_gen::@10->mul_u16_sel#1] -- register_copy - //SEG168 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s_gen::@10->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG169 [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - jmp b11 - //SEG170 sin16s_gen::@11 - b11: - //SEG171 [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) - // (word) sin16s_gen::x3#0 = (word) mul_u16_sel::return#1 // register copy zp ZP_WORD:8 - //SEG172 [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) - // (word) mul_u16_sel::v1#2 = (word) sin16s_gen::x3#0 // register copy zp ZP_WORD:8 - //SEG173 [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ) - //SEG174 [112] phi from sin16s_gen::@11 to mul_u16_sel [phi:sin16s_gen::@11->mul_u16_sel] - mul_u16_sel_from_b11: - //SEG175 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@11->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #1 - //SEG176 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s_gen::@11->mul_u16_sel#1] -- vwuz1=vwuc1 - lda #<$10000/6 - sta mul_u16_sel.v2 - lda #>$10000/6 - sta mul_u16_sel.v2+1 - //SEG177 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s_gen::@11->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG178 [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return_10 - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return_10+1 - jmp b12 - //SEG179 sin16s_gen::@12 - b12: - //SEG180 [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) - // (word) sin16s_gen::x3_6#0 = (word) mul_u16_sel::return#10 // register copy zp ZP_WORD:6 - //SEG181 [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz1 - lda x1 - sec - sbc usinx - sta usinx - lda x1+1 - sbc usinx+1 - sta usinx+1 - //SEG182 [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) - // (word) mul_u16_sel::v1#3 = (word) sin16s_gen::x3#0 // register copy zp ZP_WORD:8 - //SEG183 [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG184 [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - //SEG185 [112] phi from sin16s_gen::@12 to mul_u16_sel [phi:sin16s_gen::@12->mul_u16_sel] - mul_u16_sel_from_b12: - //SEG186 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@12->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #0 - //SEG187 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s_gen::@12->mul_u16_sel#1] -- register_copy - //SEG188 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s_gen::@12->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG189 [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - jmp b13 - //SEG190 sin16s_gen::@13 - b13: - //SEG191 [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) - // (word) sin16s_gen::x4#0 = (word) mul_u16_sel::return#11 // register copy zp ZP_WORD:8 - //SEG192 [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) - // (word) mul_u16_sel::v1#4 = (word) sin16s_gen::x4#0 // register copy zp ZP_WORD:8 - //SEG193 [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG194 [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - //SEG195 [112] phi from sin16s_gen::@13 to mul_u16_sel [phi:sin16s_gen::@13->mul_u16_sel] - mul_u16_sel_from_b13: - //SEG196 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@13->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #0 - //SEG197 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s_gen::@13->mul_u16_sel#1] -- register_copy - //SEG198 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s_gen::@13->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG199 [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - jmp b14 - //SEG200 sin16s_gen::@14 - b14: - //SEG201 [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) - // (word) sin16s_gen::x5#0 = (word) mul_u16_sel::return#12 // register copy zp ZP_WORD:8 - //SEG202 [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) - // (word) mul_u16_sel::v1#5 = (word) sin16s_gen::x5#0 // register copy zp ZP_WORD:8 - //SEG203 [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - //SEG204 [112] phi from sin16s_gen::@14 to mul_u16_sel [phi:sin16s_gen::@14->mul_u16_sel] - mul_u16_sel_from_b14: - //SEG205 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s_gen::@14->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #3 - //SEG206 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s_gen::@14->mul_u16_sel#1] -- vwuz1=vwuc1 - lda #<$10000/$80 - sta mul_u16_sel.v2 - lda #>$10000/$80 - sta mul_u16_sel.v2+1 - //SEG207 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s_gen::@14->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG208 [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) - // (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#14 // register copy zp ZP_WORD:18 - jmp b15 - //SEG209 sin16s_gen::@15 - b15: - //SEG210 [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) - // (word) sin16s_gen::x5_128#0 = (word) mul_u16_sel::return#13 // register copy zp ZP_WORD:18 - //SEG211 [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) -- vwuz1=vwuz1_plus_vwuz2 - lda usinx - clc - adc x5_128 - sta usinx - lda usinx+1 - adc x5_128+1 - sta usinx+1 - //SEG212 [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ) -- vbuyy_eq_0_then_la1 - cpy #0 - beq b19 - jmp b7 - //SEG213 sin16s_gen::@7 - b7: - //SEG214 [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) -- vwsz1=_neg_vwsz1 - sec - lda sinx - eor #$ff - adc #0 - sta sinx - lda sinx+1 - eor #$ff - adc #0 - sta sinx+1 - //SEG215 [103] phi from sin16s_gen::@19 sin16s_gen::@7 to sin16s_gen::@4 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4] - b4_from_b19: - b4_from_b7: - //SEG216 [103] phi (signed word) sin16s_gen::sinx#2 = (signed word~) sin16s_gen::sinx#3 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4#0] -- register_copy + sta sin16s.x+3 + //SEG138 [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 ] ) + jsr sin16s + //SEG139 [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) + // (signed word) sin16s::return#0 = (signed word) sin16s::return#1 // register copy zp ZP_WORD:6 jmp b4 - //SEG217 sin16s_gen::@4 + //SEG140 sin16s_gen::@4 b4: - //SEG218 [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- _deref_pwsz1=vwsz2 + //SEG141 [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 ] ) + // (signed word~) sin16s_gen::$1 = (signed word) sin16s::return#0 // register copy zp ZP_WORD:6 + //SEG142 [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 ] ) -- _deref_pwsz1=vwsz2 ldy #0 - lda sinx + lda _1 sta (sintab),y iny - lda sinx+1 + lda _1+1 sta (sintab),y - //SEG219 [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) -- pwsz1=pwsz1_plus_vbuc1 + //SEG143 [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 ] ) -- pwsz1=pwsz1_plus_vbuc1 clc lda sintab adc #<2 @@ -7800,7 +7492,7 @@ sin16s_gen: { lda sintab+1 adc #>2 sta sintab+1 - //SEG220 [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) -- vduz1=vduz1_plus_vduz2 + //SEG144 [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 ] ) -- vduz1=vduz1_plus_vduz2 lda x clc adc step @@ -7814,12 +7506,12 @@ sin16s_gen: { lda x+3 adc step+3 sta x+3 - //SEG221 [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ 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 ] ) -- vwuz1=_inc_vwuz1 + //SEG145 [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 ] ) -- vwuz1=_inc_vwuz1 inc i bne !+ inc i+1 !: - //SEG222 [108] 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 ] ) -- vwuz1_lt_vwuc1_then_la1 + //SEG146 [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 ] ) -- vwuz1_lt_vwuc1_then_la1 lda i+1 cmp #>main.wavelength bcc b1_from_b4 @@ -7829,34 +7521,333 @@ sin16s_gen: { bcc b1_from_b4 !: jmp breturn - //SEG223 sin16s_gen::@return + //SEG147 sin16s_gen::@return breturn: - //SEG224 [109] return [ ] ( main:2::sin16s_gen:5 [ ] ) + //SEG148 [72] return [ ] ( main:2::sin16s_gen:5 [ ] ) rts - //SEG225 sin16s_gen::@19 - b19: - //SEG226 [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) - // (signed word~) sin16s_gen::sinx#3 = (signed word)(word) sin16s_gen::usinx#1 // register copy zp ZP_WORD:6 - jmp b4_from_b19 - //SEG227 sin16s_gen::@17 - b17: - //SEG228 [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) -- vduz1=vduz2 - lda x - sta xp - lda x+1 - sta xp+1 - lda x+2 - sta xp+2 - lda x+3 - sta xp+3 - //SEG229 [65] phi from sin16s_gen::@17 to sin16s_gen::@2 [phi:sin16s_gen::@17->sin16s_gen::@2] - b2_from_b17: - //SEG230 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@17->sin16s_gen::@2#0] -- vbuyy=vbuc1 - ldy #0 - //SEG231 [65] phi (dword) sin16s_gen::xp#3 = (dword~) sin16s_gen::xp#7 [phi:sin16s_gen::@17->sin16s_gen::@2#1] -- register_copy - jmp b2 } -//SEG232 mul_u16_sel +//SEG149 sin16s +sin16s: { + .label _6 = $e + .label x = $e + .label return = 6 + .label x1 = $1f + .label x2 = 8 + .label x3 = 8 + .label x3_6 = 6 + .label usinx = 6 + .label x4 = 8 + .label x5 = 8 + .label x5_128 = $12 + .label sinx = 6 + //SEG150 [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#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::x#0 ] ) -- vduz1_lt_vduc1_then_la1 + lda x+3 + cmp #>PI_u4f28>>$10 + bcc b1_from_sin16s + bne !+ + lda x+2 + cmp #<PI_u4f28>>$10 + bcc b1_from_sin16s + bne !+ + lda x+1 + cmp #>PI_u4f28 + bcc b1_from_sin16s + bne !+ + lda x + cmp #<PI_u4f28 + bcc b1_from_sin16s + !: + jmp b4 + //SEG151 sin16s::@4 + b4: + //SEG152 [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#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::x#1 ] ) -- vduz1=vduz1_minus_vduc1 + lda x + sec + sbc #<PI_u4f28 + sta x + lda x+1 + sbc #>PI_u4f28 + sta x+1 + lda x+2 + sbc #<PI_u4f28>>$10 + sta x+2 + lda x+3 + sbc #>PI_u4f28>>$10 + sta x+3 + //SEG153 [75] phi from sin16s::@4 to sin16s::@1 [phi:sin16s::@4->sin16s::@1] + b1_from_b4: + //SEG154 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@4->sin16s::@1#0] -- vbuxx=vbuc1 + ldx #1 + //SEG155 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#1 [phi:sin16s::@4->sin16s::@1#1] -- register_copy + jmp b1 + //SEG156 [75] phi from sin16s to sin16s::@1 [phi:sin16s->sin16s::@1] + b1_from_sin16s: + //SEG157 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s->sin16s::@1#0] -- vbuxx=vbuc1 + ldx #0 + //SEG158 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#0 [phi:sin16s->sin16s::@1#1] -- register_copy + jmp b1 + //SEG159 sin16s::@1 + b1: + //SEG160 [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 + lda x+3 + cmp #>PI_HALF_u4f28>>$10 + bcc b2_from_b1 + bne !+ + lda x+2 + cmp #<PI_HALF_u4f28>>$10 + bcc b2_from_b1 + bne !+ + lda x+1 + cmp #>PI_HALF_u4f28 + bcc b2_from_b1 + bne !+ + lda x + cmp #<PI_HALF_u4f28 + bcc b2_from_b1 + !: + jmp b5 + //SEG161 sin16s::@5 + b5: + //SEG162 [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#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#10 sin16s::x#2 ] ) -- vduz1=vduc1_minus_vduz1 + lda #<PI_u4f28 + sec + sbc x + sta x + lda #>PI_u4f28 + sbc x+1 + sta x+1 + lda #<PI_u4f28>>$10 + sbc x+2 + sta x+2 + lda #>PI_u4f28>>$10 + sbc x+3 + sta x+3 + //SEG163 [78] phi from sin16s::@1 sin16s::@5 to sin16s::@2 [phi:sin16s::@1/sin16s::@5->sin16s::@2] + b2_from_b1: + b2_from_b5: + //SEG164 [78] phi (dword) sin16s::x#6 = (dword) sin16s::x#4 [phi:sin16s::@1/sin16s::@5->sin16s::@2#0] -- register_copy + jmp b2 + //SEG165 sin16s::@2 + b2: + //SEG166 [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 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#10 sin16s::$6 ] ) -- vduz1=vduz1_rol_3 + ldy #3 + !: + asl _6 + rol _6+1 + rol _6+2 + rol _6+3 + dey + bne !- + //SEG167 [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 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#10 sin16s::x1#0 ] ) -- vwuz1=_hi_vduz2 + lda _6+2 + sta x1 + lda _6+3 + sta x1+1 + //SEG168 [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v1 + lda x1+1 + sta mul_u16_sel.v1+1 + //SEG169 [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG170 [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + //SEG171 [116] phi from sin16s::@2 to mul_u16_sel [phi:sin16s::@2->mul_u16_sel] + mul_u16_sel_from_b2: + //SEG172 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@2->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #0 + sta mul_u16_sel.select + //SEG173 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s::@2->mul_u16_sel#1] -- register_copy + //SEG174 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s::@2->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG175 [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + jmp b8 + //SEG176 sin16s::@8 + b8: + //SEG177 [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x2#0 ] ) + // (word) sin16s::x2#0 = (word) mul_u16_sel::return#0 // register copy zp ZP_WORD:8 + //SEG178 [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) + // (word) mul_u16_sel::v1#1 = (word) sin16s::x2#0 // register copy zp ZP_WORD:8 + //SEG179 [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG180 [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + //SEG181 [116] phi from sin16s::@8 to mul_u16_sel [phi:sin16s::@8->mul_u16_sel] + mul_u16_sel_from_b8: + //SEG182 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@8->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #1 + sta mul_u16_sel.select + //SEG183 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s::@8->mul_u16_sel#1] -- register_copy + //SEG184 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s::@8->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG185 [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + jmp b9 + //SEG186 sin16s::@9 + b9: + //SEG187 [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 ] ) + // (word) sin16s::x3#0 = (word) mul_u16_sel::return#1 // register copy zp ZP_WORD:8 + //SEG188 [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) + // (word) mul_u16_sel::v1#2 = (word) sin16s::x3#0 // register copy zp ZP_WORD:8 + //SEG189 [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ) + //SEG190 [116] phi from sin16s::@9 to mul_u16_sel [phi:sin16s::@9->mul_u16_sel] + mul_u16_sel_from_b9: + //SEG191 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #1 + sta mul_u16_sel.select + //SEG192 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mul_u16_sel#1] -- vwuz1=vwuc1 + lda #<$10000/6 + sta mul_u16_sel.v2 + lda #>$10000/6 + sta mul_u16_sel.v2+1 + //SEG193 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s::@9->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG194 [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return_10 + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return_10+1 + jmp b10 + //SEG195 sin16s::@10 + b10: + //SEG196 [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ) + // (word) sin16s::x3_6#0 = (word) mul_u16_sel::return#10 // register copy zp ZP_WORD:6 + //SEG197 [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz1 + lda x1 + sec + sbc usinx + sta usinx + lda x1+1 + sbc usinx+1 + sta usinx+1 + //SEG198 [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) + // (word) mul_u16_sel::v1#3 = (word) sin16s::x3#0 // register copy zp ZP_WORD:8 + //SEG199 [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG200 [98] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + //SEG201 [116] phi from sin16s::@10 to mul_u16_sel [phi:sin16s::@10->mul_u16_sel] + mul_u16_sel_from_b10: + //SEG202 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@10->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #0 + sta mul_u16_sel.select + //SEG203 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s::@10->mul_u16_sel#1] -- register_copy + //SEG204 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s::@10->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG205 [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + jmp b11 + //SEG206 sin16s::@11 + b11: + //SEG207 [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) + // (word) sin16s::x4#0 = (word) mul_u16_sel::return#11 // register copy zp ZP_WORD:8 + //SEG208 [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) + // (word) mul_u16_sel::v1#4 = (word) sin16s::x4#0 // register copy zp ZP_WORD:8 + //SEG209 [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG210 [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + //SEG211 [116] phi from sin16s::@11 to mul_u16_sel [phi:sin16s::@11->mul_u16_sel] + mul_u16_sel_from_b11: + //SEG212 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@11->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #0 + sta mul_u16_sel.select + //SEG213 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s::@11->mul_u16_sel#1] -- register_copy + //SEG214 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s::@11->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG215 [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#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#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + jmp b12 + //SEG216 sin16s::@12 + b12: + //SEG217 [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5#0 ] ) + // (word) sin16s::x5#0 = (word) mul_u16_sel::return#12 // register copy zp ZP_WORD:8 + //SEG218 [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#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::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) + // (word) mul_u16_sel::v1#5 = (word) sin16s::x5#0 // register copy zp ZP_WORD:8 + //SEG219 [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + //SEG220 [116] phi from sin16s::@12 to mul_u16_sel [phi:sin16s::@12->mul_u16_sel] + mul_u16_sel_from_b12: + //SEG221 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s::@12->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #3 + sta mul_u16_sel.select + //SEG222 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s::@12->mul_u16_sel#1] -- vwuz1=vwuc1 + lda #<$10000/$80 + sta mul_u16_sel.v2 + lda #>$10000/$80 + sta mul_u16_sel.v2+1 + //SEG223 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s::@12->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG224 [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( 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#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) + // (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#14 // register copy zp ZP_WORD:18 + jmp b13 + //SEG225 sin16s::@13 + b13: + //SEG226 [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) + // (word) sin16s::x5_128#0 = (word) mul_u16_sel::return#13 // register copy zp ZP_WORD:18 + //SEG227 [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#1 ] ) -- vwuz1=vwuz1_plus_vwuz2 + lda usinx + clc + adc x5_128 + sta usinx + lda usinx+1 + adc x5_128+1 + sta usinx+1 + //SEG228 [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ 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 ] ) -- vbuxx_eq_0_then_la1 + cpx #0 + beq b16 + jmp b6 + //SEG229 sin16s::@6 + b6: + //SEG230 [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#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::sinx#1 ] ) -- vwsz1=_neg_vwsz1 + sec + lda sinx + eor #$ff + adc #0 + sta sinx + lda sinx+1 + eor #$ff + adc #0 + sta sinx+1 + //SEG231 [113] phi from sin16s::@16 sin16s::@6 to sin16s::@3 [phi:sin16s::@16/sin16s::@6->sin16s::@3] + b3_from_b16: + b3_from_b6: + //SEG232 [113] phi (signed word) sin16s::return#1 = (signed word~) sin16s::return#5 [phi:sin16s::@16/sin16s::@6->sin16s::@3#0] -- register_copy + jmp b3 + //SEG233 sin16s::@3 + b3: + jmp breturn + //SEG234 sin16s::@return + breturn: + //SEG235 [114] return [ sin16s::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::return#1 ] ) + rts + //SEG236 sin16s::@16 + b16: + //SEG237 [115] (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 ] ) + // (signed word~) sin16s::return#5 = (signed word)(word) sin16s::usinx#1 // register copy zp ZP_WORD:6 + jmp b3_from_b16 +} +//SEG238 mul_u16_sel mul_u16_sel: { .label _0 = $e .label _1 = $e @@ -7865,53 +7856,55 @@ mul_u16_sel: { .label return = 8 .label return_10 = 6 .label return_13 = $12 + .label select = $14 .label return_14 = $12 - //SEG233 [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 + //SEG239 [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 lda v1 sta mul16u.a lda v1+1 sta mul16u.a+1 - //SEG234 [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) + //SEG240 [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) // (word) mul16u::b#0 = (word) mul_u16_sel::v2#6 // register copy zp ZP_WORD:18 - //SEG235 [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + //SEG241 [119] call mul16u param-assignment [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) jsr mul16u - //SEG236 [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) + //SEG242 [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) // (dword) mul16u::return#2 = (dword) mul16u::res#2 // register copy zp ZP_DWORD:14 jmp b2 - //SEG237 mul_u16_sel::@2 + //SEG243 mul_u16_sel::@2 b2: - //SEG238 [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) + //SEG244 [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) // (dword~) mul_u16_sel::$0 = (dword) mul16u::return#2 // register copy zp ZP_DWORD:14 - //SEG239 [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz1_rol_vbuxx - cpx #0 + //SEG245 [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ 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#10 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#10 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#10 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#10 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#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz1_rol_vbuz2 + ldy select + cpy #0 beq !e+ !: asl _1 rol _1+1 rol _1+2 rol _1+3 - dex + dey bne !- !e: - //SEG240 [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 + //SEG246 [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 lda _1+2 sta return_14 lda _1+3 sta return_14+1 jmp breturn - //SEG241 mul_u16_sel::@return + //SEG247 mul_u16_sel::@return breturn: - //SEG242 [120] return [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) + //SEG248 [124] return [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) rts } -//SEG243 mul16u +//SEG249 mul16u mul16u: { - .label mb = $16 - .label a = $14 + .label mb = $17 + .label a = $15 .label res = $e .label b = $12 .label return = $e - //SEG244 [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 + //SEG250 [125] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 lda b sta mb lda b+1 @@ -7919,42 +7912,42 @@ mul16u: { lda #0 sta mb+2 sta mb+3 - //SEG245 [122] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] + //SEG251 [126] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] b1_from_mul16u: - //SEG246 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy - //SEG247 [122] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 + //SEG252 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy + //SEG253 [126] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 lda #0 sta res lda #0 sta res+1 sta res+2 sta res+3 - //SEG248 [122] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy + //SEG254 [126] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy jmp b1 - //SEG249 mul16u::@1 + //SEG255 mul16u::@1 b1: - //SEG250 [123] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 + //SEG256 [127] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 lda a bne b2 lda a+1 bne b2 jmp breturn - //SEG251 mul16u::@return + //SEG257 mul16u::@return breturn: - //SEG252 [124] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + //SEG258 [128] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) rts - //SEG253 mul16u::@2 + //SEG259 mul16u::@2 b2: - //SEG254 [125] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuaa=vwuz1_band_vbuc1 + //SEG260 [129] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuaa=vwuz1_band_vbuc1 lda a and #1 - //SEG255 [126] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuaa_eq_0_then_la1 + //SEG261 [130] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuaa_eq_0_then_la1 cmp #0 beq b4_from_b2 jmp b7 - //SEG256 mul16u::@7 + //SEG262 mul16u::@7 b7: - //SEG257 [127] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 + //SEG263 [131] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 lda res clc adc mb @@ -7968,88 +7961,88 @@ mul16u: { lda res+3 adc mb+3 sta res+3 - //SEG258 [128] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4] + //SEG264 [132] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4] b4_from_b2: b4_from_b7: - //SEG259 [128] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy + //SEG265 [132] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy jmp b4 - //SEG260 mul16u::@4 + //SEG266 mul16u::@4 b4: - //SEG261 [129] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 + //SEG267 [133] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 clc ror a+1 ror a - //SEG262 [130] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 + //SEG268 [134] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 asl mb rol mb+1 rol mb+2 rol mb+3 - //SEG263 [122] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1] + //SEG269 [126] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1] b1_from_b4: - //SEG264 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy - //SEG265 [122] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy - //SEG266 [122] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy + //SEG270 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy + //SEG271 [126] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy + //SEG272 [126] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy jmp b1 } -//SEG267 div32u16u +//SEG273 div32u16u div32u16u: { - .label return = $1a + .label return = $1b .label quotient_hi = $12 .label quotient_lo = 8 - //SEG268 [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) - //SEG269 [141] phi from div32u16u to divr16u [phi:div32u16u->divr16u] + //SEG274 [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) + //SEG275 [145] phi from div32u16u to divr16u [phi:div32u16u->divr16u] divr16u_from_div32u16u: - //SEG270 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 + //SEG276 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 lda #<main.wavelength sta divr16u.divisor lda #>main.wavelength sta divr16u.divisor+1 - //SEG271 [141] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 + //SEG277 [145] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 lda #<PI2_u4f28>>16 sta divr16u.dividend lda #>PI2_u4f28>>16 sta divr16u.dividend+1 - //SEG272 [141] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 + //SEG278 [145] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 lda #<0 sta divr16u.rem lda #>0 sta divr16u.rem+1 jsr divr16u - //SEG273 [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) + //SEG279 [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) // (word) divr16u::return#2 = (word) divr16u::return#0 // register copy zp ZP_WORD:8 jmp b2 - //SEG274 div32u16u::@2 + //SEG280 div32u16u::@2 b2: - //SEG275 [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 + //SEG281 [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 lda divr16u.return sta quotient_hi lda divr16u.return+1 sta quotient_hi+1 - //SEG276 [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) + //SEG282 [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) // (word) divr16u::rem#4 = (word) rem16u#1 // register copy zp ZP_WORD:4 - //SEG277 [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) - //SEG278 [141] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u] + //SEG283 [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) + //SEG284 [145] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u] divr16u_from_b2: - //SEG279 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 + //SEG285 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 lda #<main.wavelength sta divr16u.divisor lda #>main.wavelength sta divr16u.divisor+1 - //SEG280 [141] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 + //SEG286 [145] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 lda #<PI2_u4f28&$ffff sta divr16u.dividend lda #>PI2_u4f28&$ffff sta divr16u.dividend+1 - //SEG281 [141] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy + //SEG287 [145] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy jsr divr16u - //SEG282 [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) + //SEG288 [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) // (word) divr16u::return#3 = (word) divr16u::return#0 // register copy zp ZP_WORD:8 jmp b3 - //SEG283 div32u16u::@3 + //SEG289 div32u16u::@3 b3: - //SEG284 [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) + //SEG290 [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) // (word) div32u16u::quotient_lo#0 = (word) divr16u::return#3 // register copy zp ZP_WORD:8 - //SEG285 [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 + //SEG291 [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 lda quotient_hi sta return+2 lda quotient_hi+1 @@ -8059,70 +8052,70 @@ div32u16u: { lda quotient_lo+1 sta return+1 jmp breturn - //SEG286 div32u16u::@return + //SEG292 div32u16u::@return breturn: - //SEG287 [140] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) + //SEG293 [144] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) rts } -//SEG288 divr16u +//SEG294 divr16u divr16u: { .label rem = 4 .label dividend = 6 .label quotient = 8 .label return = 8 .label divisor = 2 - //SEG289 [142] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1] + //SEG295 [146] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1] b1_from_divr16u: - //SEG290 [142] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 + //SEG296 [146] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG291 [142] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 + //SEG297 [146] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 lda #<0 sta quotient lda #>0 sta quotient+1 - //SEG292 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy - //SEG293 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy + //SEG298 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy + //SEG299 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy jmp b1 - //SEG294 [142] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1] + //SEG300 [146] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1] b1_from_b3: - //SEG295 [142] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy - //SEG296 [142] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy - //SEG297 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy - //SEG298 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy + //SEG301 [146] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy + //SEG302 [146] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy + //SEG303 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy + //SEG304 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy jmp b1 - //SEG299 divr16u::@1 + //SEG305 divr16u::@1 b1: - //SEG300 [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 + //SEG306 [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 asl rem rol rem+1 - //SEG301 [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuaa=_hi_vwuz1 + //SEG307 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG302 [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuaa=vbuaa_band_vbuc1 + //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuaa=vbuaa_band_vbuc1 and #$80 - //SEG303 [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuaa_eq_0_then_la1 + //SEG309 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuaa_eq_0_then_la1 cmp #0 beq b2_from_b1 jmp b4 - //SEG304 divr16u::@4 + //SEG310 divr16u::@4 b4: - //SEG305 [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 + //SEG311 [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 lda #1 ora rem sta rem - //SEG306 [148] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2] + //SEG312 [152] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2] b2_from_b1: b2_from_b4: - //SEG307 [148] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy + //SEG313 [152] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy jmp b2 - //SEG308 divr16u::@2 + //SEG314 divr16u::@2 b2: - //SEG309 [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 + //SEG315 [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 asl dividend rol dividend+1 - //SEG310 [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 + //SEG316 [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 asl quotient rol quotient+1 - //SEG311 [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 + //SEG317 [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 lda rem+1 cmp divisor+1 bcc b3_from_b2 @@ -8132,14 +8125,14 @@ divr16u: { bcc b3_from_b2 !: jmp b5 - //SEG312 divr16u::@5 + //SEG318 divr16u::@5 b5: - //SEG313 [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 + //SEG319 [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 inc quotient bne !+ inc quotient+1 !: - //SEG314 [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 + //SEG320 [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 lda rem sec sbc divisor @@ -8147,33 +8140,33 @@ divr16u: { lda rem+1 sbc divisor+1 sta rem+1 - //SEG315 [154] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3] + //SEG321 [158] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3] b3_from_b2: b3_from_b5: - //SEG316 [154] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy - //SEG317 [154] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy + //SEG322 [158] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy + //SEG323 [158] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy jmp b3 - //SEG318 divr16u::@3 + //SEG324 divr16u::@3 b3: - //SEG319 [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx=_inc_vbuxx + //SEG325 [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG320 [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1_from_b3 jmp b6 - //SEG321 divr16u::@6 + //SEG327 divr16u::@6 b6: - //SEG322 [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) + //SEG328 [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) // (word) rem16u#1 = (word) divr16u::rem#11 // register copy zp ZP_WORD:4 jmp breturn - //SEG323 divr16u::@return + //SEG329 divr16u::@return breturn: - //SEG324 [158] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) + //SEG330 [162] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) rts } ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b25 +Removing instruction jmp b26 Removing instruction jmp bend Removing instruction jmp b5 Removing instruction jmp b1 @@ -8195,20 +8188,22 @@ Removing instruction jmp breturn Removing instruction jmp breturn Removing instruction jmp b1 Removing instruction jmp breturn -Removing instruction jmp b9 +Removing instruction jmp b3 +Removing instruction jmp b1 +Removing instruction jmp b4 +Removing instruction jmp breturn +Removing instruction jmp b4 Removing instruction jmp b1 Removing instruction jmp b5 Removing instruction jmp b2 -Removing instruction jmp b6 -Removing instruction jmp b3 +Removing instruction jmp b8 +Removing instruction jmp b9 Removing instruction jmp b10 Removing instruction jmp b11 Removing instruction jmp b12 Removing instruction jmp b13 -Removing instruction jmp b14 -Removing instruction jmp b15 -Removing instruction jmp b7 -Removing instruction jmp b4 +Removing instruction jmp b6 +Removing instruction jmp b3 Removing instruction jmp breturn Removing instruction jmp b2 Removing instruction jmp breturn @@ -8244,22 +8239,22 @@ Replacing label b1_from_b2 with b1 Replacing label b1_from_print_sword with b1 Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 -Replacing label b3_from_b2 with b3 -Replacing label b3_from_b2 with b3 -Replacing label b3_from_b2 with b3 -Replacing label b3_from_b2 with b3 Replacing label b1_from_b4 with b1 Replacing label b1_from_b4 with b1 -Replacing label b4_from_b19 with b4 +Replacing label b2_from_b1 with b2 +Replacing label b2_from_b1 with b2 +Replacing label b2_from_b1 with b2 +Replacing label b2_from_b1 with b2 +Replacing label b3_from_b16 with b3 Replacing label b4_from_b2 with b4 Replacing label b2_from_b1 with b2 Replacing label b3_from_b2 with b3 Replacing label b3_from_b2 with b3 Replacing label b1_from_b3 with b1 Removing instruction bbegin: -Removing instruction b25_from_bbegin: -Removing instruction main_from_b25: -Removing instruction bend_from_b25: +Removing instruction b26_from_bbegin: +Removing instruction main_from_b26: +Removing instruction bend_from_b26: Removing instruction b5_from_main: Removing instruction print_cls_from_b5: Removing instruction b1_from_b8: @@ -8277,10 +8272,11 @@ Removing instruction b1_from_print_sword: Removing instruction b1_from_b4: Removing instruction b1_from_b1: Removing instruction b1_from_b4: -Removing instruction b3_from_b2: +Removing instruction b2_from_b1: +Removing instruction b2_from_b5: +Removing instruction b3_from_b16: Removing instruction b3_from_b6: -Removing instruction b4_from_b19: -Removing instruction b4_from_b7: +Removing instruction breturn: Removing instruction b4_from_b2: Removing instruction b4_from_b7: Removing instruction b1_from_b3: @@ -8289,7 +8285,7 @@ Removing instruction b2_from_b4: Removing instruction b3_from_b2: Removing instruction b3_from_b5: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b25: +Removing instruction b26: Removing instruction bend: Removing instruction sin16s_gen_from_main: Removing instruction b5: @@ -8314,12 +8310,18 @@ Removing instruction breturn: Removing instruction b1_from_print_cls: Removing instruction breturn: Removing instruction div32u16u_from_sin16s_gen: -Removing instruction b9: -Removing instruction b1_from_b9: +Removing instruction b3: +Removing instruction b1_from_b3: +Removing instruction b4: +Removing instruction breturn: +Removing instruction b4: +Removing instruction b1_from_b4: Removing instruction b5: -Removing instruction b2_from_b5: -Removing instruction b6: -Removing instruction mul_u16_sel_from_b3: +Removing instruction mul_u16_sel_from_b2: +Removing instruction b8: +Removing instruction mul_u16_sel_from_b8: +Removing instruction b9: +Removing instruction mul_u16_sel_from_b9: Removing instruction b10: Removing instruction mul_u16_sel_from_b10: Removing instruction b11: @@ -8327,13 +8329,7 @@ Removing instruction mul_u16_sel_from_b11: Removing instruction b12: Removing instruction mul_u16_sel_from_b12: Removing instruction b13: -Removing instruction mul_u16_sel_from_b13: -Removing instruction b14: -Removing instruction mul_u16_sel_from_b14: -Removing instruction b15: -Removing instruction b7: -Removing instruction breturn: -Removing instruction b2_from_b17: +Removing instruction b6: Removing instruction b2: Removing instruction breturn: Removing instruction b1_from_mul16u: @@ -8351,8 +8347,10 @@ Removing instruction b5: Removing instruction b6: Removing instruction breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Skipping double jump to b4 in beq b19 +Skipping double jump to b3 in beq b16 Succesful ASM optimization Pass5DoubleJumpElimination +Relabelling long label b1_from_sin16s to b4 +Succesful ASM optimization Pass5RelabelLongLabels Removing instruction jmp b1 Removing instruction jmp b1 Removing instruction jmp b1 @@ -8360,19 +8358,13 @@ Removing instruction jmp b1 Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination -Removing instruction b19: +Removing instruction b16: Succesful ASM optimization Pass5UnusedLabelElimination -Removing unreachable instruction jmp b4 +Removing unreachable instruction jmp b3 Succesful ASM optimization Pass5UnreachableCodeElimination -Fixing long branch [382] bcc b1 to bcs -Fixing long branch [388] bcc b1 to bcs -Fixing long branch [193] bcc b17 to bcs -Fixing long branch [199] bcc b17 to bcs -Fixing long branch [205] bcc b17 to bcs -Fixing long branch [211] bcc b17 to bcs FINAL SYMBOL TABLE -(label) @25 +(label) @26 (label) @begin (label) @end (dword) PI2_u4f28 @@ -8405,8 +8397,8 @@ FINAL SYMBOL TABLE (word) div32u16u::quotient_lo (word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:8 4.0 (dword) div32u16u::return -(dword) div32u16u::return#0 return zp ZP_DWORD:26 4.0 -(dword) div32u16u::return#1 return zp ZP_DWORD:26 1.3333333333333333 +(dword) div32u16u::return#0 return zp ZP_DWORD:27 4.0 +(dword) div32u16u::return#1 return zp ZP_DWORD:27 1.3333333333333333 (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 @@ -8471,15 +8463,15 @@ FINAL SYMBOL TABLE (label) mul16u::@7 (label) mul16u::@return (word) mul16u::a -(word) mul16u::a#0 a zp ZP_WORD:20 101.0 -(word) mul16u::a#1 a zp ZP_WORD:20 1.3333333333333333 -(word) mul16u::a#2 a zp ZP_WORD:20 67.66666666666666 +(word) mul16u::a#0 a zp ZP_WORD:21 101.0 +(word) mul16u::a#1 a zp ZP_WORD:21 1.3333333333333333 +(word) mul16u::a#2 a zp ZP_WORD:21 67.66666666666666 (word) mul16u::b (word) mul16u::b#0 b zp ZP_WORD:18 4.0 (dword) mul16u::mb -(dword) mul16u::mb#0 mb zp ZP_DWORD:22 4.0 -(dword) mul16u::mb#1 mb zp ZP_DWORD:22 202.0 -(dword) mul16u::mb#2 mb zp ZP_DWORD:22 43.57142857142858 +(dword) mul16u::mb#0 mb zp ZP_DWORD:23 4.0 +(dword) mul16u::mb#1 mb zp ZP_DWORD:23 202.0 +(dword) mul16u::mb#2 mb zp ZP_DWORD:23 43.57142857142858 (dword) mul16u::res (dword) mul16u::res#1 res zp ZP_DWORD:14 202.0 (dword) mul16u::res#2 res zp ZP_DWORD:14 50.83333333333333 @@ -8492,29 +8484,29 @@ FINAL SYMBOL TABLE (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:8 22.0 -(word) mul_u16_sel::return#1 return zp ZP_WORD:8 22.0 -(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:6 22.0 -(word) mul_u16_sel::return#11 return zp ZP_WORD:8 22.0 -(word) mul_u16_sel::return#12 return zp ZP_WORD:8 22.0 -(word) mul_u16_sel::return#13 return#13 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::return#14 return#14 zp ZP_WORD:18 8.5 +(word) mul_u16_sel::return#0 return zp ZP_WORD:8 4.0 +(word) mul_u16_sel::return#1 return zp ZP_WORD:8 4.0 +(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:6 4.0 +(word) mul_u16_sel::return#11 return zp ZP_WORD:8 4.0 +(word) mul_u16_sel::return#12 return zp ZP_WORD:8 4.0 +(word) mul_u16_sel::return#13 return#13 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::return#14 return#14 zp ZP_WORD:18 1.75 (byte) mul_u16_sel::select -(byte) mul_u16_sel::select#6 reg byte x 0.3333333333333333 +(byte) mul_u16_sel::select#6 select zp ZP_BYTE:20 0.3333333333333333 (word) mul_u16_sel::v1 -(word) mul_u16_sel::v1#0 v1 zp ZP_WORD:8 11.0 -(word) mul_u16_sel::v1#1 v1 zp ZP_WORD:8 11.0 -(word) mul_u16_sel::v1#2 v1 zp ZP_WORD:8 22.0 -(word) mul_u16_sel::v1#3 v1 zp ZP_WORD:8 11.0 -(word) mul_u16_sel::v1#4 v1 zp ZP_WORD:8 11.0 -(word) mul_u16_sel::v1#5 v1 zp ZP_WORD:8 22.0 -(word) mul_u16_sel::v1#6 v1 zp ZP_WORD:8 68.0 +(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 4.0 +(word) mul_u16_sel::v1#6 v1 zp ZP_WORD:8 14.0 (word) mul_u16_sel::v2 -(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::v2#6 v2 zp ZP_WORD:18 23.0 +(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::v2#6 v2 zp ZP_WORD:18 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 @@ -8561,92 +8553,97 @@ FINAL SYMBOL TABLE (word) print_word::w (word) rem16u (word) rem16u#1 rem16u zp ZP_WORD:4 0.8 +(signed word()) sin16s((dword) sin16s::x) +(dword~) sin16s::$6 $6 zp ZP_DWORD:14 4.0 +(label) sin16s::@1 +(label) sin16s::@10 +(label) sin16s::@11 +(label) sin16s::@12 +(label) sin16s::@13 +(label) sin16s::@16 +(label) sin16s::@2 +(label) sin16s::@3 +(label) sin16s::@4 +(label) sin16s::@5 +(label) sin16s::@6 +(label) sin16s::@8 +(label) sin16s::@9 +(label) sin16s::@return +(byte) sin16s::isUpper +(byte) sin16s::isUpper#10 reg byte x 0.05555555555555555 +(signed word) sin16s::return +(signed word) sin16s::return#0 return zp ZP_WORD:6 22.0 +(signed word) sin16s::return#1 return zp ZP_WORD:6 5.0 +(signed word~) sin16s::return#5 return zp ZP_WORD:6 4.0 +(signed word) sin16s::sinx +(signed word) sin16s::sinx#1 sinx zp ZP_WORD:6 4.0 +(word) sin16s::usinx +(word) sin16s::usinx#0 usinx zp ZP_WORD:6 0.26666666666666666 +(word) sin16s::usinx#1 usinx zp ZP_WORD:6 1.0 +(dword) sin16s::x +(dword) sin16s::x#0 x zp ZP_DWORD:14 8.5 +(dword) sin16s::x#1 x zp ZP_DWORD:14 4.0 +(dword) sin16s::x#2 x zp ZP_DWORD:14 4.0 +(dword) sin16s::x#4 x zp ZP_DWORD:14 5.0 +(dword) sin16s::x#6 x zp ZP_DWORD:14 6.0 +(word) sin16s::x1 +(word) sin16s::x1#0 x1 zp ZP_WORD:31 0.6363636363636365 +(word) sin16s::x2 +(word) sin16s::x2#0 x2 zp ZP_WORD:8 4.0 +(word) sin16s::x3 +(word) sin16s::x3#0 x3 zp ZP_WORD:8 1.0 +(word) sin16s::x3_6 +(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:6 4.0 +(word) sin16s::x4 +(word) sin16s::x4#0 x4 zp ZP_WORD:8 4.0 +(word) sin16s::x5 +(word) sin16s::x5#0 x5 zp ZP_WORD:8 4.0 +(word) sin16s::x5_128 +(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:18 4.0 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength) -(dword~) sin16s_gen::$7 $7 zp ZP_DWORD:14 22.0 +(signed word~) sin16s_gen::$1 $1 zp ZP_WORD:6 22.0 (label) sin16s_gen::@1 -(label) sin16s_gen::@10 -(label) sin16s_gen::@11 -(label) sin16s_gen::@12 -(label) sin16s_gen::@13 -(label) sin16s_gen::@14 -(label) sin16s_gen::@15 -(label) sin16s_gen::@17 -(label) sin16s_gen::@19 -(label) sin16s_gen::@2 (label) sin16s_gen::@3 (label) sin16s_gen::@4 -(label) sin16s_gen::@5 -(label) sin16s_gen::@6 -(label) sin16s_gen::@7 -(label) sin16s_gen::@9 (label) sin16s_gen::@return (word) sin16s_gen::i (word) sin16s_gen::i#1 i zp ZP_WORD:4 16.5 -(word) sin16s_gen::i#10 i zp ZP_WORD:4 0.46808510638297873 -(byte) sin16s_gen::isUpper -(byte) sin16s_gen::isUpper#10 reg byte y 0.3055555555555556 +(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#10 sintab zp ZP_WORD:2 0.7333333333333333 -(signed word) sin16s_gen::sinx -(signed word) sin16s_gen::sinx#1 sinx zp ZP_WORD:6 22.0 -(signed word) sin16s_gen::sinx#2 sinx zp ZP_WORD:6 33.0 -(signed word~) sin16s_gen::sinx#3 sinx zp ZP_WORD:6 22.0 +(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:26 0.26 -(word) sin16s_gen::usinx -(word) sin16s_gen::usinx#0 usinx zp ZP_WORD:6 1.4666666666666666 -(word) sin16s_gen::usinx#1 usinx zp ZP_WORD:6 5.5 +(dword) sin16s_gen::step#0 step zp ZP_DWORD:27 1.1818181818181819 (word) sin16s_gen::wavelength (dword) sin16s_gen::x (dword) sin16s_gen::x#1 x zp ZP_DWORD:10 7.333333333333333 -(dword) sin16s_gen::x#10 x zp ZP_DWORD:10 1.1956521739130435 -(word) sin16s_gen::x1 -(word) sin16s_gen::x1#0 x1 zp ZP_WORD:30 3.5 -(word) sin16s_gen::x2 -(word) sin16s_gen::x2#0 x2 zp ZP_WORD:8 22.0 -(word) sin16s_gen::x3 -(word) sin16s_gen::x3#0 x3 zp ZP_WORD:8 5.5 -(word) sin16s_gen::x3_6 -(word) sin16s_gen::x3_6#0 x3_6 zp ZP_WORD:6 22.0 -(word) sin16s_gen::x4 -(word) sin16s_gen::x4#0 x4 zp ZP_WORD:8 22.0 -(word) sin16s_gen::x5 -(word) sin16s_gen::x5#0 x5 zp ZP_WORD:8 22.0 -(word) sin16s_gen::x5_128 -(word) sin16s_gen::x5_128#0 x5_128 zp ZP_WORD:18 22.0 -(dword) sin16s_gen::xp -(dword) sin16s_gen::xp#1 xp zp ZP_DWORD:14 22.0 -(dword) sin16s_gen::xp#2 xp zp ZP_DWORD:14 22.0 -(dword) sin16s_gen::xp#3 xp zp ZP_DWORD:14 27.5 -(dword) sin16s_gen::xp#5 xp zp ZP_DWORD:14 33.0 -(dword~) sin16s_gen::xp#7 xp zp ZP_DWORD:14 22.0 +(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#10 sin16s_gen::sintab#1 divr16u::divisor#6 ] -zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#10 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_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 mul_u16_sel::return#10 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] +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: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 sin16s::x3_6#0 mul_u16_sel::return#10 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#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 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#10 sin16s_gen::x#1 ] -reg byte y [ sin16s_gen::isUpper#10 ] -zp ZP_DWORD:14 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 sin16s_gen::$7 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ] -zp ZP_WORD:18 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ] -reg byte x [ mul_u16_sel::select#6 ] -zp ZP_WORD:20 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] -zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] +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#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 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 ] +reg byte x [ sin16s::isUpper#10 ] +zp ZP_DWORD:14 [ 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:18 [ mul_u16_sel::v2#6 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#13 sin16s::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ] +zp ZP_BYTE:20 [ mul_u16_sel::select#6 ] +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 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] -zp ZP_DWORD:26 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ] -zp ZP_WORD:30 [ sin16s_gen::x1#0 ] +zp ZP_DWORD:27 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ] +zp ZP_WORD:31 [ sin16s::x1#0 ] reg byte a [ mul16u::$1 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] FINAL ASSEMBLER -Score: 24417 +Score: 20947 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -8660,12 +8657,12 @@ Score: 24417 .label rem16u = 4 .label char_cursor = 8 //SEG2 @begin -//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] -//SEG4 @25 +//SEG3 [1] phi from @begin to @26 [phi:@begin->@26] +//SEG4 @26 //SEG5 [2] call main param-assignment [ ] ( ) -//SEG6 [4] phi from @25 to main [phi:@25->main] +//SEG6 [4] phi from @26 to main [phi:@26->main] jsr main -//SEG7 [3] phi from @25 to @end [phi:@25->@end] +//SEG7 [3] phi from @26 to @end [phi:@26->@end] //SEG8 @end //SEG9 main main: { @@ -8934,319 +8931,65 @@ print_cls: { } //SEG122 sin16s_gen sin16s_gen: { - .label _7 = $e - .label step = $1a - .label xp = $e - .label x1 = $1e - .label x2 = 8 - .label x3 = 8 - .label x3_6 = 6 - .label usinx = 6 - .label x4 = 8 - .label x5 = 8 - .label x5_128 = $12 + .label _1 = 6 + .label step = $1b .label sintab = 2 .label x = $a .label i = 4 - .label sinx = 6 //SEG123 [59] call div32u16u param-assignment [ div32u16u::return#1 ] ( main:2::sin16s_gen:5 [ div32u16u::return#1 ] ) - //SEG124 [131] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u] + //SEG124 [135] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u] jsr div32u16u //SEG125 [60] (dword) div32u16u::return#0 ← (dword) div32u16u::return#1 [ div32u16u::return#0 ] ( main:2::sin16s_gen:5 [ div32u16u::return#0 ] ) - // (dword) div32u16u::return#0 = (dword) div32u16u::return#1 // register copy zp ZP_DWORD:26 - //SEG126 sin16s_gen::@9 + // (dword) div32u16u::return#0 = (dword) div32u16u::return#1 // register copy zp ZP_DWORD:27 + //SEG126 sin16s_gen::@3 //SEG127 [61] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#0 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 ] ) - // (dword) sin16s_gen::step#0 = (dword) div32u16u::return#0 // register copy zp ZP_DWORD:26 - //SEG128 [62] phi from sin16s_gen::@9 to sin16s_gen::@1 [phi:sin16s_gen::@9->sin16s_gen::@1] - //SEG129 [62] phi (word) sin16s_gen::i#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#0] -- vwuz1=vbuc1 + // (dword) sin16s_gen::step#0 = (dword) div32u16u::return#0 // register copy zp ZP_DWORD:27 + //SEG128 [62] phi from sin16s_gen::@3 to sin16s_gen::@1 [phi:sin16s_gen::@3->sin16s_gen::@1] + //SEG129 [62] phi (word) sin16s_gen::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#0] -- vwuz1=vbuc1 lda #<0 sta i sta i+1 - //SEG130 [62] phi (signed word*) sin16s_gen::sintab#10 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@9->sin16s_gen::@1#1] -- pwsz1=pwsc1 + //SEG130 [62] phi (signed word*) sin16s_gen::sintab#2 = (const signed word[120]) main::sintab1#0 [phi:sin16s_gen::@3->sin16s_gen::@1#1] -- pwsz1=pwsc1 lda #<main.sintab1 sta sintab lda #>main.sintab1 sta sintab+1 - //SEG131 [62] phi (dword) sin16s_gen::x#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@9->sin16s_gen::@1#2] -- vduz1=vbuc1 + //SEG131 [62] phi (dword) sin16s_gen::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->sin16s_gen::@1#2] -- vduz1=vbuc1 lda #0 sta x sta x+1 sta x+2 sta x+3 //SEG132 [62] phi from sin16s_gen::@4 to sin16s_gen::@1 [phi:sin16s_gen::@4->sin16s_gen::@1] - //SEG133 [62] phi (word) sin16s_gen::i#10 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy - //SEG134 [62] phi (signed word*) sin16s_gen::sintab#10 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy - //SEG135 [62] phi (dword) sin16s_gen::x#10 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy + //SEG133 [62] phi (word) sin16s_gen::i#2 = (word) sin16s_gen::i#1 [phi:sin16s_gen::@4->sin16s_gen::@1#0] -- register_copy + //SEG134 [62] phi (signed word*) sin16s_gen::sintab#2 = (signed word*) sin16s_gen::sintab#1 [phi:sin16s_gen::@4->sin16s_gen::@1#1] -- register_copy + //SEG135 [62] phi (dword) sin16s_gen::x#2 = (dword) sin16s_gen::x#1 [phi:sin16s_gen::@4->sin16s_gen::@1#2] -- register_copy //SEG136 sin16s_gen::@1 b1: - //SEG137 [63] if((dword) sin16s_gen::x#10<(const dword) PI_u4f28#0) goto sin16s_gen::@17 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- vduz1_lt_vduc1_then_la1 - lda x+3 - cmp #>PI_u4f28>>$10 - bcs !b17+ - jmp b17 - !b17: - bne !+ - lda x+2 - cmp #<PI_u4f28>>$10 - bcs !b17+ - jmp b17 - !b17: - bne !+ - lda x+1 - cmp #>PI_u4f28 - bcs !b17+ - jmp b17 - !b17: - bne !+ + //SEG137 [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 ] ) -- vduz1=vduz2 lda x - cmp #<PI_u4f28 - bcs !b17+ - jmp b17 - !b17: - !: - //SEG138 sin16s_gen::@5 - //SEG139 [64] (dword) sin16s_gen::xp#1 ← (dword) sin16s_gen::x#10 - (const dword) PI_u4f28#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#1 ] ) -- vduz1=vduz2_minus_vduc1 - lda x - sec - sbc #<PI_u4f28 - sta xp + sta sin16s.x lda x+1 - sbc #>PI_u4f28 - sta xp+1 + sta sin16s.x+1 lda x+2 - sbc #<PI_u4f28>>$10 - sta xp+2 + sta sin16s.x+2 lda x+3 - sbc #>PI_u4f28>>$10 - sta xp+3 - //SEG140 [65] phi from sin16s_gen::@5 to sin16s_gen::@2 [phi:sin16s_gen::@5->sin16s_gen::@2] - //SEG141 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@5->sin16s_gen::@2#0] -- vbuyy=vbuc1 - ldy #1 - //SEG142 [65] phi (dword) sin16s_gen::xp#3 = (dword) sin16s_gen::xp#1 [phi:sin16s_gen::@5->sin16s_gen::@2#1] -- register_copy - //SEG143 sin16s_gen::@2 - b2: - //SEG144 [66] if((dword) sin16s_gen::xp#3<(const dword) PI_HALF_u4f28#0) goto sin16s_gen::@3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#3 sin16s_gen::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 - lda xp+3 - cmp #>PI_HALF_u4f28>>$10 - bcc b3 - bne !+ - lda xp+2 - cmp #<PI_HALF_u4f28>>$10 - bcc b3 - bne !+ - lda xp+1 - cmp #>PI_HALF_u4f28 - bcc b3 - bne !+ - lda xp - cmp #<PI_HALF_u4f28 - bcc b3 - !: - //SEG145 sin16s_gen::@6 - //SEG146 [67] (dword) sin16s_gen::xp#2 ← (const dword) PI_u4f28#0 - (dword) sin16s_gen::xp#3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::xp#2 ] ) -- vduz1=vduc1_minus_vduz1 - lda #<PI_u4f28 - sec - sbc xp - sta xp - lda #>PI_u4f28 - sbc xp+1 - sta xp+1 - lda #<PI_u4f28>>$10 - sbc xp+2 - sta xp+2 - lda #>PI_u4f28>>$10 - sbc xp+3 - sta xp+3 - //SEG147 [68] phi from sin16s_gen::@2 sin16s_gen::@6 to sin16s_gen::@3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3] - //SEG148 [68] phi (dword) sin16s_gen::xp#5 = (dword) sin16s_gen::xp#3 [phi:sin16s_gen::@2/sin16s_gen::@6->sin16s_gen::@3#0] -- register_copy - //SEG149 sin16s_gen::@3 - b3: - //SEG150 [69] (dword~) sin16s_gen::$7 ← (dword) sin16s_gen::xp#5 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::$7 ] ) -- vduz1=vduz1_rol_3 - ldx #3 - !: - asl _7 - rol _7+1 - rol _7+2 - rol _7+3 - dex - bne !- - //SEG151 [70] (word) sin16s_gen::x1#0 ← > (dword~) sin16s_gen::$7 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 ] ) -- vwuz1=_hi_vduz2 - lda _7+2 - sta x1 - lda _7+3 - sta x1+1 - //SEG152 [71] (word) mul_u16_sel::v1#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v1 - lda x1+1 - sta mul_u16_sel.v1+1 - //SEG153 [72] (word) mul_u16_sel::v2#0 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG154 [73] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - //SEG155 [112] phi from sin16s_gen::@3 to mul_u16_sel [phi:sin16s_gen::@3->mul_u16_sel] - //SEG156 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@3->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #0 - //SEG157 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s_gen::@3->mul_u16_sel#1] -- register_copy - //SEG158 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s_gen::@3->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG159 [74] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - //SEG160 sin16s_gen::@10 - //SEG161 [75] (word) sin16s_gen::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x2#0 ] ) - // (word) sin16s_gen::x2#0 = (word) mul_u16_sel::return#0 // register copy zp ZP_WORD:8 - //SEG162 [76] (word) mul_u16_sel::v1#1 ← (word) sin16s_gen::x2#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 ] ) - // (word) mul_u16_sel::v1#1 = (word) sin16s_gen::x2#0 // register copy zp ZP_WORD:8 - //SEG163 [77] (word) mul_u16_sel::v2#1 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG164 [78] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] ) - //SEG165 [112] phi from sin16s_gen::@10 to mul_u16_sel [phi:sin16s_gen::@10->mul_u16_sel] - //SEG166 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@10->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #1 - //SEG167 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s_gen::@10->mul_u16_sel#1] -- register_copy - //SEG168 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s_gen::@10->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG169 [79] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - //SEG170 sin16s_gen::@11 - //SEG171 [80] (word) sin16s_gen::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 ] ) - // (word) sin16s_gen::x3#0 = (word) mul_u16_sel::return#1 // register copy zp ZP_WORD:8 - //SEG172 [81] (word) mul_u16_sel::v1#2 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v1#2 ] ) - // (word) mul_u16_sel::v1#2 = (word) sin16s_gen::x3#0 // register copy zp ZP_WORD:8 - //SEG173 [82] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::x3#0 ] ) - //SEG174 [112] phi from sin16s_gen::@11 to mul_u16_sel [phi:sin16s_gen::@11->mul_u16_sel] - //SEG175 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s_gen::@11->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #1 - //SEG176 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s_gen::@11->mul_u16_sel#1] -- vwuz1=vwuc1 - lda #<$10000/6 - sta mul_u16_sel.v2 - lda #>$10000/6 - sta mul_u16_sel.v2+1 - //SEG177 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s_gen::@11->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG178 [83] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return_10 - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return_10+1 - //SEG179 sin16s_gen::@12 - //SEG180 [84] (word) sin16s_gen::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::x3_6#0 ] ) - // (word) sin16s_gen::x3_6#0 = (word) mul_u16_sel::return#10 // register copy zp ZP_WORD:6 - //SEG181 [85] (word) sin16s_gen::usinx#0 ← (word) sin16s_gen::x1#0 - (word) sin16s_gen::x3_6#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 sin16s_gen::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz1 - lda x1 - sec - sbc usinx - sta usinx - lda x1+1 - sbc usinx+1 - sta usinx+1 - //SEG182 [86] (word) mul_u16_sel::v1#3 ← (word) sin16s_gen::x3#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 ] ) - // (word) mul_u16_sel::v1#3 = (word) sin16s_gen::x3#0 // register copy zp ZP_WORD:8 - //SEG183 [87] (word) mul_u16_sel::v2#3 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG184 [88] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - //SEG185 [112] phi from sin16s_gen::@12 to mul_u16_sel [phi:sin16s_gen::@12->mul_u16_sel] - //SEG186 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@12->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #0 - //SEG187 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s_gen::@12->mul_u16_sel#1] -- register_copy - //SEG188 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s_gen::@12->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG189 [89] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - //SEG190 sin16s_gen::@13 - //SEG191 [90] (word) sin16s_gen::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 sin16s_gen::x4#0 ] ) - // (word) sin16s_gen::x4#0 = (word) mul_u16_sel::return#11 // register copy zp ZP_WORD:8 - //SEG192 [91] (word) mul_u16_sel::v1#4 ← (word) sin16s_gen::x4#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v1#4 ] ) - // (word) mul_u16_sel::v1#4 = (word) sin16s_gen::x4#0 // register copy zp ZP_WORD:8 - //SEG193 [92] (word) mul_u16_sel::v2#4 ← (word) sin16s_gen::x1#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 - lda x1 - sta mul_u16_sel.v2 - lda x1+1 - sta mul_u16_sel.v2+1 - //SEG194 [93] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - //SEG195 [112] phi from sin16s_gen::@13 to mul_u16_sel [phi:sin16s_gen::@13->mul_u16_sel] - //SEG196 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@13->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #0 - //SEG197 [112] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s_gen::@13->mul_u16_sel#1] -- register_copy - //SEG198 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s_gen::@13->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG199 [94] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 - lda mul_u16_sel.return_14 - sta mul_u16_sel.return - lda mul_u16_sel.return_14+1 - sta mul_u16_sel.return+1 - //SEG200 sin16s_gen::@14 - //SEG201 [95] (word) sin16s_gen::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5#0 ] ) - // (word) sin16s_gen::x5#0 = (word) mul_u16_sel::return#12 // register copy zp ZP_WORD:8 - //SEG202 [96] (word) mul_u16_sel::v1#5 ← (word) sin16s_gen::x5#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v1#5 ] ) - // (word) mul_u16_sel::v1#5 = (word) sin16s_gen::x5#0 // register copy zp ZP_WORD:8 - //SEG203 [97] call mul_u16_sel param-assignment [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 mul_u16_sel::return#14 sin16s_gen::usinx#0 ] ) - //SEG204 [112] phi from sin16s_gen::@14 to mul_u16_sel [phi:sin16s_gen::@14->mul_u16_sel] - //SEG205 [112] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s_gen::@14->mul_u16_sel#0] -- vbuxx=vbuc1 - ldx #3 - //SEG206 [112] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s_gen::@14->mul_u16_sel#1] -- vwuz1=vwuc1 - lda #<$10000/$80 - sta mul_u16_sel.v2 - lda #>$10000/$80 - sta mul_u16_sel.v2+1 - //SEG207 [112] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s_gen::@14->mul_u16_sel#2] -- register_copy - jsr mul_u16_sel - //SEG208 [98] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#13 ] ) - // (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#14 // register copy zp ZP_WORD:18 - //SEG209 sin16s_gen::@15 - //SEG210 [99] (word) sin16s_gen::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 sin16s_gen::x5_128#0 ] ) - // (word) sin16s_gen::x5_128#0 = (word) mul_u16_sel::return#13 // register copy zp ZP_WORD:18 - //SEG211 [100] (word) sin16s_gen::usinx#1 ← (word) sin16s_gen::usinx#0 + (word) sin16s_gen::x5_128#0 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#1 ] ) -- vwuz1=vwuz1_plus_vwuz2 - lda usinx - clc - adc x5_128 - sta usinx - lda usinx+1 - adc x5_128+1 - sta usinx+1 - //SEG212 [101] if((byte) sin16s_gen::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s_gen::@19 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::usinx#1 ] ) -- vbuyy_eq_0_then_la1 - cpy #0 - beq b4 - //SEG213 sin16s_gen::@7 - //SEG214 [102] (signed word) sin16s_gen::sinx#1 ← - (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#1 ] ) -- vwsz1=_neg_vwsz1 - sec - lda sinx - eor #$ff - adc #0 - sta sinx - lda sinx+1 - eor #$ff - adc #0 - sta sinx+1 - //SEG215 [103] phi from sin16s_gen::@19 sin16s_gen::@7 to sin16s_gen::@4 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4] - //SEG216 [103] phi (signed word) sin16s_gen::sinx#2 = (signed word~) sin16s_gen::sinx#3 [phi:sin16s_gen::@19/sin16s_gen::@7->sin16s_gen::@4#0] -- register_copy - //SEG217 sin16s_gen::@4 - b4: - //SEG218 [104] *((signed word*) sin16s_gen::sintab#10) ← (signed word) sin16s_gen::sinx#2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 ] ) -- _deref_pwsz1=vwsz2 + sta sin16s.x+3 + //SEG138 [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 ] ) + jsr sin16s + //SEG139 [65] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#0 ] ) + // (signed word) sin16s::return#0 = (signed word) sin16s::return#1 // register copy zp ZP_WORD:6 + //SEG140 sin16s_gen::@4 + //SEG141 [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 ] ) + // (signed word~) sin16s_gen::$1 = (signed word) sin16s::return#0 // register copy zp ZP_WORD:6 + //SEG142 [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 ] ) -- _deref_pwsz1=vwsz2 ldy #0 - lda sinx + lda _1 sta (sintab),y iny - lda sinx+1 + lda _1+1 sta (sintab),y - //SEG219 [105] (signed word*) sin16s_gen::sintab#1 ← (signed word*) sin16s_gen::sintab#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::i#10 sin16s_gen::sintab#1 ] ) -- pwsz1=pwsz1_plus_vbuc1 + //SEG143 [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 ] ) -- pwsz1=pwsz1_plus_vbuc1 clc lda sintab adc #<2 @@ -9254,7 +8997,7 @@ sin16s_gen: { lda sintab+1 adc #>2 sta sintab+1 - //SEG220 [106] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#10 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::i#10 sin16s_gen::x#1 sin16s_gen::sintab#1 ] ) -- vduz1=vduz1_plus_vduz2 + //SEG144 [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 ] ) -- vduz1=vduz1_plus_vduz2 lda x clc adc step @@ -9268,48 +9011,310 @@ sin16s_gen: { lda x+3 adc step+3 sta x+3 - //SEG221 [107] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#10 [ 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 ] ) -- vwuz1=_inc_vwuz1 + //SEG145 [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 ] ) -- vwuz1=_inc_vwuz1 inc i bne !+ inc i+1 !: - //SEG222 [108] 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 ] ) -- vwuz1_lt_vwuc1_then_la1 + //SEG146 [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 ] ) -- vwuz1_lt_vwuc1_then_la1 lda i+1 cmp #>main.wavelength - bcs !b1+ - jmp b1 - !b1: + bcc b1 bne !+ lda i cmp #<main.wavelength - bcs !b1+ - jmp b1 - !b1: + bcc b1 !: - //SEG223 sin16s_gen::@return - //SEG224 [109] return [ ] ( main:2::sin16s_gen:5 [ ] ) + //SEG147 sin16s_gen::@return + //SEG148 [72] return [ ] ( main:2::sin16s_gen:5 [ ] ) rts - //SEG225 sin16s_gen::@19 - //SEG226 [110] (signed word~) sin16s_gen::sinx#3 ← (signed word)(word) sin16s_gen::usinx#1 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::sinx#3 ] ) - // (signed word~) sin16s_gen::sinx#3 = (signed word)(word) sin16s_gen::usinx#1 // register copy zp ZP_WORD:6 - //SEG227 sin16s_gen::@17 - b17: - //SEG228 [111] (dword~) sin16s_gen::xp#7 ← (dword) sin16s_gen::x#10 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ( main:2::sin16s_gen:5 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::xp#7 ] ) -- vduz1=vduz2 - lda x - sta xp - lda x+1 - sta xp+1 - lda x+2 - sta xp+2 - lda x+3 - sta xp+3 - //SEG229 [65] phi from sin16s_gen::@17 to sin16s_gen::@2 [phi:sin16s_gen::@17->sin16s_gen::@2] - //SEG230 [65] phi (byte) sin16s_gen::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s_gen::@17->sin16s_gen::@2#0] -- vbuyy=vbuc1 - ldy #0 - //SEG231 [65] phi (dword) sin16s_gen::xp#3 = (dword~) sin16s_gen::xp#7 [phi:sin16s_gen::@17->sin16s_gen::@2#1] -- register_copy - jmp b2 } -//SEG232 mul_u16_sel +//SEG149 sin16s +sin16s: { + .label _6 = $e + .label x = $e + .label return = 6 + .label x1 = $1f + .label x2 = 8 + .label x3 = 8 + .label x3_6 = 6 + .label usinx = 6 + .label x4 = 8 + .label x5 = 8 + .label x5_128 = $12 + .label sinx = 6 + //SEG150 [73] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#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::x#0 ] ) -- vduz1_lt_vduc1_then_la1 + lda x+3 + cmp #>PI_u4f28>>$10 + bcc b4 + bne !+ + lda x+2 + cmp #<PI_u4f28>>$10 + bcc b4 + bne !+ + lda x+1 + cmp #>PI_u4f28 + bcc b4 + bne !+ + lda x + cmp #<PI_u4f28 + bcc b4 + !: + //SEG151 sin16s::@4 + //SEG152 [74] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#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::x#1 ] ) -- vduz1=vduz1_minus_vduc1 + lda x + sec + sbc #<PI_u4f28 + sta x + lda x+1 + sbc #>PI_u4f28 + sta x+1 + lda x+2 + sbc #<PI_u4f28>>$10 + sta x+2 + lda x+3 + sbc #>PI_u4f28>>$10 + sta x+3 + //SEG153 [75] phi from sin16s::@4 to sin16s::@1 [phi:sin16s::@4->sin16s::@1] + //SEG154 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@4->sin16s::@1#0] -- vbuxx=vbuc1 + ldx #1 + //SEG155 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#1 [phi:sin16s::@4->sin16s::@1#1] -- register_copy + jmp b1 + //SEG156 [75] phi from sin16s to sin16s::@1 [phi:sin16s->sin16s::@1] + b4: + //SEG157 [75] phi (byte) sin16s::isUpper#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s->sin16s::@1#0] -- vbuxx=vbuc1 + ldx #0 + //SEG158 [75] phi (dword) sin16s::x#4 = (dword) sin16s::x#0 [phi:sin16s->sin16s::@1#1] -- register_copy + //SEG159 sin16s::@1 + b1: + //SEG160 [76] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#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::x#4 sin16s::isUpper#10 ] ) -- vduz1_lt_vduc1_then_la1 + lda x+3 + cmp #>PI_HALF_u4f28>>$10 + bcc b2 + bne !+ + lda x+2 + cmp #<PI_HALF_u4f28>>$10 + bcc b2 + bne !+ + lda x+1 + cmp #>PI_HALF_u4f28 + bcc b2 + bne !+ + lda x + cmp #<PI_HALF_u4f28 + bcc b2 + !: + //SEG161 sin16s::@5 + //SEG162 [77] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#10 sin16s::x#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#10 sin16s::x#2 ] ) -- vduz1=vduc1_minus_vduz1 + lda #<PI_u4f28 + sec + sbc x + sta x + lda #>PI_u4f28 + sbc x+1 + sta x+1 + lda #<PI_u4f28>>$10 + sbc x+2 + sta x+2 + lda #>PI_u4f28>>$10 + sbc x+3 + sta x+3 + //SEG163 [78] phi from sin16s::@1 sin16s::@5 to sin16s::@2 [phi:sin16s::@1/sin16s::@5->sin16s::@2] + //SEG164 [78] phi (dword) sin16s::x#6 = (dword) sin16s::x#4 [phi:sin16s::@1/sin16s::@5->sin16s::@2#0] -- register_copy + //SEG165 sin16s::@2 + b2: + //SEG166 [79] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#10 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#10 sin16s::$6 ] ) -- vduz1=vduz1_rol_3 + ldy #3 + !: + asl _6 + rol _6+1 + rol _6+2 + rol _6+3 + dey + bne !- + //SEG167 [80] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#10 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#10 sin16s::x1#0 ] ) -- vwuz1=_hi_vduz2 + lda _6+2 + sta x1 + lda _6+3 + sta x1+1 + //SEG168 [81] (word) mul_u16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v1 + lda x1+1 + sta mul_u16_sel.v1+1 + //SEG169 [82] (word) mul_u16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#0 mul_u16_sel::v2#0 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG170 [83] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + //SEG171 [116] phi from sin16s::@2 to mul_u16_sel [phi:sin16s::@2->mul_u16_sel] + //SEG172 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@2->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #0 + sta mul_u16_sel.select + //SEG173 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#0 [phi:sin16s::@2->mul_u16_sel#1] -- register_copy + //SEG174 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#0 [phi:sin16s::@2->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG175 [84] (word) mul_u16_sel::return#0 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#0 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + //SEG176 sin16s::@8 + //SEG177 [85] (word) sin16s::x2#0 ← (word) mul_u16_sel::return#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x2#0 ] ) + // (word) sin16s::x2#0 = (word) mul_u16_sel::return#0 // register copy zp ZP_WORD:8 + //SEG178 [86] (word) mul_u16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 ] ) + // (word) mul_u16_sel::v1#1 = (word) sin16s::x2#0 // register copy zp ZP_WORD:8 + //SEG179 [87] (word) mul_u16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::v1#1 mul_u16_sel::v2#1 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG180 [88] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] ) + //SEG181 [116] phi from sin16s::@8 to mul_u16_sel [phi:sin16s::@8->mul_u16_sel] + //SEG182 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@8->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #1 + sta mul_u16_sel.select + //SEG183 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#1 [phi:sin16s::@8->mul_u16_sel#1] -- register_copy + //SEG184 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#1 [phi:sin16s::@8->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG185 [89] (word) mul_u16_sel::return#1 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 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#10 sin16s::x1#0 mul_u16_sel::return#1 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + //SEG186 sin16s::@9 + //SEG187 [90] (word) sin16s::x3#0 ← (word) mul_u16_sel::return#1 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 ] ) + // (word) sin16s::x3#0 = (word) mul_u16_sel::return#1 // register copy zp ZP_WORD:8 + //SEG188 [91] (word) mul_u16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v1#2 ] ) + // (word) mul_u16_sel::v1#2 = (word) sin16s::x3#0 // register copy zp ZP_WORD:8 + //SEG189 [92] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::x3#0 ] ) + //SEG190 [116] phi from sin16s::@9 to mul_u16_sel [phi:sin16s::@9->mul_u16_sel] + //SEG191 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:sin16s::@9->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #1 + sta mul_u16_sel.select + //SEG192 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 [phi:sin16s::@9->mul_u16_sel#1] -- vwuz1=vwuc1 + lda #<$10000/6 + sta mul_u16_sel.v2 + lda #>$10000/6 + sta mul_u16_sel.v2+1 + //SEG193 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#2 [phi:sin16s::@9->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG194 [93] (word) mul_u16_sel::return#10 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#10 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return_10 + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return_10+1 + //SEG195 sin16s::@10 + //SEG196 [94] (word) sin16s::x3_6#0 ← (word) mul_u16_sel::return#10 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ) + // (word) sin16s::x3_6#0 = (word) mul_u16_sel::return#10 // register copy zp ZP_WORD:6 + //SEG197 [95] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ) -- vwuz1=vwuz2_minus_vwuz1 + lda x1 + sec + sbc usinx + sta usinx + lda x1+1 + sbc usinx+1 + sta usinx+1 + //SEG198 [96] (word) mul_u16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 ] ) + // (word) mul_u16_sel::v1#3 = (word) sin16s::x3#0 // register copy zp ZP_WORD:8 + //SEG199 [97] (word) mul_u16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#3 mul_u16_sel::v2#3 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG200 [98] call mul_u16_sel param-assignment [ sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::return#14 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#10 sin16s::x1#0 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + //SEG201 [116] phi from sin16s::@10 to mul_u16_sel [phi:sin16s::@10->mul_u16_sel] + //SEG202 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@10->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #0 + sta mul_u16_sel.select + //SEG203 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#3 [phi:sin16s::@10->mul_u16_sel#1] -- register_copy + //SEG204 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#3 [phi:sin16s::@10->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG205 [99] (word) mul_u16_sel::return#11 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::x1#0 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#11 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + //SEG206 sin16s::@11 + //SEG207 [100] (word) sin16s::x4#0 ← (word) mul_u16_sel::return#11 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ) + // (word) sin16s::x4#0 = (word) mul_u16_sel::return#11 // register copy zp ZP_WORD:8 + //SEG208 [101] (word) mul_u16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#10 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v1#4 ] ) + // (word) mul_u16_sel::v1#4 = (word) sin16s::x4#0 // register copy zp ZP_WORD:8 + //SEG209 [102] (word) mul_u16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 mul_u16_sel::v1#4 mul_u16_sel::v2#4 ] ) -- vwuz1=vwuz2 + lda x1 + sta mul_u16_sel.v2 + lda x1+1 + sta mul_u16_sel.v2+1 + //SEG210 [103] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + //SEG211 [116] phi from sin16s::@11 to mul_u16_sel [phi:sin16s::@11->mul_u16_sel] + //SEG212 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sin16s::@11->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #0 + sta mul_u16_sel.select + //SEG213 [116] phi (word) mul_u16_sel::v2#6 = (word) mul_u16_sel::v2#4 [phi:sin16s::@11->mul_u16_sel#1] -- register_copy + //SEG214 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#4 [phi:sin16s::@11->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG215 [104] (word) mul_u16_sel::return#12 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#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#10 sin16s::usinx#0 mul_u16_sel::return#12 ] ) -- vwuz1=vwuz2 + lda mul_u16_sel.return_14 + sta mul_u16_sel.return + lda mul_u16_sel.return_14+1 + sta mul_u16_sel.return+1 + //SEG216 sin16s::@12 + //SEG217 [105] (word) sin16s::x5#0 ← (word) mul_u16_sel::return#12 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5#0 ] ) + // (word) sin16s::x5#0 = (word) mul_u16_sel::return#12 // register copy zp ZP_WORD:8 + //SEG218 [106] (word) mul_u16_sel::v1#5 ← (word) sin16s::x5#0 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#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::isUpper#10 sin16s::usinx#0 mul_u16_sel::v1#5 ] ) + // (word) mul_u16_sel::v1#5 = (word) sin16s::x5#0 // register copy zp ZP_WORD:8 + //SEG219 [107] call mul_u16_sel param-assignment [ sin16s::isUpper#10 mul_u16_sel::return#14 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#10 mul_u16_sel::return#14 sin16s::usinx#0 ] ) + //SEG220 [116] phi from sin16s::@12 to mul_u16_sel [phi:sin16s::@12->mul_u16_sel] + //SEG221 [116] phi (byte) mul_u16_sel::select#6 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:sin16s::@12->mul_u16_sel#0] -- vbuz1=vbuc1 + lda #3 + sta mul_u16_sel.select + //SEG222 [116] phi (word) mul_u16_sel::v2#6 = (dword/signed dword) 65536/(byte/word/signed word/dword/signed dword) 128 [phi:sin16s::@12->mul_u16_sel#1] -- vwuz1=vwuc1 + lda #<$10000/$80 + sta mul_u16_sel.v2 + lda #>$10000/$80 + sta mul_u16_sel.v2+1 + //SEG223 [116] phi (word) mul_u16_sel::v1#6 = (word) mul_u16_sel::v1#5 [phi:sin16s::@12->mul_u16_sel#2] -- register_copy + jsr mul_u16_sel + //SEG224 [108] (word) mul_u16_sel::return#13 ← (word) mul_u16_sel::return#14 [ sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ( 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#10 sin16s::usinx#0 mul_u16_sel::return#13 ] ) + // (word) mul_u16_sel::return#13 = (word) mul_u16_sel::return#14 // register copy zp ZP_WORD:18 + //SEG225 sin16s::@13 + //SEG226 [109] (word) sin16s::x5_128#0 ← (word) mul_u16_sel::return#13 [ sin16s::isUpper#10 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#10 sin16s::usinx#0 sin16s::x5_128#0 ] ) + // (word) sin16s::x5_128#0 = (word) mul_u16_sel::return#13 // register copy zp ZP_WORD:18 + //SEG227 [110] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#10 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#10 sin16s::usinx#1 ] ) -- vwuz1=vwuz1_plus_vwuz2 + lda usinx + clc + adc x5_128 + sta usinx + lda usinx+1 + adc x5_128+1 + sta usinx+1 + //SEG228 [111] if((byte) sin16s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@16 [ 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 ] ) -- vbuxx_eq_0_then_la1 + cpx #0 + beq b3 + //SEG229 sin16s::@6 + //SEG230 [112] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#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::sinx#1 ] ) -- vwsz1=_neg_vwsz1 + sec + lda sinx + eor #$ff + adc #0 + sta sinx + lda sinx+1 + eor #$ff + adc #0 + sta sinx+1 + //SEG231 [113] phi from sin16s::@16 sin16s::@6 to sin16s::@3 [phi:sin16s::@16/sin16s::@6->sin16s::@3] + //SEG232 [113] phi (signed word) sin16s::return#1 = (signed word~) sin16s::return#5 [phi:sin16s::@16/sin16s::@6->sin16s::@3#0] -- register_copy + //SEG233 sin16s::@3 + b3: + //SEG234 sin16s::@return + //SEG235 [114] return [ sin16s::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::return#1 ] ) + rts + //SEG236 sin16s::@16 + //SEG237 [115] (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 ] ) + // (signed word~) sin16s::return#5 = (signed word)(word) sin16s::usinx#1 // register copy zp ZP_WORD:6 +} +//SEG238 mul_u16_sel mul_u16_sel: { .label _0 = $e .label _1 = $e @@ -9318,49 +9323,51 @@ mul_u16_sel: { .label return = 8 .label return_10 = 6 .label return_13 = $12 + .label select = $14 .label return_14 = $12 - //SEG233 [113] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 + //SEG239 [117] (word) mul16u::a#1 ← (word) mul_u16_sel::v1#6 [ mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::v2#6 mul_u16_sel::select#6 mul16u::a#1 ] ) -- vwuz1=vwuz2 lda v1 sta mul16u.a lda v1+1 sta mul16u.a+1 - //SEG234 [114] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) + //SEG240 [118] (word) mul16u::b#0 ← (word) mul_u16_sel::v2#6 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::b#0 ] ) // (word) mul16u::b#0 = (word) mul_u16_sel::v2#6 // register copy zp ZP_WORD:18 - //SEG235 [115] call mul16u param-assignment [ mul_u16_sel::select#6 mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + //SEG241 [119] call mul16u param-assignment [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) jsr mul16u - //SEG236 [116] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 mul16u::return#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) + //SEG242 [120] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::return#2 ] ) // (dword) mul16u::return#2 = (dword) mul16u::res#2 // register copy zp ZP_DWORD:14 - //SEG237 mul_u16_sel::@2 - //SEG238 [117] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 mul_u16_sel::$0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) + //SEG243 mul_u16_sel::@2 + //SEG244 [121] (dword~) mul_u16_sel::$0 ← (dword) mul16u::return#2 [ mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 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#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul_u16_sel::$0 ] ) // (dword~) mul_u16_sel::$0 = (dword) mul16u::return#2 // register copy zp ZP_DWORD:14 - //SEG239 [118] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ mul_u16_sel::$1 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz1_rol_vbuxx - cpx #0 + //SEG245 [122] (dword~) mul_u16_sel::$1 ← (dword~) mul_u16_sel::$0 << (byte) mul_u16_sel::select#6 [ 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#10 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#10 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#10 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#10 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#10 sin16s::usinx#0 mul_u16_sel::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::$1 ] ) -- vduz1=vduz1_rol_vbuz2 + ldy select + cpy #0 beq !e+ !: asl _1 rol _1+1 rol _1+2 rol _1+3 - dex + dey bne !- !e: - //SEG240 [119] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 + //SEG246 [123] (word) mul_u16_sel::return#14 ← > (dword~) mul_u16_sel::$1 [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) -- vwuz1=_hi_vduz2 lda _1+2 sta return_14 lda _1+3 sta return_14+1 - //SEG241 mul_u16_sel::@return - //SEG242 [120] return [ mul_u16_sel::return#14 ] ( main:2::sin16s_gen:5::mul_u16_sel:73 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:78 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:82 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:88 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:93 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::mul_u16_sel:97 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::return#14 ] ) + //SEG247 mul_u16_sel::@return + //SEG248 [124] return [ mul_u16_sel::return#14 ] ( 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::return#14 ] 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#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::return#14 ] 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#10 sin16s::usinx#0 mul_u16_sel::return#14 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::return#14 ] ) rts } -//SEG243 mul16u +//SEG249 mul16u mul16u: { - .label mb = $16 - .label a = $14 + .label mb = $17 + .label a = $15 .label res = $e .label b = $12 .label return = $e - //SEG244 [121] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 + //SEG250 [125] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#1 mul16u::mb#0 ] ) -- vduz1=_dword_vwuz2 lda b sta mb lda b+1 @@ -9368,34 +9375,34 @@ mul16u: { lda #0 sta mb+2 sta mb+3 - //SEG245 [122] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] - //SEG246 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy - //SEG247 [122] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 + //SEG251 [126] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] + //SEG252 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#0 [phi:mul16u->mul16u::@1#0] -- register_copy + //SEG253 [126] phi (dword) mul16u::res#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:mul16u->mul16u::@1#1] -- vduz1=vbuc1 sta res sta res+1 sta res+2 sta res+3 - //SEG248 [122] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy - //SEG249 mul16u::@1 + //SEG254 [126] phi (word) mul16u::a#2 = (word) mul16u::a#1 [phi:mul16u->mul16u::@1#2] -- register_copy + //SEG255 mul16u::@1 b1: - //SEG250 [123] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 + //SEG256 [127] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vwuz1_neq_0_then_la1 lda a bne b2 lda a+1 bne b2 - //SEG251 mul16u::@return - //SEG252 [124] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) + //SEG257 mul16u::@return + //SEG258 [128] return [ mul16u::res#2 ] ( main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:83::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 ] ) rts - //SEG253 mul16u::@2 + //SEG259 mul16u::@2 b2: - //SEG254 [125] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuaa=vwuz1_band_vbuc1 + //SEG260 [129] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ) -- vbuaa=vwuz1_band_vbuc1 lda a and #1 - //SEG255 [126] 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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuaa_eq_0_then_la1 + //SEG261 [130] 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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ) -- vbuaa_eq_0_then_la1 cmp #0 beq b4 - //SEG256 mul16u::@7 - //SEG257 [127] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 + //SEG262 mul16u::@7 + //SEG263 [131] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ) -- vduz1=vduz1_plus_vduz2 lda res clc adc mb @@ -9409,77 +9416,77 @@ mul16u: { lda res+3 adc mb+3 sta res+3 - //SEG258 [128] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4] - //SEG259 [128] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy - //SEG260 mul16u::@4 + //SEG264 [132] phi from mul16u::@2 mul16u::@7 to mul16u::@4 [phi:mul16u::@2/mul16u::@7->mul16u::@4] + //SEG265 [132] phi (dword) mul16u::res#6 = (dword) mul16u::res#2 [phi:mul16u::@2/mul16u::@7->mul16u::@4#0] -- register_copy + //SEG266 mul16u::@4 b4: - //SEG261 [129] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 + //SEG267 [133] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ) -- vwuz1=vwuz1_ror_1 clc ror a+1 ror a - //SEG262 [130] (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::mul_u16_sel:73::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:78::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:82::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:88::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::x1#0 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:93::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::mul_u16_sel:97::mul16u:115 [ sin16s_gen::step#0 sin16s_gen::x#10 sin16s_gen::sintab#10 sin16s_gen::i#10 sin16s_gen::isUpper#10 sin16s_gen::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 + //SEG268 [134] (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:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:88::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:92::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::x3#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:98::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::x1#0 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:103::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:5::sin16s:64::mul_u16_sel:107::mul16u:119 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#10 sin16s::usinx#0 mul_u16_sel::select#6 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ) -- vduz1=vduz1_rol_1 asl mb rol mb+1 rol mb+2 rol mb+3 - //SEG263 [122] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1] - //SEG264 [122] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy - //SEG265 [122] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy - //SEG266 [122] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy + //SEG269 [126] phi from mul16u::@4 to mul16u::@1 [phi:mul16u::@4->mul16u::@1] + //SEG270 [126] phi (dword) mul16u::mb#2 = (dword) mul16u::mb#1 [phi:mul16u::@4->mul16u::@1#0] -- register_copy + //SEG271 [126] phi (dword) mul16u::res#2 = (dword) mul16u::res#6 [phi:mul16u::@4->mul16u::@1#1] -- register_copy + //SEG272 [126] phi (word) mul16u::a#2 = (word) mul16u::a#0 [phi:mul16u::@4->mul16u::@1#2] -- register_copy jmp b1 } -//SEG267 div32u16u +//SEG273 div32u16u div32u16u: { - .label return = $1a + .label return = $1b .label quotient_hi = $12 .label quotient_lo = 8 - //SEG268 [132] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) - //SEG269 [141] phi from div32u16u to divr16u [phi:div32u16u->divr16u] - //SEG270 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 + //SEG274 [136] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 rem16u#1 ] ) + //SEG275 [145] phi from div32u16u to divr16u [phi:div32u16u->divr16u] + //SEG276 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 lda #<main.wavelength sta divr16u.divisor lda #>main.wavelength sta divr16u.divisor+1 - //SEG271 [141] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 + //SEG277 [145] phi (word) divr16u::dividend#5 = >(const dword) PI2_u4f28#0 [phi:div32u16u->divr16u#1] -- vwuz1=vwuc1 lda #<PI2_u4f28>>16 sta divr16u.dividend lda #>PI2_u4f28>>16 sta divr16u.dividend+1 - //SEG272 [141] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 + //SEG278 [145] phi (word) divr16u::rem#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:div32u16u->divr16u#2] -- vwuz1=vbuc1 lda #<0 sta divr16u.rem sta divr16u.rem+1 jsr divr16u - //SEG273 [133] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) + //SEG279 [137] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#2 rem16u#1 ] ) // (word) divr16u::return#2 = (word) divr16u::return#0 // register copy zp ZP_WORD:8 - //SEG274 div32u16u::@2 - //SEG275 [134] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 + //SEG280 div32u16u::@2 + //SEG281 [138] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 rem16u#1 ] ) -- vwuz1=vwuz2 lda divr16u.return sta quotient_hi lda divr16u.return+1 sta quotient_hi+1 - //SEG276 [135] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) + //SEG282 [139] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ) // (word) divr16u::rem#4 = (word) rem16u#1 // register copy zp ZP_WORD:4 - //SEG277 [136] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) - //SEG278 [141] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u] - //SEG279 [141] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 + //SEG283 [140] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ divr16u::return#0 div32u16u::quotient_hi#0 ] ) + //SEG284 [145] phi from div32u16u::@2 to divr16u [phi:div32u16u::@2->divr16u] + //SEG285 [145] phi (word) divr16u::divisor#6 = (const word) main::wavelength#0 [phi:div32u16u::@2->divr16u#0] -- vwuz1=vwuc1 lda #<main.wavelength sta divr16u.divisor lda #>main.wavelength sta divr16u.divisor+1 - //SEG280 [141] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 + //SEG286 [145] phi (word) divr16u::dividend#5 = <(const dword) PI2_u4f28#0 [phi:div32u16u::@2->divr16u#1] -- vwuz1=vwuc1 lda #<PI2_u4f28&$ffff sta divr16u.dividend lda #>PI2_u4f28&$ffff sta divr16u.dividend+1 - //SEG281 [141] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy + //SEG287 [145] phi (word) divr16u::rem#10 = (word) divr16u::rem#4 [phi:div32u16u::@2->divr16u#2] -- register_copy jsr divr16u - //SEG282 [137] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) + //SEG288 [141] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ) // (word) divr16u::return#3 = (word) divr16u::return#0 // register copy zp ZP_WORD:8 - //SEG283 div32u16u::@3 - //SEG284 [138] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) + //SEG289 div32u16u::@3 + //SEG290 [142] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ) // (word) div32u16u::quotient_lo#0 = (word) divr16u::return#3 // register copy zp ZP_WORD:8 - //SEG285 [139] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 + //SEG291 [143] (dword) div32u16u::return#1 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) -- vduz1=vwuz2_dword_vwuz3 lda quotient_hi sta return+2 lda quotient_hi+1 @@ -9488,59 +9495,59 @@ div32u16u: { sta return lda quotient_lo+1 sta return+1 - //SEG286 div32u16u::@return - //SEG287 [140] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) + //SEG292 div32u16u::@return + //SEG293 [144] return [ div32u16u::return#1 ] ( main:2::sin16s_gen:5::div32u16u:59 [ div32u16u::return#1 ] ) rts } -//SEG288 divr16u +//SEG294 divr16u divr16u: { .label rem = 4 .label dividend = 6 .label quotient = 8 .label return = 8 .label divisor = 2 - //SEG289 [142] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1] - //SEG290 [142] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 + //SEG295 [146] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1] + //SEG296 [146] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG291 [142] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 + //SEG297 [146] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1 txa sta quotient sta quotient+1 - //SEG292 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy - //SEG293 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy - //SEG294 [142] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1] - //SEG295 [142] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy - //SEG296 [142] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy - //SEG297 [142] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy - //SEG298 [142] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy - //SEG299 divr16u::@1 + //SEG298 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#5 [phi:divr16u->divr16u::@1#2] -- register_copy + //SEG299 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#10 [phi:divr16u->divr16u::@1#3] -- register_copy + //SEG300 [146] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1] + //SEG301 [146] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy + //SEG302 [146] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy + //SEG303 [146] phi (word) divr16u::dividend#3 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy + //SEG304 [146] phi (word) divr16u::rem#5 = (word) divr16u::rem#11 [phi:divr16u::@3->divr16u::@1#3] -- register_copy + //SEG305 divr16u::@1 b1: - //SEG300 [143] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 + //SEG306 [147] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vwuz1=vwuz1_rol_1 asl rem rol rem+1 - //SEG301 [144] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuaa=_hi_vwuz1 + //SEG307 [148] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) -- vbuaa=_hi_vwuz1 lda dividend+1 - //SEG302 [145] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuaa=vbuaa_band_vbuc1 + //SEG308 [149] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ) -- vbuaa=vbuaa_band_vbuc1 and #$80 - //SEG303 [146] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuaa_eq_0_then_la1 + //SEG309 [150] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ) -- vbuaa_eq_0_then_la1 cmp #0 beq b2 - //SEG304 divr16u::@4 - //SEG305 [147] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 + //SEG310 divr16u::@4 + //SEG311 [151] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) -- vwuz1=vwuz1_bor_vbuc1 lda #1 ora rem sta rem - //SEG306 [148] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2] - //SEG307 [148] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy - //SEG308 divr16u::@2 + //SEG312 [152] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2] + //SEG313 [152] phi (word) divr16u::rem#6 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy + //SEG314 divr16u::@2 b2: - //SEG309 [149] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 + //SEG315 [153] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ) -- vwuz1=vwuz1_rol_1 asl dividend rol dividend+1 - //SEG310 [150] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 + //SEG316 [154] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1=vwuz1_rol_1 asl quotient rol quotient+1 - //SEG311 [151] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 + //SEG317 [155] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) -- vwuz1_lt_vwuz2_then_la1 lda rem+1 cmp divisor+1 bcc b3 @@ -9549,13 +9556,13 @@ divr16u: { cmp divisor bcc b3 !: - //SEG312 divr16u::@5 - //SEG313 [152] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 + //SEG318 divr16u::@5 + //SEG319 [156] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ) -- vwuz1=_inc_vwuz1 inc quotient bne !+ inc quotient+1 !: - //SEG314 [153] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 + //SEG320 [157] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) -- vwuz1=vwuz1_minus_vwuz2 lda rem sec sbc divisor @@ -9563,21 +9570,21 @@ divr16u: { lda rem+1 sbc divisor+1 sta rem+1 - //SEG315 [154] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3] - //SEG316 [154] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy - //SEG317 [154] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy - //SEG318 divr16u::@3 + //SEG321 [158] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3] + //SEG322 [158] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy + //SEG323 [158] phi (word) divr16u::rem#11 = (word) divr16u::rem#6 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy + //SEG324 divr16u::@3 b3: - //SEG319 [155] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx=_inc_vbuxx + //SEG325 [159] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx=_inc_vbuxx inx - //SEG320 [156] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 + //SEG326 [160] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 cpx #$10 bne b1 - //SEG321 divr16u::@6 - //SEG322 [157] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) + //SEG327 divr16u::@6 + //SEG328 [161] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) // (word) rem16u#1 = (word) divr16u::rem#11 // register copy zp ZP_WORD:4 - //SEG323 divr16u::@return - //SEG324 [158] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:132 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) + //SEG329 divr16u::@return + //SEG330 [162] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:136 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:140 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) rts } diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.sym b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.sym index e32d29dd7..ece6ae57d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen.sym @@ -1,4 +1,4 @@ -(label) @25 +(label) @26 (label) @begin (label) @end (dword) PI2_u4f28 @@ -31,8 +31,8 @@ (word) div32u16u::quotient_lo (word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:8 4.0 (dword) div32u16u::return -(dword) div32u16u::return#0 return zp ZP_DWORD:26 4.0 -(dword) div32u16u::return#1 return zp ZP_DWORD:26 1.3333333333333333 +(dword) div32u16u::return#0 return zp ZP_DWORD:27 4.0 +(dword) div32u16u::return#1 return zp ZP_DWORD:27 1.3333333333333333 (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 @@ -97,15 +97,15 @@ (label) mul16u::@7 (label) mul16u::@return (word) mul16u::a -(word) mul16u::a#0 a zp ZP_WORD:20 101.0 -(word) mul16u::a#1 a zp ZP_WORD:20 1.3333333333333333 -(word) mul16u::a#2 a zp ZP_WORD:20 67.66666666666666 +(word) mul16u::a#0 a zp ZP_WORD:21 101.0 +(word) mul16u::a#1 a zp ZP_WORD:21 1.3333333333333333 +(word) mul16u::a#2 a zp ZP_WORD:21 67.66666666666666 (word) mul16u::b (word) mul16u::b#0 b zp ZP_WORD:18 4.0 (dword) mul16u::mb -(dword) mul16u::mb#0 mb zp ZP_DWORD:22 4.0 -(dword) mul16u::mb#1 mb zp ZP_DWORD:22 202.0 -(dword) mul16u::mb#2 mb zp ZP_DWORD:22 43.57142857142858 +(dword) mul16u::mb#0 mb zp ZP_DWORD:23 4.0 +(dword) mul16u::mb#1 mb zp ZP_DWORD:23 202.0 +(dword) mul16u::mb#2 mb zp ZP_DWORD:23 43.57142857142858 (dword) mul16u::res (dword) mul16u::res#1 res zp ZP_DWORD:14 202.0 (dword) mul16u::res#2 res zp ZP_DWORD:14 50.83333333333333 @@ -118,29 +118,29 @@ (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:8 22.0 -(word) mul_u16_sel::return#1 return zp ZP_WORD:8 22.0 -(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:6 22.0 -(word) mul_u16_sel::return#11 return zp ZP_WORD:8 22.0 -(word) mul_u16_sel::return#12 return zp ZP_WORD:8 22.0 -(word) mul_u16_sel::return#13 return#13 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::return#14 return#14 zp ZP_WORD:18 8.5 +(word) mul_u16_sel::return#0 return zp ZP_WORD:8 4.0 +(word) mul_u16_sel::return#1 return zp ZP_WORD:8 4.0 +(word) mul_u16_sel::return#10 return#10 zp ZP_WORD:6 4.0 +(word) mul_u16_sel::return#11 return zp ZP_WORD:8 4.0 +(word) mul_u16_sel::return#12 return zp ZP_WORD:8 4.0 +(word) mul_u16_sel::return#13 return#13 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::return#14 return#14 zp ZP_WORD:18 1.75 (byte) mul_u16_sel::select -(byte) mul_u16_sel::select#6 reg byte x 0.3333333333333333 +(byte) mul_u16_sel::select#6 select zp ZP_BYTE:20 0.3333333333333333 (word) mul_u16_sel::v1 -(word) mul_u16_sel::v1#0 v1 zp ZP_WORD:8 11.0 -(word) mul_u16_sel::v1#1 v1 zp ZP_WORD:8 11.0 -(word) mul_u16_sel::v1#2 v1 zp ZP_WORD:8 22.0 -(word) mul_u16_sel::v1#3 v1 zp ZP_WORD:8 11.0 -(word) mul_u16_sel::v1#4 v1 zp ZP_WORD:8 11.0 -(word) mul_u16_sel::v1#5 v1 zp ZP_WORD:8 22.0 -(word) mul_u16_sel::v1#6 v1 zp ZP_WORD:8 68.0 +(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 4.0 +(word) mul_u16_sel::v1#6 v1 zp ZP_WORD:8 14.0 (word) mul_u16_sel::v2 -(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:18 22.0 -(word) mul_u16_sel::v2#6 v2 zp ZP_WORD:18 23.0 +(word) mul_u16_sel::v2#0 v2 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::v2#1 v2 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::v2#3 v2 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::v2#4 v2 zp ZP_WORD:18 4.0 +(word) mul_u16_sel::v2#6 v2 zp ZP_WORD:18 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 @@ -187,85 +187,90 @@ (word) print_word::w (word) rem16u (word) rem16u#1 rem16u zp ZP_WORD:4 0.8 +(signed word()) sin16s((dword) sin16s::x) +(dword~) sin16s::$6 $6 zp ZP_DWORD:14 4.0 +(label) sin16s::@1 +(label) sin16s::@10 +(label) sin16s::@11 +(label) sin16s::@12 +(label) sin16s::@13 +(label) sin16s::@16 +(label) sin16s::@2 +(label) sin16s::@3 +(label) sin16s::@4 +(label) sin16s::@5 +(label) sin16s::@6 +(label) sin16s::@8 +(label) sin16s::@9 +(label) sin16s::@return +(byte) sin16s::isUpper +(byte) sin16s::isUpper#10 reg byte x 0.05555555555555555 +(signed word) sin16s::return +(signed word) sin16s::return#0 return zp ZP_WORD:6 22.0 +(signed word) sin16s::return#1 return zp ZP_WORD:6 5.0 +(signed word~) sin16s::return#5 return zp ZP_WORD:6 4.0 +(signed word) sin16s::sinx +(signed word) sin16s::sinx#1 sinx zp ZP_WORD:6 4.0 +(word) sin16s::usinx +(word) sin16s::usinx#0 usinx zp ZP_WORD:6 0.26666666666666666 +(word) sin16s::usinx#1 usinx zp ZP_WORD:6 1.0 +(dword) sin16s::x +(dword) sin16s::x#0 x zp ZP_DWORD:14 8.5 +(dword) sin16s::x#1 x zp ZP_DWORD:14 4.0 +(dword) sin16s::x#2 x zp ZP_DWORD:14 4.0 +(dword) sin16s::x#4 x zp ZP_DWORD:14 5.0 +(dword) sin16s::x#6 x zp ZP_DWORD:14 6.0 +(word) sin16s::x1 +(word) sin16s::x1#0 x1 zp ZP_WORD:31 0.6363636363636365 +(word) sin16s::x2 +(word) sin16s::x2#0 x2 zp ZP_WORD:8 4.0 +(word) sin16s::x3 +(word) sin16s::x3#0 x3 zp ZP_WORD:8 1.0 +(word) sin16s::x3_6 +(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:6 4.0 +(word) sin16s::x4 +(word) sin16s::x4#0 x4 zp ZP_WORD:8 4.0 +(word) sin16s::x5 +(word) sin16s::x5#0 x5 zp ZP_WORD:8 4.0 +(word) sin16s::x5_128 +(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:18 4.0 (void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength) -(dword~) sin16s_gen::$7 $7 zp ZP_DWORD:14 22.0 +(signed word~) sin16s_gen::$1 $1 zp ZP_WORD:6 22.0 (label) sin16s_gen::@1 -(label) sin16s_gen::@10 -(label) sin16s_gen::@11 -(label) sin16s_gen::@12 -(label) sin16s_gen::@13 -(label) sin16s_gen::@14 -(label) sin16s_gen::@15 -(label) sin16s_gen::@17 -(label) sin16s_gen::@19 -(label) sin16s_gen::@2 (label) sin16s_gen::@3 (label) sin16s_gen::@4 -(label) sin16s_gen::@5 -(label) sin16s_gen::@6 -(label) sin16s_gen::@7 -(label) sin16s_gen::@9 (label) sin16s_gen::@return (word) sin16s_gen::i (word) sin16s_gen::i#1 i zp ZP_WORD:4 16.5 -(word) sin16s_gen::i#10 i zp ZP_WORD:4 0.46808510638297873 -(byte) sin16s_gen::isUpper -(byte) sin16s_gen::isUpper#10 reg byte y 0.3055555555555556 +(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#10 sintab zp ZP_WORD:2 0.7333333333333333 -(signed word) sin16s_gen::sinx -(signed word) sin16s_gen::sinx#1 sinx zp ZP_WORD:6 22.0 -(signed word) sin16s_gen::sinx#2 sinx zp ZP_WORD:6 33.0 -(signed word~) sin16s_gen::sinx#3 sinx zp ZP_WORD:6 22.0 +(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:26 0.26 -(word) sin16s_gen::usinx -(word) sin16s_gen::usinx#0 usinx zp ZP_WORD:6 1.4666666666666666 -(word) sin16s_gen::usinx#1 usinx zp ZP_WORD:6 5.5 +(dword) sin16s_gen::step#0 step zp ZP_DWORD:27 1.1818181818181819 (word) sin16s_gen::wavelength (dword) sin16s_gen::x (dword) sin16s_gen::x#1 x zp ZP_DWORD:10 7.333333333333333 -(dword) sin16s_gen::x#10 x zp ZP_DWORD:10 1.1956521739130435 -(word) sin16s_gen::x1 -(word) sin16s_gen::x1#0 x1 zp ZP_WORD:30 3.5 -(word) sin16s_gen::x2 -(word) sin16s_gen::x2#0 x2 zp ZP_WORD:8 22.0 -(word) sin16s_gen::x3 -(word) sin16s_gen::x3#0 x3 zp ZP_WORD:8 5.5 -(word) sin16s_gen::x3_6 -(word) sin16s_gen::x3_6#0 x3_6 zp ZP_WORD:6 22.0 -(word) sin16s_gen::x4 -(word) sin16s_gen::x4#0 x4 zp ZP_WORD:8 22.0 -(word) sin16s_gen::x5 -(word) sin16s_gen::x5#0 x5 zp ZP_WORD:8 22.0 -(word) sin16s_gen::x5_128 -(word) sin16s_gen::x5_128#0 x5_128 zp ZP_WORD:18 22.0 -(dword) sin16s_gen::xp -(dword) sin16s_gen::xp#1 xp zp ZP_DWORD:14 22.0 -(dword) sin16s_gen::xp#2 xp zp ZP_DWORD:14 22.0 -(dword) sin16s_gen::xp#3 xp zp ZP_DWORD:14 27.5 -(dword) sin16s_gen::xp#5 xp zp ZP_DWORD:14 33.0 -(dword~) sin16s_gen::xp#7 xp zp ZP_DWORD:14 22.0 +(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#10 sin16s_gen::sintab#1 divr16u::divisor#6 ] -zp ZP_WORD:4 [ print_str::str#3 print_str::str#5 print_str::str#0 sin16s_gen::i#10 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_gen::sinx#2 sin16s_gen::sinx#3 sin16s_gen::sinx#1 sin16s_gen::usinx#1 sin16s_gen::usinx#0 sin16s_gen::x3_6#0 mul_u16_sel::return#10 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] +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: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 sin16s::x3_6#0 mul_u16_sel::return#10 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#6 mul_u16_sel::v1#1 mul_u16_sel::v1#2 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 sin16s_gen::x3#0 sin16s_gen::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s_gen::x4#0 mul_u16_sel::return#11 sin16s_gen::x5#0 mul_u16_sel::return#12 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#10 sin16s_gen::x#1 ] -reg byte y [ sin16s_gen::isUpper#10 ] -zp ZP_DWORD:14 [ sin16s_gen::xp#5 sin16s_gen::xp#3 sin16s_gen::xp#7 sin16s_gen::xp#1 sin16s_gen::xp#2 sin16s_gen::$7 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mul_u16_sel::$0 mul_u16_sel::$1 ] -zp ZP_WORD:18 [ mul_u16_sel::v2#6 mul_u16_sel::v2#1 mul_u16_sel::v2#3 mul_u16_sel::v2#4 mul_u16_sel::v2#0 mul16u::b#0 mul_u16_sel::return#13 sin16s_gen::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ] -reg byte x [ mul_u16_sel::select#6 ] -zp ZP_WORD:20 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 ] -zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] +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#6 mul_u16_sel::v1#3 mul_u16_sel::v1#4 mul_u16_sel::v1#5 mul_u16_sel::v1#0 mul_u16_sel::v1#1 mul_u16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 mul_u16_sel::return#0 mul_u16_sel::return#1 sin16s::x4#0 mul_u16_sel::return#11 sin16s::x5#0 mul_u16_sel::return#12 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 ] +reg byte x [ sin16s::isUpper#10 ] +zp ZP_DWORD:14 [ 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:18 [ mul_u16_sel::v2#6 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#13 sin16s::x5_128#0 mul_u16_sel::return#14 div32u16u::quotient_hi#0 ] +zp ZP_BYTE:20 [ mul_u16_sel::select#6 ] +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 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] -zp ZP_DWORD:26 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ] -zp ZP_WORD:30 [ sin16s_gen::x1#0 ] +zp ZP_DWORD:27 [ div32u16u::return#0 sin16s_gen::step#0 div32u16u::return#1 ] +zp ZP_WORD:31 [ sin16s::x1#0 ] reg byte a [ mul16u::$1 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.cfg new file mode 100644 index 000000000..0ccaaa04f --- /dev/null +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.cfg @@ -0,0 +1,18 @@ +@begin: scope:[] from + [0] phi() [ ] ( ) + to:@1 +@1: scope:[] from @begin + [1] phi() [ ] ( ) + [2] call main param-assignment [ ] ( ) + to:@end +@end: scope:[] from @1 + [3] phi() [ ] ( ) +main: scope:[main] from @1 + [4] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← >>(const dword) PI_u4f28#0 [ ] ( main:2 [ ] ) + [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← <>(const dword) PI_u4f28#0 [ ] ( main:2 [ ] ) + [6] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← ><(const dword) PI_u4f28#0 [ ] ( main:2 [ ] ) + [7] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← <<(const dword) PI_u4f28#0 [ ] ( main:2 [ ] ) + to:main::@return +main::@return: scope:[main] from main + [8] return [ ] ( main:2 [ ] ) + to:@return diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.sym new file mode 100644 index 000000000..5b3c9aca0 --- /dev/null +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.sym @@ -0,0 +1,10 @@ +(label) @1 +(label) @begin +(label) @end +(dword) PI_u4f28 +(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857 +(void()) main() +(label) main::@return +(byte*) main::SCREEN +(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +