1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-11 12:23:45 +00:00

Added second 8-bit sinus test (against 16-bit sinus)

This commit is contained in:
jespergravgaard 2018-02-25 14:35:20 +01:00
parent 2789361724
commit 53d021bae3
10 changed files with 14750 additions and 9 deletions

View File

@ -495,9 +495,9 @@ class AsmFragmentTemplateSynthesisRule {
synths.add(new AsmFragmentTemplateSynthesisRule("(v.s..)=(p.s..)_derefidx_(vbu..)", null, null, "$1=$2_derefidx_$3", null, mapSToU));
synths.add(new AsmFragmentTemplateSynthesisRule("(v.s..)=_(inc|dec)_(v.s..)", null, null, "$1=_$2_$3", null, mapSToU));
synths.add(new AsmFragmentTemplateSynthesisRule("(vbuz.|vbuaa|vbuxx|vbuyy)=_(lo|hi)_vws(z.|c.)", null, null, "$1=_$2_vwu$3", null, mapSToU));
synths.add(new AsmFragmentTemplateSynthesisRule("(vbs..)=(vbs..)_(plus)_(vbs..)", null, null, "$1=$2_$3_$4", null, mapSToU));
synths.add(new AsmFragmentTemplateSynthesisRule("(vws..)=(vws..)_(plus)_(vws..)", null, null, "$1=$2_$3_$4", null, mapSToU));
synths.add(new AsmFragmentTemplateSynthesisRule("(vds..)=(vds..)_(plus)_(vds..)", null, null, "$1=$2_$3_$4", null, mapSToU));
synths.add(new AsmFragmentTemplateSynthesisRule("(vbs..)=(vbs..)_(plus|minus)_(vbs..)", null, null, "$1=$2_$3_$4", null, mapSToU));
synths.add(new AsmFragmentTemplateSynthesisRule("(vws..)=(vws..)_(plus|minus)_(vws..)", null, null, "$1=$2_$3_$4", null, mapSToU));
synths.add(new AsmFragmentTemplateSynthesisRule("(vds..)=(vds..)_(plus|minus)_(vds..)", null, null, "$1=$2_$3_$4", null, mapSToU));
// Use constant word ASM to synthesize unsigned constant byte ASM ( ...vb.c... -> vw.c... )
synths.add(new AsmFragmentTemplateSynthesisRule("(vwuz.)=(vwuz.)_(plus|minus|band|bxor|bor)_vb.c(.)", null, null, "$1=$2_$3_vwuc$4", null, null));

View File

@ -1,6 +0,0 @@
lda {z1}
asl
sta {z2}
lda {z1}+1
rol
sta {z2}+1

View File

@ -0,0 +1,7 @@
ldy #0
lda ({z1}),y
tax
iny
lda ({z1}),y
stx {z1}
sta {z1}+1

View File

@ -0,0 +1,6 @@
lda {z2}
asl
sta {z1}
lda {z2}+1
rol
sta {z1}+1

View File

@ -65,6 +65,11 @@ public class TestPrograms {
compileAndCompare("sinusgen8");
}
@Test
public void testSinusGen8b() throws IOException, URISyntaxException {
compileAndCompare("sinusgen8b");
}
@Test
public void testLineGen() throws IOException, URISyntaxException {
compileAndCompare("linegen");

View File

@ -0,0 +1,21 @@
import "sinus.kc"
import "print.kc"
void main() {
word wavelength = 192;
signed byte[192] sintabb;
sin8s_gen(sintabb, wavelength);
signed word[192] sintabw;
sin16s_gen(sintabw, wavelength);
print_cls();
for(byte i: 0..191) {
signed byte sb = sintabb[i];
signed word sw = *(sintabw+(word)i<<1);
signed byte sd = sb-(signed byte)>sw;
if(sd>=0) {
print_str(" @");
}
print_sbyte(sd);
print_str(" @");
}
}

View File

@ -0,0 +1,795 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.const PI2_u4f28 = $6487ed51
.const PI_u4f28 = $3243f6a9
.const PI_HALF_u4f28 = $1921fb54
.const PI2_u4f12 = $6488
.const PI_u4f12 = $3244
.const PI_HALF_u4f12 = $1922
.label SCREEN = $400
.label rem16u = 5
.label char_cursor = 5
jsr main
main: {
.label wavelength = $c0
.label _3 = 2
.label _4 = 2
.label _5 = 2
.label sb = 4
.label sw = $f
.label sd = 4
jsr sin8s_gen
jsr sin16s_gen
jsr print_cls
lda #<SCREEN
sta char_cursor
lda #>SCREEN
sta char_cursor+1
ldx #0
b1:
lda sintabb,x
sta sb
txa
sta _3
lda #0
sta _3+1
asl _4
rol _4+1
clc
lda _5
adc #<sintabw
sta _5
lda _5+1
adc #>sintabw
sta _5+1
ldy #0
lda (_5),y
sta sw
iny
lda (_5),y
sta sw+1
eor #$ff
sec
adc sd
sta sd
bmi b2
lda #<str1
sta print_str.str
lda #>str1
sta print_str.str+1
jsr print_str
b2:
jsr print_sbyte
lda #<str
sta print_str.str
lda #>str
sta print_str.str+1
jsr print_str
inx
cpx #$c0
bne b1
rts
str: .text " @"
str1: .text " @"
sintabb: .fill $c0, 0
sintabw: .fill $180, 0
}
print_str: {
.label str = 2
b1:
ldy #0
lda (str),y
cmp #'@'
bne b2
rts
b2:
ldy #0
lda (str),y
sta (char_cursor),y
inc char_cursor
bne !+
inc char_cursor+1
!:
inc str
bne !+
inc str+1
!:
jmp b1
}
print_sbyte: {
.label b = 4
lda b
cmp #0
bpl b1
lda #'-'
jsr print_char
lda b
eor #$ff
clc
adc #1
sta b
b1:
jsr print_byte
rts
}
print_byte: {
lda print_sbyte.b
lsr
lsr
lsr
lsr
tay
lda hextab,y
jsr print_char
lda #$f
and print_sbyte.b
tay
lda hextab,y
jsr print_char
rts
hextab: .text "0123456789abcdef"
}
print_char: {
ldy #0
sta (char_cursor),y
inc char_cursor
bne !+
inc char_cursor+1
!:
rts
}
print_cls: {
.label sc = 2
lda #<SCREEN
sta sc
lda #>SCREEN
sta sc+1
b1:
lda #' '
ldy #0
sta (sc),y
inc sc
bne !+
inc sc+1
!:
lda sc+1
cmp #>SCREEN+$3e8
bne b1
lda sc
cmp #<SCREEN+$3e8
bne b1
rts
}
sin16s_gen: {
.label _1 = $f
.label step = $1c
.label sintab = 2
.label x = 7
.label i = 5
jsr div32u16u
lda #<0
sta i
sta i+1
lda #<main.sintabw
sta sintab
lda #>main.sintabw
sta sintab+1
lda #0
sta x
sta x+1
sta x+2
sta x+3
b1:
lda x
sta sin16s.x
lda x+1
sta sin16s.x+1
lda x+2
sta sin16s.x+2
lda x+3
sta sin16s.x+3
jsr sin16s
ldy #0
lda _1
sta (sintab),y
iny
lda _1+1
sta (sintab),y
clc
lda sintab
adc #<2
sta sintab
lda sintab+1
adc #>2
sta sintab+1
lda x
clc
adc step
sta x
lda x+1
adc step+1
sta x+1
lda x+2
adc step+2
sta x+2
lda x+3
adc step+3
sta x+3
inc i
bne !+
inc i+1
!:
lda i+1
cmp #>main.wavelength
bcc b1
bne !+
lda i
cmp #<main.wavelength
bcc b1
!:
rts
}
sin16s: {
.label _6 = $b
.label x = $b
.label return = $f
.label x1 = $20
.label x2 = $11
.label x3 = $11
.label x3_6 = $13
.label usinx = $f
.label x4 = $11
.label x5 = $13
.label x5_128 = $13
.label sinx = $f
.label isUpper = 4
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
!:
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
lda #1
sta isUpper
jmp b1
b4:
lda #0
sta isUpper
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 mulu16_sel.v1
lda x1+1
sta mulu16_sel.v1+1
lda x1
sta mulu16_sel.v2
lda x1+1
sta mulu16_sel.v2+1
ldx #0
jsr mulu16_sel
lda mulu16_sel.return
sta x2
lda mulu16_sel.return+1
sta x2+1
lda x1
sta mulu16_sel.v2
lda x1+1
sta mulu16_sel.v2+1
ldx #1
jsr mulu16_sel
lda mulu16_sel.return
sta mulu16_sel.return_1
lda mulu16_sel.return+1
sta mulu16_sel.return_1+1
ldx #1
lda #<$10000/6
sta mulu16_sel.v2
lda #>$10000/6
sta mulu16_sel.v2+1
jsr mulu16_sel
lda x1
sec
sbc x3_6
sta usinx
lda x1+1
sbc x3_6+1
sta usinx+1
lda x1
sta mulu16_sel.v2
lda x1+1
sta mulu16_sel.v2+1
ldx #0
jsr mulu16_sel
lda mulu16_sel.return
sta mulu16_sel.return_10
lda mulu16_sel.return+1
sta mulu16_sel.return_10+1
lda x1
sta mulu16_sel.v2
lda x1+1
sta mulu16_sel.v2+1
ldx #0
jsr mulu16_sel
ldy #4
!:
lsr x5_128+1
ror x5_128
dey
bne !-
lda usinx
clc
adc x5_128
sta usinx
lda usinx+1
adc x5_128+1
sta usinx+1
lda isUpper
beq b3
sec
lda sinx
eor #$ff
adc #0
sta sinx
lda sinx+1
eor #$ff
adc #0
sta sinx+1
b3:
rts
}
mulu16_sel: {
.label _0 = $b
.label _1 = $b
.label v1 = $11
.label v2 = $13
.label return = $13
.label return_1 = $11
.label return_10 = $11
lda v1
sta mul16u.a
lda v1+1
sta mul16u.a+1
jsr mul16u
cpx #0
beq !e+
!:
asl _1
rol _1+1
rol _1+2
rol _1+3
dex
bne !-
!e:
lda _1+2
sta return
lda _1+3
sta return+1
rts
}
mul16u: {
.label mb = $17
.label a = $15
.label res = $b
.label b = $13
.label return = $b
lda b
sta mb
lda b+1
sta mb+1
lda #0
sta mb+2
sta mb+3
sta res
sta res+1
sta res+2
sta res+3
b1:
lda a
bne b2
lda a+1
bne b2
rts
b2:
lda a
and #1
cmp #0
beq b4
lda res
clc
adc mb
sta res
lda res+1
adc mb+1
sta res+1
lda res+2
adc mb+2
sta res+2
lda res+3
adc mb+3
sta res+3
b4:
clc
ror a+1
ror a
asl mb
rol mb+1
rol mb+2
rol mb+3
jmp b1
}
div32u16u: {
.label quotient_hi = $13
.label quotient_lo = $11
.label return = $1c
lda #<main.wavelength
sta divr16u.divisor
lda #>main.wavelength
sta divr16u.divisor+1
lda #<PI2_u4f28>>16
sta divr16u.dividend
lda #>PI2_u4f28>>16
sta divr16u.dividend+1
lda #<0
sta divr16u.rem
sta divr16u.rem+1
jsr divr16u
lda divr16u.return
sta quotient_hi
lda divr16u.return+1
sta quotient_hi+1
lda #<main.wavelength
sta divr16u.divisor
lda #>main.wavelength
sta divr16u.divisor+1
lda #<PI2_u4f28&$ffff
sta divr16u.dividend
lda #>PI2_u4f28&$ffff
sta divr16u.dividend+1
jsr divr16u
lda quotient_hi
sta return+2
lda quotient_hi+1
sta return+3
lda quotient_lo
sta return
lda quotient_lo+1
sta return+1
rts
}
divr16u: {
.label rem = 5
.label dividend = $f
.label quotient = $11
.label return = $11
.label divisor = 2
ldx #0
txa
sta quotient
sta quotient+1
b1:
asl rem
rol rem+1
lda dividend+1
and #$80
cmp #0
beq b2
lda #1
ora rem
sta rem
b2:
asl dividend
rol dividend+1
asl quotient
rol quotient+1
lda rem+1
cmp divisor+1
bcc b3
bne !+
lda rem
cmp divisor
bcc b3
!:
inc quotient
bne !+
inc quotient+1
!:
lda rem
sec
sbc divisor
sta rem
lda rem+1
sbc divisor+1
sta rem+1
b3:
inx
cpx #$10
bne b1
rts
}
sin8s_gen: {
.label step = $11
.label sintab = 5
.label x = 2
.label i = $f
jsr div16u
lda #<0
sta i
sta i+1
lda #<main.sintabb
sta sintab
lda #>main.sintabb
sta sintab+1
lda #<0
sta x
sta x+1
b1:
lda x
sta sin8s.x
lda x+1
sta sin8s.x+1
jsr sin8s
ldy #0
sta (sintab),y
inc sintab
bne !+
inc sintab+1
!:
lda x
clc
adc step
sta x
lda x+1
adc step+1
sta x+1
inc i
bne !+
inc i+1
!:
lda i+1
cmp #>main.wavelength
bcc b1
bne !+
lda i
cmp #<main.wavelength
bcc b1
!:
rts
}
sin8s: {
.const DIV_6 = $2b
.label _6 = $13
.label x = $13
.label x1 = $22
.label x3 = $23
.label usinx = $24
.label isUpper = 4
lda x+1
cmp #>PI_u4f12
bcc b5
bne !+
lda x
cmp #<PI_u4f12
bcc b5
!:
lda x
sec
sbc #<PI_u4f12
sta x
lda x+1
sbc #>PI_u4f12
sta x+1
lda #1
sta isUpper
jmp b1
b5:
lda #0
sta isUpper
b1:
lda x+1
cmp #>PI_HALF_u4f12
bcc b2
bne !+
lda x
cmp #<PI_HALF_u4f12
bcc b2
!:
sec
lda #<PI_u4f12
sbc x
sta x
lda #>PI_u4f12
sbc x+1
sta x+1
b2:
asl _6
rol _6+1
asl _6
rol _6+1
asl _6
rol _6+1
lda _6+1
sta x1
tax
tay
lda #0
sta mulu8_sel.select
jsr mulu8_sel
tax
ldy x1
lda #1
sta mulu8_sel.select
jsr mulu8_sel
sta x3
tax
lda #1
sta mulu8_sel.select
ldy #DIV_6
jsr mulu8_sel
eor #$ff
sec
adc x1
sta usinx
ldx x3
ldy x1
lda #0
sta mulu8_sel.select
jsr mulu8_sel
tax
ldy x1
lda #0
sta mulu8_sel.select
jsr mulu8_sel
lsr
lsr
lsr
lsr
clc
adc usinx
tax
cpx #$80
bcc b3
dex
b3:
lda isUpper
beq b18
txa
eor #$ff
clc
adc #1
b4:
rts
b18:
txa
jmp b4
}
mulu8_sel: {
.label _0 = $13
.label _1 = $13
.label select = $1b
tya
jsr mul8u
ldy select
beq !e+
!:
asl _1
rol _1+1
dey
bne !-
!e:
lda _1+1
rts
}
mul8u: {
.label mb = $15
.label res = $13
.label return = $13
sta mb
lda #0
sta mb+1
sta res
sta res+1
b1:
cpx #0
bne b2
rts
b2:
txa
and #1
cmp #0
beq b4
lda res
clc
adc mb
sta res
lda res+1
adc mb+1
sta res+1
b4:
txa
lsr
tax
asl mb
rol mb+1
jmp b1
}
div16u: {
.label return = $11
lda #<main.wavelength
sta divr16u.divisor
lda #>main.wavelength
sta divr16u.divisor+1
lda #<PI2_u4f12
sta divr16u.dividend
lda #>PI2_u4f12
sta divr16u.dividend+1
lda #<0
sta divr16u.rem
sta divr16u.rem+1
jsr divr16u
rts
}

View File

@ -0,0 +1,472 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@29
@29: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @29
[3] phi() [ ] ( )
main: scope:[main] from @29
[4] phi() [ ] ( main:2 [ ] )
[5] call sin8s_gen param-assignment [ ] ( main:2 [ ] )
to:main::@5
main::@5: scope:[main] from main
[6] phi() [ ] ( main:2 [ ] )
[7] call sin16s_gen param-assignment [ ] ( main:2 [ ] )
to:main::@6
main::@6: scope:[main] from main::@5
[8] phi() [ ] ( main:2 [ ] )
[9] call print_cls param-assignment [ ] ( main:2 [ ] )
to:main::@1
main::@1: scope:[main] from main::@6 main::@9
[10] (byte*) char_cursor#42 ← phi( main::@6/(const byte*) SCREEN#0 main::@9/(byte*) char_cursor#19 ) [ main::i#2 char_cursor#42 ] ( main:2 [ main::i#2 char_cursor#42 ] )
[10] (byte) main::i#2 ← phi( main::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::i#1 ) [ main::i#2 char_cursor#42 ] ( main:2 [ main::i#2 char_cursor#42 ] )
[11] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintabb#0 + (byte) main::i#2) [ main::i#2 char_cursor#42 main::sb#0 ] ( main:2 [ main::i#2 char_cursor#42 main::sb#0 ] )
[12] (word~) main::$3 ← ((word)) (byte) main::i#2 [ main::i#2 char_cursor#42 main::sb#0 main::$3 ] ( main:2 [ main::i#2 char_cursor#42 main::sb#0 main::$3 ] )
[13] (word~) main::$4 ← (word~) main::$3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 char_cursor#42 main::sb#0 main::$4 ] ( main:2 [ main::i#2 char_cursor#42 main::sb#0 main::$4 ] )
[14] (signed word*~) main::$5 ← (const signed word[192]) main::sintabw#0 + (word~) main::$4 [ main::i#2 char_cursor#42 main::sb#0 main::$5 ] ( main:2 [ main::i#2 char_cursor#42 main::sb#0 main::$5 ] )
[15] (signed word) main::sw#0 ← *((signed word*~) main::$5) [ main::i#2 char_cursor#42 main::sb#0 main::sw#0 ] ( main:2 [ main::i#2 char_cursor#42 main::sb#0 main::sw#0 ] )
[16] (byte~) main::$6 ← > (signed word) main::sw#0 [ main::i#2 char_cursor#42 main::sb#0 main::$6 ] ( main:2 [ main::i#2 char_cursor#42 main::sb#0 main::$6 ] )
[17] (signed byte) main::sd#0 ← (signed byte) main::sb#0 - (signed byte)(byte~) main::$6 [ main::i#2 char_cursor#42 main::sd#0 ] ( main:2 [ main::i#2 char_cursor#42 main::sd#0 ] )
[18] if((signed byte) main::sd#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::i#2 char_cursor#42 main::sd#0 ] ( main:2 [ main::i#2 char_cursor#42 main::sd#0 ] )
to:main::@3
main::@3: scope:[main] from main::@1
[19] phi() [ main::i#2 char_cursor#42 main::sd#0 ] ( main:2 [ main::i#2 char_cursor#42 main::sd#0 ] )
[20] call print_str param-assignment [ main::i#2 char_cursor#19 main::sd#0 ] ( main:2 [ main::i#2 char_cursor#19 main::sd#0 ] )
to:main::@2
main::@2: scope:[main] from main::@1 main::@3
[21] (byte*) char_cursor#41 ← phi( main::@1/(byte*) char_cursor#42 main::@3/(byte*) char_cursor#19 ) [ main::i#2 main::sd#0 char_cursor#41 ] ( main:2 [ main::i#2 main::sd#0 char_cursor#41 ] )
[22] (signed byte) print_sbyte::b#1 ← (signed byte) main::sd#0 [ main::i#2 char_cursor#41 print_sbyte::b#1 ] ( main:2 [ main::i#2 char_cursor#41 print_sbyte::b#1 ] )
[23] call print_sbyte param-assignment [ main::i#2 char_cursor#10 ] ( main:2 [ main::i#2 char_cursor#10 ] )
to:main::@8
main::@8: scope:[main] from main::@2
[24] phi() [ main::i#2 char_cursor#10 ] ( main:2 [ main::i#2 char_cursor#10 ] )
[25] call print_str param-assignment [ main::i#2 char_cursor#19 ] ( main:2 [ main::i#2 char_cursor#19 ] )
to:main::@9
main::@9: scope:[main] from main::@8
[26] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 char_cursor#19 ] ( main:2 [ main::i#1 char_cursor#19 ] )
[27] if((byte) main::i#1!=(byte/word/signed word/dword/signed dword) 192) goto main::@1 [ main::i#1 char_cursor#19 ] ( main:2 [ main::i#1 char_cursor#19 ] )
to:main::@return
main::@return: scope:[main] from main::@9
[28] return [ ] ( main:2 [ ] )
to:@return
print_str: scope:[print_str] from main::@3 main::@8
[29] (byte*) char_cursor#44 ← phi( main::@3/(byte*) char_cursor#42 main::@8/(byte*) char_cursor#10 ) [ print_str::str#5 char_cursor#44 ] ( main:2::print_str:20 [ main::i#2 main::sd#0 print_str::str#5 char_cursor#44 ] main:2::print_str:25 [ main::i#2 print_str::str#5 char_cursor#44 ] )
[29] (byte*) print_str::str#5 ← phi( main::@3/(const string) main::str1 main::@8/(const string) main::str ) [ print_str::str#5 char_cursor#44 ] ( main:2::print_str:20 [ main::i#2 main::sd#0 print_str::str#5 char_cursor#44 ] main:2::print_str:25 [ main::i#2 print_str::str#5 char_cursor#44 ] )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[30] (byte*) char_cursor#19 ← phi( print_str/(byte*) char_cursor#44 print_str::@2/(byte*) char_cursor#1 ) [ char_cursor#19 print_str::str#3 ] ( main:2::print_str:20 [ main::i#2 main::sd#0 char_cursor#19 print_str::str#3 ] main:2::print_str:25 [ main::i#2 char_cursor#19 print_str::str#3 ] )
[30] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#5 print_str::@2/(byte*) print_str::str#0 ) [ char_cursor#19 print_str::str#3 ] ( main:2::print_str:20 [ main::i#2 main::sd#0 char_cursor#19 print_str::str#3 ] main:2::print_str:25 [ main::i#2 char_cursor#19 print_str::str#3 ] )
[31] if(*((byte*) print_str::str#3)!=(byte) '@') goto print_str::@2 [ char_cursor#19 print_str::str#3 ] ( main:2::print_str:20 [ main::i#2 main::sd#0 char_cursor#19 print_str::str#3 ] main:2::print_str:25 [ main::i#2 char_cursor#19 print_str::str#3 ] )
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
[32] return [ char_cursor#19 ] ( main:2::print_str:20 [ main::i#2 main::sd#0 char_cursor#19 ] main:2::print_str:25 [ main::i#2 char_cursor#19 ] )
to:@return
print_str::@2: scope:[print_str] from print_str::@1
[33] *((byte*) char_cursor#19) ← *((byte*) print_str::str#3) [ char_cursor#19 print_str::str#3 ] ( main:2::print_str:20 [ main::i#2 main::sd#0 char_cursor#19 print_str::str#3 ] main:2::print_str:25 [ main::i#2 char_cursor#19 print_str::str#3 ] )
[34] (byte*) char_cursor#1 ← ++ (byte*) char_cursor#19 [ print_str::str#3 char_cursor#1 ] ( main:2::print_str:20 [ main::i#2 main::sd#0 print_str::str#3 char_cursor#1 ] main:2::print_str:25 [ main::i#2 print_str::str#3 char_cursor#1 ] )
[35] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#3 [ print_str::str#0 char_cursor#1 ] ( main:2::print_str:20 [ main::i#2 main::sd#0 print_str::str#0 char_cursor#1 ] main:2::print_str:25 [ main::i#2 print_str::str#0 char_cursor#1 ] )
to:print_str::@1
print_sbyte: scope:[print_sbyte] from main::@2
[36] if((signed byte) print_sbyte::b#1>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 [ char_cursor#41 print_sbyte::b#1 ] ( main:2::print_sbyte:23 [ main::i#2 char_cursor#41 print_sbyte::b#1 ] )
to:print_sbyte::@2
print_sbyte::@2: scope:[print_sbyte] from print_sbyte
[37] phi() [ char_cursor#41 print_sbyte::b#1 ] ( main:2::print_sbyte:23 [ main::i#2 char_cursor#41 print_sbyte::b#1 ] )
[38] call print_char param-assignment [ print_sbyte::b#1 char_cursor#10 ] ( main:2::print_sbyte:23 [ main::i#2 print_sbyte::b#1 char_cursor#10 ] )
to:print_sbyte::@4
print_sbyte::@4: scope:[print_sbyte] from print_sbyte::@2
[39] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#1 [ char_cursor#10 print_sbyte::b#0 ] ( main:2::print_sbyte:23 [ main::i#2 char_cursor#10 print_sbyte::b#0 ] )
to:print_sbyte::@1
print_sbyte::@1: scope:[print_sbyte] from print_sbyte print_sbyte::@4
[40] (byte*) char_cursor#37 ← phi( print_sbyte/(byte*) char_cursor#41 print_sbyte::@4/(byte*) char_cursor#10 ) [ print_sbyte::b#3 char_cursor#37 ] ( main:2::print_sbyte:23 [ main::i#2 print_sbyte::b#3 char_cursor#37 ] )
[40] (signed byte) print_sbyte::b#3 ← phi( print_sbyte/(signed byte) print_sbyte::b#1 print_sbyte::@4/(signed byte) print_sbyte::b#0 ) [ print_sbyte::b#3 char_cursor#37 ] ( main:2::print_sbyte:23 [ main::i#2 print_sbyte::b#3 char_cursor#37 ] )
[41] call print_byte param-assignment [ char_cursor#10 ] ( main:2::print_sbyte:23 [ main::i#2 char_cursor#10 ] )
to:print_sbyte::@return
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
[42] return [ char_cursor#10 ] ( main:2::print_sbyte:23 [ main::i#2 char_cursor#10 ] )
to:@return
print_byte: scope:[print_byte] from print_sbyte::@1
[43] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte::b#3 char_cursor#37 print_byte::$0 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 char_cursor#37 print_byte::$0 ] )
[44] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 char_cursor#37 print_char::ch#1 ] )
[45] call print_char param-assignment [ char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 char_cursor#10 print_sbyte::b#3 ] )
to:print_byte::@1
print_byte::@1: scope:[print_byte] from print_byte
[46] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 char_cursor#10 print_byte::$2 ] )
[47] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 char_cursor#10 print_char::ch#2 ] )
[48] call print_char param-assignment [ char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 char_cursor#10 ] )
to:print_byte::@return
print_byte::@return: scope:[print_byte] from print_byte::@1
[49] return [ char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 char_cursor#10 ] )
to:@return
print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@2
[50] (byte*) char_cursor#27 ← phi( print_byte/(byte*) char_cursor#37 print_byte::@1/(byte*) char_cursor#10 print_sbyte::@2/(byte*) char_cursor#41 ) [ print_char::ch#3 char_cursor#27 ] ( main:2::print_sbyte:23::print_char:38 [ main::i#2 print_sbyte::b#1 print_char::ch#3 char_cursor#27 ] main:2::print_sbyte:23::print_byte:41::print_char:45 [ main::i#2 print_sbyte::b#3 print_char::ch#3 char_cursor#27 ] main:2::print_sbyte:23::print_byte:41::print_char:48 [ main::i#2 print_char::ch#3 char_cursor#27 ] )
[50] (byte) print_char::ch#3 ← phi( print_byte/(byte) print_char::ch#1 print_byte::@1/(byte) print_char::ch#2 print_sbyte::@2/(byte) '-' ) [ print_char::ch#3 char_cursor#27 ] ( main:2::print_sbyte:23::print_char:38 [ main::i#2 print_sbyte::b#1 print_char::ch#3 char_cursor#27 ] main:2::print_sbyte:23::print_byte:41::print_char:45 [ main::i#2 print_sbyte::b#3 print_char::ch#3 char_cursor#27 ] main:2::print_sbyte:23::print_byte:41::print_char:48 [ main::i#2 print_char::ch#3 char_cursor#27 ] )
[51] *((byte*) char_cursor#27) ← (byte) print_char::ch#3 [ char_cursor#27 ] ( main:2::print_sbyte:23::print_char:38 [ main::i#2 print_sbyte::b#1 char_cursor#27 ] main:2::print_sbyte:23::print_byte:41::print_char:45 [ main::i#2 print_sbyte::b#3 char_cursor#27 ] main:2::print_sbyte:23::print_byte:41::print_char:48 [ main::i#2 char_cursor#27 ] )
[52] (byte*) char_cursor#10 ← ++ (byte*) char_cursor#27 [ char_cursor#10 ] ( main:2::print_sbyte:23::print_char:38 [ main::i#2 print_sbyte::b#1 char_cursor#10 ] main:2::print_sbyte:23::print_byte:41::print_char:45 [ main::i#2 print_sbyte::b#3 char_cursor#10 ] main:2::print_sbyte:23::print_byte:41::print_char:48 [ main::i#2 char_cursor#10 ] )
to:print_char::@return
print_char::@return: scope:[print_char] from print_char
[53] return [ char_cursor#10 ] ( main:2::print_sbyte:23::print_char:38 [ main::i#2 print_sbyte::b#1 char_cursor#10 ] main:2::print_sbyte:23::print_byte:41::print_char:45 [ main::i#2 print_sbyte::b#3 char_cursor#10 ] main:2::print_sbyte:23::print_byte:41::print_char:48 [ main::i#2 char_cursor#10 ] )
to:@return
print_cls: scope:[print_cls] from main::@6
[54] phi() [ ] ( main:2::print_cls:9 [ ] )
to:print_cls::@1
print_cls::@1: scope:[print_cls] from print_cls print_cls::@1
[55] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:9 [ print_cls::sc#2 ] )
[56] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:9 [ print_cls::sc#2 ] )
[57] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] )
[58] 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:9 [ print_cls::sc#1 ] )
to:print_cls::@return
print_cls::@return: scope:[print_cls] from print_cls::@1
[59] return [ ] ( main:2::print_cls:9 [ ] )
to:@return
sin16s_gen: scope:[sin16s_gen] from main::@5
[60] phi() [ ] ( main:2::sin16s_gen:7 [ ] )
[61] call div32u16u param-assignment [ div32u16u::return#0 ] ( main:2::sin16s_gen:7 [ div32u16u::return#0 ] )
[62] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:2::sin16s_gen:7 [ div32u16u::return#2 ] )
to:sin16s_gen::@3
sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen
[63] (dword) sin16s_gen::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen::step#0 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 ] )
to:sin16s_gen::@1
sin16s_gen::@1: scope:[sin16s_gen] from sin16s_gen::@3 sin16s_gen::@4
[64] (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:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
[64] (signed word*) sin16s_gen::sintab#2 ← phi( sin16s_gen::@3/(const signed word[192]) main::sintabw#0 sin16s_gen::@4/(signed word*) sin16s_gen::sintab#0 ) [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
[64] (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:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
[65] (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:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#0 ] )
[66] 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:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
[67] (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:7 [ 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::@1
[68] (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:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s_gen::$1 ] )
[69] *((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:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 ] )
[70] (signed word*) sin16s_gen::sintab#0 ← (signed word*) sin16s_gen::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#0 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::i#2 sin16s_gen::sintab#0 ] )
[71] (dword) sin16s_gen::x#1 ← (dword) sin16s_gen::x#2 + (dword) sin16s_gen::step#0 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#0 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#1 sin16s_gen::sintab#0 ] )
[72] (word) sin16s_gen::i#1 ← ++ (word) sin16s_gen::i#2 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#0 sin16s_gen::i#1 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#0 sin16s_gen::i#1 ] )
[73] if((word) sin16s_gen::i#1<(const word) main::wavelength#0) goto sin16s_gen::@1 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#0 sin16s_gen::i#1 ] ( main:2::sin16s_gen:7 [ sin16s_gen::step#0 sin16s_gen::x#1 sin16s_gen::sintab#0 sin16s_gen::i#1 ] )
to:sin16s_gen::@return
sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@4
[74] return [ ] ( main:2::sin16s_gen:7 [ ] )
to:@return
sin16s: scope:[sin16s] from sin16s_gen::@1
[75] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ 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
[76] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#1 ] ( main:2::sin16s_gen:7::sin16s:66 [ 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
[77] (byte) sin16s::isUpper#2 ← 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#2 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#2 ] )
[77] (dword) sin16s::x#4 ← phi( sin16s/(dword) sin16s::x#0 sin16s::@4/(dword) sin16s::x#1 ) [ sin16s::x#4 sin16s::isUpper#2 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#2 ] )
[78] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#2 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::x#4 sin16s::isUpper#2 ] )
to:sin16s::@5
sin16s::@5: scope:[sin16s] from sin16s::@1
[79] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#2 sin16s::x#2 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x#2 ] )
to:sin16s::@2
sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5
[80] (dword) sin16s::x#6 ← phi( sin16s::@1/(dword) sin16s::x#4 sin16s::@5/(dword) sin16s::x#2 ) [ sin16s::isUpper#2 sin16s::x#6 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x#6 ] )
[81] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#2 sin16s::$6 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::$6 ] )
[82] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 ] )
[83] (word) mulu16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] )
[84] (word) mulu16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] )
[85] call mulu16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] )
[86] (word) mulu16_sel::return#0 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] )
to:sin16s::@8
sin16s::@8: scope:[sin16s] from sin16s::@2
[87] (word) sin16s::x2#0 ← (word) mulu16_sel::return#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x2#0 ] )
[88] (word) mulu16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 ] )
[89] (word) mulu16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 mulu16_sel::v2#1 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 mulu16_sel::v2#1 ] )
[90] call mulu16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] )
[91] (word) mulu16_sel::return#1 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#1 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#1 ] )
to:sin16s::@9
sin16s::@9: scope:[sin16s] from sin16s::@8
[92] (word) sin16s::x3#0 ← (word) mulu16_sel::return#1 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 ] )
[93] (word) mulu16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#2 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#2 ] )
[94] call mulu16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::x3#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::x3#0 ] )
[95] (word) mulu16_sel::return#2 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#2 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#2 ] )
to:sin16s::@10
sin16s::@10: scope:[sin16s] from sin16s::@9
[96] (word) sin16s::x3_6#0 ← (word) mulu16_sel::return#2 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] )
[97] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] )
[98] (word) mulu16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 ] )
[99] (word) mulu16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 mulu16_sel::v2#3 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 mulu16_sel::v2#3 ] )
[100] call mulu16_sel param-assignment [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::usinx#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::usinx#0 ] )
[101] (word) mulu16_sel::return#10 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#10 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#10 ] )
to:sin16s::@11
sin16s::@11: scope:[sin16s] from sin16s::@10
[102] (word) sin16s::x4#0 ← (word) mulu16_sel::return#10 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] )
[103] (word) mulu16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#4 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#4 ] )
[104] (word) mulu16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#4 mulu16_sel::v2#4 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#4 mulu16_sel::v2#4 ] )
[105] call mulu16_sel param-assignment [ sin16s::isUpper#2 mulu16_sel::return#12 sin16s::usinx#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 mulu16_sel::return#12 sin16s::usinx#0 ] )
[106] (word) mulu16_sel::return#11 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#11 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#11 ] )
to:sin16s::@12
sin16s::@12: scope:[sin16s] from sin16s::@11
[107] (word) sin16s::x5#0 ← (word) mulu16_sel::return#11 [ sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5#0 ] )
[108] (word) sin16s::x5_128#0 ← (word) sin16s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] )
[109] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#2 sin16s::usinx#1 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#1 ] )
[110] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 [ sin16s::usinx#1 ] ( main:2::sin16s_gen:7::sin16s:66 [ 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::@12
[111] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#1 ] ( main:2::sin16s_gen:7::sin16s:66 [ 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::@15 sin16s::@6
[112] (signed word) sin16s::return#1 ← phi( sin16s::@15/(signed word~) sin16s::return#5 sin16s::@6/(signed word) sin16s::sinx#1 ) [ sin16s::return#1 ] ( main:2::sin16s_gen:7::sin16s:66 [ 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
[113] return [ sin16s::return#1 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#1 ] )
to:@return
sin16s::@15: scope:[sin16s] from sin16s::@12
[114] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:7::sin16s:66 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] )
to:sin16s::@3
mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9
[115] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
[115] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [ mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
[115] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [ mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
[116] (word) mul16u::a#1 ← (word) mulu16_sel::v1#5 [ mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v2#5 mulu16_sel::select#5 mul16u::a#1 ] )
[117] (word) mul16u::b#0 ← (word) mulu16_sel::v2#5 [ mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#1 mul16u::b#0 ] )
[118] call mul16u param-assignment [ mulu16_sel::select#5 mul16u::res#2 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] )
[119] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mulu16_sel::select#5 mul16u::return#2 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#2 ] )
to:mulu16_sel::@2
mulu16_sel::@2: scope:[mulu16_sel] from mulu16_sel
[120] (dword~) mulu16_sel::$0 ← (dword) mul16u::return#2 [ mulu16_sel::select#5 mulu16_sel::$0 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] )
[121] (dword~) mulu16_sel::$1 ← (dword~) mulu16_sel::$0 << (byte) mulu16_sel::select#5 [ mulu16_sel::$1 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::$1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::$1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::$1 ] )
[122] (word) mulu16_sel::return#12 ← > (dword~) mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] )
to:mulu16_sel::@return
mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2
[123] return [ mulu16_sel::return#12 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] )
to:@return
mul16u: scope:[mul16u] from mulu16_sel
[124] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#0 [ mul16u::a#1 mul16u::mb#0 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#1 mul16u::mb#0 ] )
to:mul16u::@1
mul16u::@1: scope:[mul16u] from mul16u mul16u::@4
[125] (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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[125] (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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[125] (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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
[126] 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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
to:mul16u::@return
mul16u::@return: scope:[mul16u] from mul16u::@1
[127] return [ mul16u::res#2 ] ( main:2::sin16s_gen:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] )
to:@return
mul16u::@2: scope:[mul16u] from mul16u::@1
[128] (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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] )
[129] 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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] )
to:mul16u::@7
mul16u::@7: scope:[mul16u] from mul16u::@2
[130] (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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] )
to:mul16u::@4
mul16u::@4: scope:[mul16u] from mul16u::@2 mul16u::@7
[131] (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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#6 ] )
[132] (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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] )
[133] (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:7::sin16s:66::mulu16_sel:85::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:90::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:94::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:100::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen:7::sin16s:66::mulu16_sel:105::mul16u:118 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
to:mul16u::@1
div32u16u: scope:[div32u16u] from sin16s_gen
[134] phi() [ ] ( main:2::sin16s_gen:7::div32u16u:61 [ ] )
[135] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:7::div32u16u:61 [ divr16u::return#0 rem16u#1 ] )
[136] (word) divr16u::return#3 ← (word) divr16u::return#0 [ divr16u::return#3 rem16u#1 ] ( main:2::sin16s_gen:7::div32u16u:61 [ divr16u::return#3 rem16u#1 ] )
to:div32u16u::@2
div32u16u::@2: scope:[div32u16u] from div32u16u
[137] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen:7::div32u16u:61 [ div32u16u::quotient_hi#0 rem16u#1 ] )
[138] (word) divr16u::rem#5 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#5 ] ( main:2::sin16s_gen:7::div32u16u:61 [ div32u16u::quotient_hi#0 divr16u::rem#5 ] )
[139] call divr16u param-assignment [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen:7::div32u16u:61 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
[140] (word) divr16u::return#4 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#4 ] ( main:2::sin16s_gen:7::div32u16u:61 [ div32u16u::quotient_hi#0 divr16u::return#4 ] )
to:div32u16u::@3
div32u16u::@3: scope:[div32u16u] from div32u16u::@2
[141] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#4 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen:7::div32u16u:61 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
[142] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:2::sin16s_gen:7::div32u16u:61 [ div32u16u::return#0 ] )
to:div32u16u::@return
div32u16u::@return: scope:[div32u16u] from div32u16u::@3
[143] return [ div32u16u::return#0 ] ( main:2::sin16s_gen:7::div32u16u:61 [ div32u16u::return#0 ] )
to:@return
divr16u: scope:[divr16u] from div16u div32u16u div32u16u::@2
[144] (word) divr16u::divisor#7 ← phi( div16u/(const word) main::wavelength#0 div32u16u/(const word) main::wavelength#0 div32u16u::@2/(const word) main::wavelength#0 ) [ divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] )
[144] (word) divr16u::dividend#6 ← phi( div16u/(const word) PI2_u4f12#0 div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] )
[144] (word) divr16u::rem#11 ← phi( div16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#5 ) [ divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::rem#11 divr16u::dividend#6 divr16u::divisor#7 ] )
to:divr16u::@1
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
[145] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] )
[145] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] )
[145] (word) divr16u::dividend#4 ← phi( divr16u/(word) divr16u::dividend#6 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] )
[145] (word) divr16u::rem#6 ← phi( divr16u/(word) divr16u::rem#11 divr16u::@3/(word) divr16u::rem#10 ) [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::rem#6 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 ] )
[146] (word) divr16u::rem#0 ← (word) divr16u::rem#6 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[147] (byte~) divr16u::$1 ← > (word) divr16u::dividend#4 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
[148] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
[149] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
to:divr16u::@4
divr16u::@4: scope:[divr16u] from divr16u::@1
[150] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
to:divr16u::@2
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
[151] (word) divr16u::rem#7 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#7 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#7 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#7 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::dividend#4 divr16u::quotient#3 divr16u::i#2 divr16u::rem#7 ] )
[152] (word) divr16u::dividend#0 ← (word) divr16u::dividend#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#7 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 ] )
[153] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] )
[154] if((word) divr16u::rem#7<(word) divr16u::divisor#7) goto divr16u::@3 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#1 ] )
to:divr16u::@5
divr16u::@5: scope:[divr16u] from divr16u::@2
[155] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#2 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#2 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#2 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::rem#7 divr16u::quotient#2 ] )
[156] (word) divr16u::rem#2 ← (word) divr16u::rem#7 - (word) divr16u::divisor#7 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::divisor#7 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
to:divr16u::@3
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
[157] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#7 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::return#0 divr16u::divisor#7 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#7 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::return#0 divr16u::divisor#7 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[157] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#7 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#7 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::return#0 divr16u::divisor#7 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#7 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::return#0 divr16u::divisor#7 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[158] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#7 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::return#0 divr16u::divisor#7 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#7 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::return#0 divr16u::divisor#7 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
[159] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#7 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::return#0 divr16u::divisor#7 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::divisor#7 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::return#0 divr16u::divisor#7 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
to:divr16u::@6
divr16u::@6: scope:[divr16u] from divr16u::@3
[160] (word) rem16u#1 ← (word) divr16u::rem#10 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::return#0 rem16u#1 ] )
to:divr16u::@return
divr16u::@return: scope:[divr16u] from divr16u::@6
[161] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:7::div32u16u:61::divr16u:135 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:7::div32u16u:61::divr16u:139 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] main:2::sin8s_gen:5::div16u:163::divr16u:240 [ divr16u::return#0 rem16u#1 ] )
to:@return
sin8s_gen: scope:[sin8s_gen] from main
[162] phi() [ ] ( main:2::sin8s_gen:5 [ ] )
[163] call div16u param-assignment [ div16u::return#0 ] ( main:2::sin8s_gen:5 [ div16u::return#0 ] )
[164] (word) div16u::return#2 ← (word) div16u::return#0 [ div16u::return#2 ] ( main:2::sin8s_gen:5 [ div16u::return#2 ] )
to:sin8s_gen::@3
sin8s_gen::@3: scope:[sin8s_gen] from sin8s_gen
[165] (word) sin8s_gen::step#0 ← (word) div16u::return#2 [ sin8s_gen::step#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 ] )
to:sin8s_gen::@1
sin8s_gen::@1: scope:[sin8s_gen] from sin8s_gen::@3 sin8s_gen::@4
[166] (word) sin8s_gen::i#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::i#1 ) [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] )
[166] (signed byte*) sin8s_gen::sintab#2 ← phi( sin8s_gen::@3/(const signed byte[192]) main::sintabb#0 sin8s_gen::@4/(signed byte*) sin8s_gen::sintab#0 ) [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] )
[166] (word) sin8s_gen::x#2 ← phi( sin8s_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s_gen::@4/(word) sin8s_gen::x#1 ) [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] )
[167] (word) sin8s::x#0 ← (word) sin8s_gen::x#2 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] )
[168] call sin8s param-assignment [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#1 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#1 ] )
[169] (signed byte) sin8s::return#0 ← (signed byte) sin8s::return#1 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#0 ] )
to:sin8s_gen::@4
sin8s_gen::@4: scope:[sin8s_gen] from sin8s_gen::@1
[170] (signed byte~) sin8s_gen::$1 ← (signed byte) sin8s::return#0 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s_gen::$1 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s_gen::$1 ] )
[171] *((signed byte*) sin8s_gen::sintab#2) ← (signed byte~) sin8s_gen::$1 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 ] )
[172] (signed byte*) sin8s_gen::sintab#0 ← ++ (signed byte*) sin8s_gen::sintab#2 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::i#2 sin8s_gen::sintab#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::i#2 sin8s_gen::sintab#0 ] )
[173] (word) sin8s_gen::x#1 ← (word) sin8s_gen::x#2 + (word) sin8s_gen::step#0 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#1 sin8s_gen::sintab#0 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::i#2 sin8s_gen::x#1 sin8s_gen::sintab#0 ] )
[174] (word) sin8s_gen::i#1 ← ++ (word) sin8s_gen::i#2 [ sin8s_gen::step#0 sin8s_gen::x#1 sin8s_gen::sintab#0 sin8s_gen::i#1 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#1 sin8s_gen::sintab#0 sin8s_gen::i#1 ] )
[175] if((word) sin8s_gen::i#1<(const word) main::wavelength#0) goto sin8s_gen::@1 [ sin8s_gen::step#0 sin8s_gen::x#1 sin8s_gen::sintab#0 sin8s_gen::i#1 ] ( main:2::sin8s_gen:5 [ sin8s_gen::step#0 sin8s_gen::x#1 sin8s_gen::sintab#0 sin8s_gen::i#1 ] )
to:sin8s_gen::@return
sin8s_gen::@return: scope:[sin8s_gen] from sin8s_gen::@4
[176] return [ ] ( main:2::sin8s_gen:5 [ ] )
to:@return
sin8s: scope:[sin8s] from sin8s_gen::@1
[177] if((word) sin8s::x#0<(const word) PI_u4f12#0) goto sin8s::@1 [ sin8s::x#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#0 ] )
to:sin8s::@5
sin8s::@5: scope:[sin8s] from sin8s
[178] (word) sin8s::x#1 ← (word) sin8s::x#0 - (const word) PI_u4f12#0 [ sin8s::x#1 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#1 ] )
to:sin8s::@1
sin8s::@1: scope:[sin8s] from sin8s sin8s::@5
[179] (byte) sin8s::isUpper#10 ← phi( sin8s/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@5/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin8s::x#4 sin8s::isUpper#10 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#4 sin8s::isUpper#10 ] )
[179] (word) sin8s::x#4 ← phi( sin8s/(word) sin8s::x#0 sin8s::@5/(word) sin8s::x#1 ) [ sin8s::x#4 sin8s::isUpper#10 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#4 sin8s::isUpper#10 ] )
[180] if((word) sin8s::x#4<(const word) PI_HALF_u4f12#0) goto sin8s::@2 [ sin8s::x#4 sin8s::isUpper#10 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::x#4 sin8s::isUpper#10 ] )
to:sin8s::@6
sin8s::@6: scope:[sin8s] from sin8s::@1
[181] (word) sin8s::x#2 ← (const word) PI_u4f12#0 - (word) sin8s::x#4 [ sin8s::isUpper#10 sin8s::x#2 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x#2 ] )
to:sin8s::@2
sin8s::@2: scope:[sin8s] from sin8s::@1 sin8s::@6
[182] (word) sin8s::x#6 ← phi( sin8s::@1/(word) sin8s::x#4 sin8s::@6/(word) sin8s::x#2 ) [ sin8s::isUpper#10 sin8s::x#6 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x#6 ] )
[183] (word~) sin8s::$6 ← (word) sin8s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin8s::isUpper#10 sin8s::$6 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::$6 ] )
[184] (byte) sin8s::x1#0 ← > (word~) sin8s::$6 [ sin8s::isUpper#10 sin8s::x1#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 ] )
[185] (byte) mulu8_sel::v1#0 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#0 ] )
[186] (byte) mulu8_sel::v2#0 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#0 mulu8_sel::v2#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#0 mulu8_sel::v2#0 ] )
[187] call mulu8_sel param-assignment [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] )
[188] (byte) mulu8_sel::return#0 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#0 ] )
to:sin8s::@10
sin8s::@10: scope:[sin8s] from sin8s::@2
[189] (byte) sin8s::x2#0 ← (byte) mulu8_sel::return#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x2#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x2#0 ] )
[190] (byte) mulu8_sel::v1#1 ← (byte) sin8s::x2#0 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#1 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#1 ] )
[191] (byte) mulu8_sel::v2#1 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#1 mulu8_sel::v2#1 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#1 mulu8_sel::v2#1 ] )
[192] call mulu8_sel param-assignment [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] )
[193] (byte) mulu8_sel::return#1 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#1 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#1 ] )
to:sin8s::@11
sin8s::@11: scope:[sin8s] from sin8s::@10
[194] (byte) sin8s::x3#0 ← (byte) mulu8_sel::return#1 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 ] )
[195] (byte) mulu8_sel::v1#2 ← (byte) sin8s::x3#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#2 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#2 ] )
[196] call mulu8_sel param-assignment [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 sin8s::x3#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 sin8s::x3#0 ] )
[197] (byte) mulu8_sel::return#2 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#2 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#2 ] )
to:sin8s::@12
sin8s::@12: scope:[sin8s] from sin8s::@11
[198] (byte) sin8s::x3_6#0 ← (byte) mulu8_sel::return#2 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 sin8s::x3_6#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 sin8s::x3_6#0 ] )
[199] (byte) sin8s::usinx#0 ← (byte) sin8s::x1#0 - (byte) sin8s::x3_6#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 sin8s::usinx#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 sin8s::usinx#0 ] )
[200] (byte) mulu8_sel::v1#3 ← (byte) sin8s::x3#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 ] )
[201] (byte) mulu8_sel::v2#3 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 mulu8_sel::v2#3 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 mulu8_sel::v2#3 ] )
[202] call mulu8_sel param-assignment [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 sin8s::usinx#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 sin8s::usinx#0 ] )
[203] (byte) mulu8_sel::return#10 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#10 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#10 ] )
to:sin8s::@13
sin8s::@13: scope:[sin8s] from sin8s::@12
[204] (byte) sin8s::x4#0 ← (byte) mulu8_sel::return#10 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 sin8s::x4#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 sin8s::x4#0 ] )
[205] (byte) mulu8_sel::v1#4 ← (byte) sin8s::x4#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#4 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#4 ] )
[206] (byte) mulu8_sel::v2#4 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#4 mulu8_sel::v2#4 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#4 mulu8_sel::v2#4 ] )
[207] call mulu8_sel param-assignment [ sin8s::isUpper#10 mulu8_sel::return#12 sin8s::usinx#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 mulu8_sel::return#12 sin8s::usinx#0 ] )
[208] (byte) mulu8_sel::return#11 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::return#11 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::return#11 ] )
to:sin8s::@14
sin8s::@14: scope:[sin8s] from sin8s::@13
[209] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11 [ sin8s::isUpper#10 sin8s::usinx#0 sin8s::x5#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 sin8s::x5#0 ] )
[210] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ sin8s::isUpper#10 sin8s::usinx#0 sin8s::x5_128#0 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 sin8s::x5_128#0 ] )
[211] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0 [ sin8s::isUpper#10 sin8s::usinx#1 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#1 ] )
[212] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 [ sin8s::isUpper#10 sin8s::usinx#1 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#1 ] )
to:sin8s::@7
sin8s::@7: scope:[sin8s] from sin8s::@14
[213] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1 [ sin8s::isUpper#10 sin8s::usinx#2 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#2 ] )
to:sin8s::@3
sin8s::@3: scope:[sin8s] from sin8s::@14 sin8s::@7
[214] (byte) sin8s::usinx#4 ← phi( sin8s::@14/(byte) sin8s::usinx#1 sin8s::@7/(byte) sin8s::usinx#2 ) [ sin8s::isUpper#10 sin8s::usinx#4 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#4 ] )
[215] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 [ sin8s::usinx#4 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::usinx#4 ] )
to:sin8s::@8
sin8s::@8: scope:[sin8s] from sin8s::@3
[216] (signed byte) sin8s::sinx#1 ← - (signed byte)(byte) sin8s::usinx#4 [ sin8s::sinx#1 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::sinx#1 ] )
to:sin8s::@4
sin8s::@4: scope:[sin8s] from sin8s::@18 sin8s::@8
[217] (signed byte) sin8s::return#1 ← phi( sin8s::@18/(signed byte~) sin8s::return#5 sin8s::@8/(signed byte) sin8s::sinx#1 ) [ sin8s::return#1 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#1 ] )
to:sin8s::@return
sin8s::@return: scope:[sin8s] from sin8s::@4
[218] return [ sin8s::return#1 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#1 ] )
to:@return
sin8s::@18: scope:[sin8s] from sin8s::@3
[219] (signed byte~) sin8s::return#5 ← (signed byte)(byte) sin8s::usinx#4 [ sin8s::return#5 ] ( main:2::sin8s_gen:5::sin8s:168 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::return#5 ] )
to:sin8s::@4
mulu8_sel: scope:[mulu8_sel] from sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@2
[220] (byte) mulu8_sel::select#5 ← phi( sin8s::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 sin8s::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 sin8s::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[220] (byte) mulu8_sel::v2#5 ← phi( sin8s::@10/(byte) mulu8_sel::v2#1 sin8s::@11/(const byte) sin8s::DIV_6#0 sin8s::@12/(byte) mulu8_sel::v2#3 sin8s::@13/(byte) mulu8_sel::v2#4 sin8s::@2/(byte) mulu8_sel::v2#0 ) [ mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[220] (byte) mulu8_sel::v1#5 ← phi( sin8s::@10/(byte) mulu8_sel::v1#1 sin8s::@11/(byte) mulu8_sel::v1#2 sin8s::@12/(byte) mulu8_sel::v1#3 sin8s::@13/(byte) mulu8_sel::v1#4 sin8s::@2/(byte) mulu8_sel::v1#0 ) [ mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[221] (byte) mul8u::a#1 ← (byte) mulu8_sel::v1#5 [ mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v2#5 mulu8_sel::select#5 mul8u::a#1 ] )
[222] (byte) mul8u::b#0 ← (byte) mulu8_sel::v2#5 [ mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#1 mul8u::b#0 ] )
[223] call mul8u param-assignment [ mulu8_sel::select#5 mul8u::res#2 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] )
[224] (word) mul8u::return#2 ← (word) mul8u::res#2 [ mulu8_sel::select#5 mul8u::return#2 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::return#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::return#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::return#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::return#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::return#2 ] )
to:mulu8_sel::@2
mulu8_sel::@2: scope:[mulu8_sel] from mulu8_sel
[225] (word~) mulu8_sel::$0 ← (word) mul8u::return#2 [ mulu8_sel::select#5 mulu8_sel::$0 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mulu8_sel::$0 ] )
[226] (word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select#5 [ mulu8_sel::$1 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::$1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::$1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::$1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::$1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::$1 ] )
[227] (byte) mulu8_sel::return#12 ← > (word~) mulu8_sel::$1 [ mulu8_sel::return#12 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::return#12 ] )
to:mulu8_sel::@return
mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2
[228] return [ mulu8_sel::return#12 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#12 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::return#12 ] )
to:@return
mul8u: scope:[mul8u] from mulu8_sel
[229] (word) mul8u::mb#0 ← ((word)) (byte) mul8u::b#0 [ mul8u::a#1 mul8u::mb#0 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#1 mul8u::mb#0 ] )
to:mul8u::@1
mul8u::@1: scope:[mul8u] from mul8u mul8u::@4
[230] (word) mul8u::mb#2 ← phi( mul8u/(word) mul8u::mb#0 mul8u::@4/(word) mul8u::mb#1 ) [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
[230] (word) mul8u::res#2 ← phi( mul8u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul8u::@4/(word) mul8u::res#6 ) [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
[230] (byte) mul8u::a#2 ← phi( mul8u/(byte) mul8u::a#1 mul8u::@4/(byte) mul8u::a#0 ) [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
[231] if((byte) mul8u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
to:mul8u::@return
mul8u::@return: scope:[mul8u] from mul8u::@1
[232] return [ mul8u::res#2 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] )
to:@return
mul8u::@2: scope:[mul8u] from mul8u::@1
[233] (byte~) mul8u::$1 ← (byte) mul8u::a#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] )
[234] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#2 mul8u::mb#2 ] )
to:mul8u::@7
mul8u::@7: scope:[mul8u] from mul8u::@2
[235] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2 [ mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] )
to:mul8u::@4
mul8u::@4: scope:[mul8u] from mul8u::@2 mul8u::@7
[236] (word) mul8u::res#6 ← phi( mul8u::@2/(word) mul8u::res#2 mul8u::@7/(word) mul8u::res#1 ) [ mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#2 mul8u::mb#2 mul8u::res#6 ] )
[237] (byte) mul8u::a#0 ← (byte) mul8u::a#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] )
[238] (word) mul8u::mb#1 ← (word) mul8u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] ( main:2::sin8s_gen:5::sin8s:168::mulu8_sel:187::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:192::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:196::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:202::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8s_gen:5::sin8s:168::mulu8_sel:207::mul8u:223 [ sin8s_gen::step#0 sin8s_gen::x#2 sin8s_gen::sintab#2 sin8s_gen::i#2 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] )
to:mul8u::@1
div16u: scope:[div16u] from sin8s_gen
[239] phi() [ ] ( main:2::sin8s_gen:5::div16u:163 [ ] )
[240] call divr16u param-assignment [ divr16u::return#0 ] ( main:2::sin8s_gen:5::div16u:163 [ divr16u::return#0 ] )
[241] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 ] ( main:2::sin8s_gen:5::div16u:163 [ divr16u::return#2 ] )
to:div16u::@2
div16u::@2: scope:[div16u] from div16u
[242] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:163 [ div16u::return#0 ] )
to:div16u::@return
div16u::@return: scope:[div16u] from div16u::@2
[243] return [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:163 [ div16u::return#0 ] )
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,436 @@
(label) @29
(label) @begin
(label) @end
(word) PI2_u4f12
(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736
(dword) PI2_u4f28
(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713
(word) PI_HALF_u4f12
(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434
(dword) PI_HALF_u4f28
(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428
(word) PI_u4f12
(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868
(dword) PI_u4f28
(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(byte*) char_cursor
(byte*) char_cursor#1 char_cursor zp ZP_WORD:5 101.0
(byte*) char_cursor#10 char_cursor zp ZP_WORD:5 1.3076923076923075
(byte*) char_cursor#19 char_cursor zp ZP_WORD:5 40.875
(byte*) char_cursor#27 char_cursor zp ZP_WORD:5 5.0
(byte*) char_cursor#37 char_cursor zp ZP_WORD:5 2.0
(byte*) char_cursor#41 char_cursor zp ZP_WORD:5 6.5
(byte*) char_cursor#42 char_cursor zp ZP_WORD:5 3.3000000000000003
(byte*) char_cursor#44 char_cursor zp ZP_WORD:5 24.0
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
(label) div16u::@2
(label) div16u::@return
(word) div16u::dividend
(word) div16u::divisor
(word) div16u::return
(word) div16u::return#0 return zp ZP_WORD:17 1.3333333333333333
(word) div16u::return#2 return zp ZP_WORD:17 4.0
(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
(label) div32u16u::@2
(label) div32u16u::@3
(label) div32u16u::@return
(dword) div32u16u::dividend
(word) div32u16u::divisor
(dword) div32u16u::quotient
(word) div32u16u::quotient_hi
(word) div32u16u::quotient_hi#0 quotient_hi zp ZP_WORD:19 0.8
(word) div32u16u::quotient_lo
(word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:17 4.0
(dword) div32u16u::return
(dword) div32u16u::return#0 return zp ZP_DWORD:28 1.3333333333333333
(dword) div32u16u::return#2 return zp ZP_DWORD:28 4.0
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
(byte~) divr16u::$1 reg byte a 22.0
(byte~) divr16u::$2 reg byte a 22.0
(label) divr16u::@1
(label) divr16u::@2
(label) divr16u::@3
(label) divr16u::@4
(label) divr16u::@5
(label) divr16u::@6
(label) divr16u::@return
(word) divr16u::dividend
(word) divr16u::dividend#0 dividend zp ZP_WORD:15 2.75
(word) divr16u::dividend#4 dividend zp ZP_WORD:15 5.0
(word) divr16u::dividend#6 dividend zp ZP_WORD:15 2.0
(word) divr16u::divisor
(word) divr16u::divisor#7 divisor zp ZP_WORD:2 1.375
(byte) divr16u::i
(byte) divr16u::i#1 reg byte x 16.5
(byte) divr16u::i#2 reg byte x 1.6923076923076923
(word) divr16u::quotient
(word) divr16u::quotient#1 quotient zp ZP_WORD:17 16.5
(word) divr16u::quotient#2 quotient zp ZP_WORD:17 11.0
(word) divr16u::quotient#3 quotient zp ZP_WORD:17 2.75
(word) divr16u::rem
(word) divr16u::rem#0 rem zp ZP_WORD:5 8.25
(word) divr16u::rem#1 rem zp ZP_WORD:5 22.0
(word) divr16u::rem#10 rem zp ZP_WORD:5 11.666666666666666
(word) divr16u::rem#11 rem zp ZP_WORD:5 4.0
(word) divr16u::rem#2 rem zp ZP_WORD:5 22.0
(word) divr16u::rem#5 rem zp ZP_WORD:5 4.0
(word) divr16u::rem#6 rem zp ZP_WORD:5 24.0
(word) divr16u::rem#7 rem zp ZP_WORD:5 11.0
(word) divr16u::return
(word) divr16u::return#0 return zp ZP_WORD:17 4.875
(word) divr16u::return#2 return zp ZP_WORD:17 4.0
(word) divr16u::return#3 return zp ZP_WORD:17 4.0
(word) divr16u::return#4 return zp ZP_WORD:17 4.0
(byte*) line_cursor
(void()) main()
(word~) main::$3 $3 zp ZP_WORD:2 22.0
(word~) main::$4 $4 zp ZP_WORD:2 22.0
(signed word*~) main::$5 $5 zp ZP_WORD:2 22.0
(byte~) main::$6 reg byte a 11.0
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@5
(label) main::@6
(label) main::@8
(label) main::@9
(label) main::@return
(byte) main::i
(byte) main::i#1 reg byte x 16.5
(byte) main::i#2 reg byte x 2.75
(signed byte) main::sb
(signed byte) main::sb#0 sb zp ZP_BYTE:4 3.6666666666666665
(signed byte) main::sd
(signed byte) main::sd#0 sd zp ZP_BYTE:4 6.6000000000000005
(signed byte[192]) main::sintabb
(const signed byte[192]) main::sintabb#0 sintabb = { fill( 192, 0) }
(signed word[192]) main::sintabw
(const signed word[192]) main::sintabw#0 sintabw = { fill( 192, 0) }
(const string) main::str str = (string) " @"
(const string) main::str1 str1 = (string) " @"
(signed word) main::sw
(signed word) main::sw#0 sw zp ZP_WORD:15 22.0
(word) main::wavelength
(const word) main::wavelength#0 wavelength = (byte/word/signed word/dword/signed dword) 192
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
(byte~) mul16u::$1 reg byte a 202.0
(label) mul16u::@1
(label) mul16u::@2
(label) mul16u::@4
(label) mul16u::@7
(label) mul16u::@return
(word) mul16u::a
(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:19 4.0
(dword) mul16u::mb
(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:11 202.0
(dword) mul16u::res#2 res zp ZP_DWORD:11 50.83333333333333
(dword) mul16u::res#6 res zp ZP_DWORD:11 101.0
(dword) mul16u::return
(dword) mul16u::return#2 return zp ZP_DWORD:11 4.0
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(byte~) mul8u::$1 reg byte a 202.0
(label) mul8u::@1
(label) mul8u::@2
(label) mul8u::@4
(label) mul8u::@7
(label) mul8u::@return
(byte) mul8u::a
(byte) mul8u::a#0 reg byte x 101.0
(byte) mul8u::a#1 reg byte x 1.3333333333333333
(byte) mul8u::a#2 reg byte x 67.66666666666666
(byte) mul8u::b
(byte) mul8u::b#0 reg byte a 4.0
(word) mul8u::mb
(word) mul8u::mb#0 mb zp ZP_WORD:21 4.0
(word) mul8u::mb#1 mb zp ZP_WORD:21 202.0
(word) mul8u::mb#2 mb zp ZP_WORD:21 43.57142857142858
(word) mul8u::res
(word) mul8u::res#1 res zp ZP_WORD:19 202.0
(word) mul8u::res#2 res zp ZP_WORD:19 50.83333333333333
(word) mul8u::res#6 res zp ZP_WORD:19 101.0
(word) mul8u::return
(word) mul8u::return#2 return zp ZP_WORD:19 4.0
(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select)
(dword~) mulu16_sel::$0 $0 zp ZP_DWORD:11 4.0
(dword~) mulu16_sel::$1 $1 zp ZP_DWORD:11 4.0
(label) mulu16_sel::@2
(label) mulu16_sel::@return
(word) mulu16_sel::return
(word) mulu16_sel::return#0 return zp ZP_WORD:19 4.0
(word) mulu16_sel::return#1 return#1 zp ZP_WORD:17 4.0
(word) mulu16_sel::return#10 return#10 zp ZP_WORD:17 4.0
(word) mulu16_sel::return#11 return zp ZP_WORD:19 4.0
(word) mulu16_sel::return#12 return zp ZP_WORD:19 1.714285714285714
(word) mulu16_sel::return#2 return zp ZP_WORD:19 4.0
(byte) mulu16_sel::select
(byte) mulu16_sel::select#5 reg byte x 0.3333333333333333
(word) mulu16_sel::v1
(word) mulu16_sel::v1#0 v1 zp ZP_WORD:17 2.0
(word) mulu16_sel::v1#1 v1 zp ZP_WORD:17 2.0
(word) mulu16_sel::v1#2 v1 zp ZP_WORD:17 4.0
(word) mulu16_sel::v1#3 v1 zp ZP_WORD:17 2.0
(word) mulu16_sel::v1#4 v1 zp ZP_WORD:17 2.0
(word) mulu16_sel::v1#5 v1 zp ZP_WORD:17 12.0
(word) mulu16_sel::v2
(word) mulu16_sel::v2#0 v2 zp ZP_WORD:19 4.0
(word) mulu16_sel::v2#1 v2 zp ZP_WORD:19 4.0
(word) mulu16_sel::v2#3 v2 zp ZP_WORD:19 4.0
(word) mulu16_sel::v2#4 v2 zp ZP_WORD:19 4.0
(word) mulu16_sel::v2#5 v2 zp ZP_WORD:19 5.0
(byte()) mulu8_sel((byte) mulu8_sel::v1 , (byte) mulu8_sel::v2 , (byte) mulu8_sel::select)
(word~) mulu8_sel::$0 $0 zp ZP_WORD:19 4.0
(word~) mulu8_sel::$1 $1 zp ZP_WORD:19 4.0
(label) mulu8_sel::@2
(label) mulu8_sel::@return
(byte) mulu8_sel::return
(byte) mulu8_sel::return#0 reg byte a 4.0
(byte) mulu8_sel::return#1 reg byte a 4.0
(byte) mulu8_sel::return#10 reg byte a 4.0
(byte) mulu8_sel::return#11 reg byte a 4.0
(byte) mulu8_sel::return#12 reg byte a 1.714285714285714
(byte) mulu8_sel::return#2 reg byte a 4.0
(byte) mulu8_sel::select
(byte) mulu8_sel::select#5 select zp ZP_BYTE:27 0.3333333333333333
(byte) mulu8_sel::v1
(byte) mulu8_sel::v1#0 reg byte x 2.0
(byte) mulu8_sel::v1#1 reg byte x 2.0
(byte) mulu8_sel::v1#2 reg byte x 4.0
(byte) mulu8_sel::v1#3 reg byte x 2.0
(byte) mulu8_sel::v1#4 reg byte x 2.0
(byte) mulu8_sel::v1#5 reg byte x 12.0
(byte) mulu8_sel::v2
(byte) mulu8_sel::v2#0 reg byte y 4.0
(byte) mulu8_sel::v2#1 reg byte y 4.0
(byte) mulu8_sel::v2#3 reg byte y 4.0
(byte) mulu8_sel::v2#4 reg byte y 4.0
(byte) mulu8_sel::v2#5 reg byte y 5.0
(void()) print_byte((byte) print_byte::b)
(byte~) print_byte::$0 reg byte a 4.0
(byte~) print_byte::$2 reg byte a 4.0
(label) print_byte::@1
(label) print_byte::@return
(byte) print_byte::b
(byte[]) print_byte::hextab
(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef"
(void()) print_char((byte) print_char::ch)
(label) print_char::@return
(byte) print_char::ch
(byte) print_char::ch#1 reg byte a 4.0
(byte) print_char::ch#2 reg byte a 4.0
(byte) print_char::ch#3 reg byte a 6.0
(void()) print_cls()
(label) print_cls::@1
(label) print_cls::@return
(byte*) print_cls::sc
(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5
(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5
(void()) print_sbyte((signed byte) print_sbyte::b)
(label) print_sbyte::@1
(label) print_sbyte::@2
(label) print_sbyte::@4
(label) print_sbyte::@return
(signed byte) print_sbyte::b
(signed byte) print_sbyte::b#0 b zp ZP_BYTE:4 4.0
(signed byte) print_sbyte::b#1 b zp ZP_BYTE:4 4.25
(signed byte) print_sbyte::b#3 b zp ZP_BYTE:4 1.0
(void()) print_str((byte*) print_str::str)
(label) print_str::@1
(label) print_str::@2
(label) print_str::@return
(byte*) print_str::str
(byte*) print_str::str#0 str zp ZP_WORD:2 202.0
(byte*) print_str::str#3 str zp ZP_WORD:2 101.5
(byte*) print_str::str#5 str zp ZP_WORD:2 2.0
(word) rem16u
(word) rem16u#1 rem16u zp ZP_WORD:5 0.8
(signed word()) sin16s((dword) sin16s::x)
(dword~) sin16s::$6 $6 zp ZP_DWORD:11 4.0
(label) sin16s::@1
(label) sin16s::@10
(label) sin16s::@11
(label) sin16s::@12
(label) sin16s::@15
(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#2 isUpper zp ZP_BYTE:4 0.06060606060606061
(signed word) sin16s::return
(signed word) sin16s::return#0 return zp ZP_WORD:15 22.0
(signed word) sin16s::return#1 return zp ZP_WORD:15 5.0
(signed word~) sin16s::return#5 return zp ZP_WORD:15 4.0
(signed word) sin16s::sinx
(signed word) sin16s::sinx#1 sinx zp ZP_WORD:15 4.0
(word) sin16s::usinx
(word) sin16s::usinx#0 usinx zp ZP_WORD:15 0.3333333333333333
(word) sin16s::usinx#1 usinx zp ZP_WORD:15 1.0
(dword) sin16s::x
(dword) sin16s::x#0 x zp ZP_DWORD:11 8.5
(dword) sin16s::x#1 x zp ZP_DWORD:11 4.0
(dword) sin16s::x#2 x zp ZP_DWORD:11 4.0
(dword) sin16s::x#4 x zp ZP_DWORD:11 5.0
(dword) sin16s::x#6 x zp ZP_DWORD:11 6.0
(word) sin16s::x1
(word) sin16s::x1#0 x1 zp ZP_WORD:32 0.6363636363636365
(word) sin16s::x2
(word) sin16s::x2#0 x2 zp ZP_WORD:17 4.0
(word) sin16s::x3
(word) sin16s::x3#0 x3 zp ZP_WORD:17 1.0
(word) sin16s::x3_6
(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:19 4.0
(word) sin16s::x4
(word) sin16s::x4#0 x4 zp ZP_WORD:17 4.0
(word) sin16s::x5
(word) sin16s::x5#0 x5 zp ZP_WORD:19 4.0
(word) sin16s::x5_128
(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:19 4.0
(void()) sin16s_gen((signed word*) sin16s_gen::sintab , (word) sin16s_gen::wavelength)
(signed word~) sin16s_gen::$1 $1 zp ZP_WORD:15 22.0
(label) sin16s_gen::@1
(label) sin16s_gen::@3
(label) sin16s_gen::@4
(label) sin16s_gen::@return
(word) sin16s_gen::i
(word) sin16s_gen::i#1 i zp ZP_WORD:5 16.5
(word) sin16s_gen::i#2 i zp ZP_WORD:5 2.75
(signed word*) sin16s_gen::sintab
(signed word*) sin16s_gen::sintab#0 sintab zp ZP_WORD:2 5.5
(signed word*) sin16s_gen::sintab#2 sintab zp ZP_WORD:2 5.5
(dword) sin16s_gen::step
(dword) sin16s_gen::step#0 step zp ZP_DWORD:28 1.1818181818181819
(word) sin16s_gen::wavelength
(dword) sin16s_gen::x
(dword) sin16s_gen::x#1 x zp ZP_DWORD:7 7.333333333333333
(dword) sin16s_gen::x#2 x zp ZP_DWORD:7 4.714285714285714
(signed byte()) sin8s((word) sin8s::x)
(word~) sin8s::$6 $6 zp ZP_WORD:19 4.0
(label) sin8s::@1
(label) sin8s::@10
(label) sin8s::@11
(label) sin8s::@12
(label) sin8s::@13
(label) sin8s::@14
(label) sin8s::@18
(label) sin8s::@2
(label) sin8s::@3
(label) sin8s::@4
(label) sin8s::@5
(label) sin8s::@6
(label) sin8s::@7
(label) sin8s::@8
(label) sin8s::@return
(byte) sin8s::DIV_6
(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) 43
(byte) sin8s::isUpper
(byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:4 0.05555555555555555
(signed byte) sin8s::return
(signed byte) sin8s::return#0 reg byte a 22.0
(signed byte) sin8s::return#1 reg byte a 5.0
(signed byte~) sin8s::return#5 reg byte a 4.0
(signed byte) sin8s::sinx
(signed byte) sin8s::sinx#1 reg byte a 4.0
(byte) sin8s::usinx
(byte) sin8s::usinx#0 usinx zp ZP_BYTE:36 0.3333333333333333
(byte) sin8s::usinx#1 reg byte x 4.0
(byte) sin8s::usinx#2 reg byte x 4.0
(byte) sin8s::usinx#4 reg byte x 2.0
(word) sin8s::x
(word) sin8s::x#0 x zp ZP_WORD:19 8.5
(word) sin8s::x#1 x zp ZP_WORD:19 4.0
(word) sin8s::x#2 x zp ZP_WORD:19 4.0
(word) sin8s::x#4 x zp ZP_WORD:19 5.0
(word) sin8s::x#6 x zp ZP_WORD:19 6.0
(byte) sin8s::x1
(byte) sin8s::x1#0 x1 zp ZP_BYTE:34 0.6363636363636365
(byte) sin8s::x2
(byte) sin8s::x2#0 reg byte a 4.0
(byte) sin8s::x3
(byte) sin8s::x3#0 x3 zp ZP_BYTE:35 1.0
(byte) sin8s::x3_6
(byte) sin8s::x3_6#0 reg byte a 4.0
(byte) sin8s::x4
(byte) sin8s::x4#0 reg byte a 4.0
(byte) sin8s::x5
(byte) sin8s::x5#0 reg byte a 4.0
(byte) sin8s::x5_128
(byte) sin8s::x5_128#0 reg byte a 4.0
(void()) sin8s_gen((signed byte*) sin8s_gen::sintab , (word) sin8s_gen::wavelength)
(signed byte~) sin8s_gen::$1 reg byte a 22.0
(label) sin8s_gen::@1
(label) sin8s_gen::@3
(label) sin8s_gen::@4
(label) sin8s_gen::@return
(word) sin8s_gen::i
(word) sin8s_gen::i#1 i zp ZP_WORD:15 16.5
(word) sin8s_gen::i#2 i zp ZP_WORD:15 2.75
(signed byte*) sin8s_gen::sintab
(signed byte*) sin8s_gen::sintab#0 sintab zp ZP_WORD:5 5.5
(signed byte*) sin8s_gen::sintab#2 sintab zp ZP_WORD:5 5.5
(word) sin8s_gen::step
(word) sin8s_gen::step#0 step zp ZP_WORD:17 1.1818181818181819
(word) sin8s_gen::wavelength
(word) sin8s_gen::x
(word) sin8s_gen::x#1 x zp ZP_WORD:2 7.333333333333333
(word) sin8s_gen::x#2 x zp ZP_WORD:2 4.714285714285714
reg byte x [ main::i#2 main::i#1 ]
zp ZP_WORD:2 [ print_str::str#3 print_str::str#5 print_str::str#0 print_cls::sc#2 print_cls::sc#1 sin16s_gen::sintab#2 sin16s_gen::sintab#0 divr16u::divisor#7 sin8s_gen::x#2 sin8s_gen::x#1 main::$3 main::$4 main::$5 ]
zp ZP_BYTE:4 [ print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#0 main::sd#0 main::sb#0 sin16s::isUpper#2 sin8s::isUpper#10 ]
reg byte a [ print_char::ch#3 print_char::ch#1 print_char::ch#2 ]
zp ZP_WORD:5 [ char_cursor#27 char_cursor#37 char_cursor#44 char_cursor#41 char_cursor#42 char_cursor#19 char_cursor#10 char_cursor#1 sin16s_gen::i#2 sin16s_gen::i#1 divr16u::rem#6 divr16u::rem#11 divr16u::rem#5 divr16u::rem#10 divr16u::rem#7 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 sin8s_gen::sintab#2 sin8s_gen::sintab#0 ]
zp ZP_DWORD:7 [ sin16s_gen::x#2 sin16s_gen::x#1 ]
zp ZP_DWORD:11 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$6 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 mulu16_sel::$0 mulu16_sel::$1 ]
zp ZP_WORD:15 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s_gen::$1 sin16s::usinx#0 divr16u::dividend#4 divr16u::dividend#6 divr16u::dividend#0 sin8s_gen::i#2 sin8s_gen::i#1 main::sw#0 ]
zp ZP_WORD:17 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mulu16_sel::return#1 mulu16_sel::return#10 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#3 divr16u::return#4 divr16u::return#2 div32u16u::quotient_lo#0 div16u::return#2 sin8s_gen::step#0 div16u::return#0 ]
zp ZP_WORD:19 [ mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 mul16u::b#0 sin8s::x#6 sin8s::x#4 sin8s::x#0 sin8s::x#1 sin8s::x#2 sin8s::$6 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#2 mulu8_sel::$0 mulu8_sel::$1 mulu16_sel::return#0 mulu16_sel::return#12 mulu16_sel::return#2 sin16s::x3_6#0 mulu16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 div32u16u::quotient_hi#0 ]
reg byte x [ mulu16_sel::select#5 ]
zp ZP_WORD:21 [ mul16u::a#2 mul16u::a#1 mul16u::a#0 mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ]
zp ZP_DWORD:23 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
reg byte x [ divr16u::i#2 divr16u::i#1 ]
reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ]
reg byte a [ sin8s::return#1 sin8s::return#5 sin8s::sinx#1 ]
reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ]
reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ]
zp ZP_BYTE:27 [ mulu8_sel::select#5 ]
reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ]
reg byte a [ main::$6 ]
reg byte a [ print_byte::$0 ]
reg byte a [ print_byte::$2 ]
zp ZP_DWORD:28 [ div32u16u::return#2 sin16s_gen::step#0 div32u16u::return#0 ]
zp ZP_WORD:32 [ sin16s::x1#0 ]
reg byte a [ mul16u::$1 ]
reg byte a [ divr16u::$1 ]
reg byte a [ divr16u::$2 ]
reg byte a [ sin8s::return#0 ]
reg byte a [ sin8s_gen::$1 ]
zp ZP_BYTE:34 [ sin8s::x1#0 ]
reg byte a [ mulu8_sel::return#0 ]
reg byte a [ sin8s::x2#0 ]
reg byte a [ mulu8_sel::return#1 ]
zp ZP_BYTE:35 [ sin8s::x3#0 ]
reg byte a [ mulu8_sel::return#2 ]
reg byte a [ sin8s::x3_6#0 ]
zp ZP_BYTE:36 [ sin8s::usinx#0 ]
reg byte a [ mulu8_sel::return#10 ]
reg byte a [ sin8s::x4#0 ]
reg byte a [ mulu8_sel::return#11 ]
reg byte a [ sin8s::x5#0 ]
reg byte a [ sin8s::x5_128#0 ]
reg byte a [ mul8u::b#0 ]
reg byte a [ mulu8_sel::return#12 ]
reg byte a [ mul8u::$1 ]