mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-10-21 17:24:39 +00:00
485 lines
24 KiB
INI
485 lines
24 KiB
INI
@begin: scope:[] from
|
|
[0] phi()
|
|
to:@1
|
|
@1: scope:[] from @begin
|
|
[1] phi()
|
|
[2] call main
|
|
to:@end
|
|
@end: scope:[] from @1
|
|
[3] phi()
|
|
|
|
(void()) main()
|
|
main: scope:[main] from @1
|
|
[4] phi()
|
|
[5] call print_cls
|
|
to:main::@1
|
|
main::@1: scope:[main] from main
|
|
[6] phi()
|
|
[7] call sin8u_table
|
|
to:main::@return
|
|
main::@return: scope:[main] from main::@1
|
|
[8] return
|
|
to:@return
|
|
|
|
(void()) sin8u_table((byte*) sin8u_table::sintab , (word) sin8u_table::tabsize , (byte) sin8u_table::min , (byte) sin8u_table::max)
|
|
sin8u_table: scope:[sin8u_table] from main::@1
|
|
[9] phi()
|
|
[10] call div16u
|
|
[11] (word) div16u::return#2 ← (word) div16u::return#0
|
|
to:sin8u_table::@3
|
|
sin8u_table::@3: scope:[sin8u_table] from sin8u_table
|
|
[12] (word) sin8u_table::step#0 ← (word) div16u::return#2
|
|
[13] call print_str
|
|
to:sin8u_table::@4
|
|
sin8u_table::@4: scope:[sin8u_table] from sin8u_table::@3
|
|
[14] (word) print_uint::w#1 ← (word) sin8u_table::step#0
|
|
[15] call print_uint
|
|
to:sin8u_table::@5
|
|
sin8u_table::@5: scope:[sin8u_table] from sin8u_table::@4
|
|
[16] phi()
|
|
[17] call print_str
|
|
to:sin8u_table::@6
|
|
sin8u_table::@6: scope:[sin8u_table] from sin8u_table::@5
|
|
[18] phi()
|
|
[19] call print_uchar
|
|
to:sin8u_table::@7
|
|
sin8u_table::@7: scope:[sin8u_table] from sin8u_table::@6
|
|
[20] phi()
|
|
[21] call print_str
|
|
to:sin8u_table::@8
|
|
sin8u_table::@8: scope:[sin8u_table] from sin8u_table::@7
|
|
[22] phi()
|
|
[23] call print_uchar
|
|
to:sin8u_table::@9
|
|
sin8u_table::@9: scope:[sin8u_table] from sin8u_table::@8
|
|
[24] phi()
|
|
[25] call print_str
|
|
to:sin8u_table::@10
|
|
sin8u_table::@10: scope:[sin8u_table] from sin8u_table::@9
|
|
[26] phi()
|
|
[27] call print_uchar
|
|
to:sin8u_table::@11
|
|
sin8u_table::@11: scope:[sin8u_table] from sin8u_table::@10
|
|
[28] phi()
|
|
[29] call print_str
|
|
to:sin8u_table::@12
|
|
sin8u_table::@12: scope:[sin8u_table] from sin8u_table::@11
|
|
[30] phi()
|
|
[31] call print_uchar
|
|
to:sin8u_table::@13
|
|
sin8u_table::@13: scope:[sin8u_table] from sin8u_table::@12
|
|
[32] phi()
|
|
[33] call print_ln
|
|
to:sin8u_table::@1
|
|
sin8u_table::@1: scope:[sin8u_table] from sin8u_table::@13 sin8u_table::@24
|
|
[34] (byte*) sin8u_table::sintab#2 ← phi( sin8u_table::@13/(const byte*) main::sintab sin8u_table::@24/(byte*) sin8u_table::sintab#1 )
|
|
[34] (word) sin8u_table::x#10 ← phi( sin8u_table::@13/(word) 0 sin8u_table::@24/(word) sin8u_table::x#1 )
|
|
[34] (word) sin8u_table::i#10 ← phi( sin8u_table::@13/(word) 0 sin8u_table::@24/(word) sin8u_table::i#1 )
|
|
[35] if((word) sin8u_table::i#10<(const word) main::tabsize) goto sin8u_table::@2
|
|
to:sin8u_table::@return
|
|
sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@1
|
|
[36] return
|
|
to:@return
|
|
sin8u_table::@2: scope:[sin8u_table] from sin8u_table::@1
|
|
[37] (word) sin8s::x#2 ← (word) sin8u_table::x#10
|
|
[38] call sin8s
|
|
[39] (signed byte) sin8s::return#2 ← (signed byte) sin8s::return#0
|
|
to:sin8u_table::@14
|
|
sin8u_table::@14: scope:[sin8u_table] from sin8u_table::@2
|
|
[40] (signed byte) sin8u_table::sinx#0 ← (signed byte) sin8s::return#2
|
|
[41] (signed byte) mul8su::a#0 ← (signed byte) sin8u_table::sinx#0
|
|
[42] call mul8su
|
|
to:sin8u_table::@15
|
|
sin8u_table::@15: scope:[sin8u_table] from sin8u_table::@14
|
|
[43] (signed word) sin8u_table::sinx_sc#0 ← (signed word)(word) mul8su::m#2
|
|
[44] (byte~) sin8u_table::$20 ← > (signed word) sin8u_table::sinx_sc#0
|
|
[45] (byte) sin8u_table::sinx_tr#0 ← (const byte) sin8u_table::mid#0 + (byte~) sin8u_table::$20
|
|
[46] *((byte*) sin8u_table::sintab#2) ← (byte) sin8u_table::sinx_tr#0
|
|
[47] (byte*) sin8u_table::sintab#1 ← ++ (byte*) sin8u_table::sintab#2
|
|
[48] (byte*) print_char_cursor#117 ← (byte*) print_line_cursor#1
|
|
[49] call print_str
|
|
to:sin8u_table::@16
|
|
sin8u_table::@16: scope:[sin8u_table] from sin8u_table::@15
|
|
[50] (word) print_uint::w#2 ← (word) sin8u_table::x#10
|
|
[51] call print_uint
|
|
to:sin8u_table::@17
|
|
sin8u_table::@17: scope:[sin8u_table] from sin8u_table::@16
|
|
[52] phi()
|
|
[53] call print_str
|
|
to:sin8u_table::@18
|
|
sin8u_table::@18: scope:[sin8u_table] from sin8u_table::@17
|
|
[54] (signed byte) print_schar::b#1 ← (signed byte) sin8u_table::sinx#0
|
|
[55] call print_schar
|
|
to:sin8u_table::@19
|
|
sin8u_table::@19: scope:[sin8u_table] from sin8u_table::@18
|
|
[56] phi()
|
|
[57] call print_str
|
|
to:sin8u_table::@20
|
|
sin8u_table::@20: scope:[sin8u_table] from sin8u_table::@19
|
|
[58] (signed word) print_sint::w#1 ← (signed word) sin8u_table::sinx_sc#0
|
|
[59] call print_sint
|
|
to:sin8u_table::@21
|
|
sin8u_table::@21: scope:[sin8u_table] from sin8u_table::@20
|
|
[60] phi()
|
|
[61] call print_str
|
|
to:sin8u_table::@22
|
|
sin8u_table::@22: scope:[sin8u_table] from sin8u_table::@21
|
|
[62] (byte) print_uchar::b#7 ← (byte) sin8u_table::sinx_tr#0
|
|
[63] call print_uchar
|
|
to:sin8u_table::@23
|
|
sin8u_table::@23: scope:[sin8u_table] from sin8u_table::@22
|
|
[64] phi()
|
|
[65] call print_ln
|
|
to:sin8u_table::@24
|
|
sin8u_table::@24: scope:[sin8u_table] from sin8u_table::@23
|
|
[66] (word) sin8u_table::x#1 ← (word) sin8u_table::x#10 + (word) sin8u_table::step#0
|
|
[67] (word) sin8u_table::i#1 ← ++ (word) sin8u_table::i#10
|
|
to:sin8u_table::@1
|
|
|
|
(void()) print_ln()
|
|
print_ln: scope:[print_ln] from sin8u_table::@13 sin8u_table::@23
|
|
[68] (byte*) print_line_cursor#23 ← phi( sin8u_table::@13/(byte*) 1024 sin8u_table::@23/(byte*) print_line_cursor#1 )
|
|
to:print_ln::@1
|
|
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
|
[69] (byte*) print_line_cursor#12 ← phi( print_ln/(byte*) print_line_cursor#23 print_ln::@1/(byte*) print_line_cursor#1 )
|
|
[70] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#12 + (byte) $28
|
|
[71] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#19) goto print_ln::@1
|
|
to:print_ln::@return
|
|
print_ln::@return: scope:[print_ln] from print_ln::@1
|
|
[72] return
|
|
to:@return
|
|
|
|
(void()) print_uchar((byte) print_uchar::b)
|
|
print_uchar: scope:[print_uchar] from print_schar::@2 print_uint print_uint::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@22 sin8u_table::@6 sin8u_table::@8
|
|
[73] (byte*) print_char_cursor#104 ← phi( print_schar::@2/(byte*) print_char_cursor#19 print_uint/(byte*) print_char_cursor#103 print_uint::@1/(byte*) print_char_cursor#19 sin8u_table::@10/(byte*) print_char_cursor#2 sin8u_table::@12/(byte*) print_char_cursor#2 sin8u_table::@22/(byte*) print_char_cursor#2 sin8u_table::@6/(byte*) print_char_cursor#2 sin8u_table::@8/(byte*) print_char_cursor#2 )
|
|
[73] (byte) print_uchar::b#8 ← phi( print_schar::@2/(byte) print_uchar::b#0 print_uint/(byte) print_uchar::b#1 print_uint::@1/(byte) print_uchar::b#2 sin8u_table::@10/(const byte) sin8u_table::amplitude#0 sin8u_table::@12/(const byte) sin8u_table::mid#0 sin8u_table::@22/(byte) print_uchar::b#7 sin8u_table::@6/(const byte) sin8u_table::min#0 sin8u_table::@8/(const byte) sin8u_table::max#0 )
|
|
[74] (byte~) print_uchar::$0 ← (byte) print_uchar::b#8 >> (byte) 4
|
|
[75] (byte) print_char::ch#5 ← *((const to_nomodify byte*) print_hextab + (byte~) print_uchar::$0)
|
|
[76] call print_char
|
|
to:print_uchar::@1
|
|
print_uchar::@1: scope:[print_uchar] from print_uchar
|
|
[77] (byte~) print_uchar::$2 ← (byte) print_uchar::b#8 & (byte) $f
|
|
[78] (byte) print_char::ch#6 ← *((const to_nomodify byte*) print_hextab + (byte~) print_uchar::$2)
|
|
[79] call print_char
|
|
to:print_uchar::@return
|
|
print_uchar::@return: scope:[print_uchar] from print_uchar::@1
|
|
[80] return
|
|
to:@return
|
|
|
|
(void()) print_char((byte) print_char::ch)
|
|
print_char: scope:[print_char] from print_schar::@1 print_schar::@3 print_sint::@1 print_sint::@3 print_str::@2 print_uchar print_uchar::@1
|
|
[81] (byte*) print_char_cursor#66 ← phi( print_schar::@1/(byte*) print_char_cursor#2 print_schar::@3/(byte*) print_char_cursor#2 print_sint::@1/(byte*) print_char_cursor#2 print_sint::@3/(byte*) print_char_cursor#2 print_str::@2/(byte*) print_char_cursor#2 print_uchar/(byte*) print_char_cursor#104 print_uchar::@1/(byte*) print_char_cursor#19 )
|
|
[81] (byte) print_char::ch#7 ← phi( print_schar::@1/(byte) '-' print_schar::@3/(byte) ' ' print_sint::@1/(byte) '-' print_sint::@3/(byte) ' ' print_str::@2/(byte) print_char::ch#0 print_uchar/(byte) print_char::ch#5 print_uchar::@1/(byte) print_char::ch#6 )
|
|
[82] *((byte*) print_char_cursor#66) ← (byte) print_char::ch#7
|
|
[83] (byte*) print_char_cursor#19 ← ++ (byte*) print_char_cursor#66
|
|
to:print_char::@return
|
|
print_char::@return: scope:[print_char] from print_char
|
|
[84] return
|
|
to:@return
|
|
|
|
(void()) print_str((byte*) print_str::str)
|
|
print_str: scope:[print_str] from sin8u_table::@11 sin8u_table::@15 sin8u_table::@17 sin8u_table::@19 sin8u_table::@21 sin8u_table::@3 sin8u_table::@5 sin8u_table::@7 sin8u_table::@9
|
|
[85] (byte*) print_char_cursor#110 ← phi( sin8u_table::@11/(byte*) print_char_cursor#19 sin8u_table::@15/(byte*) print_char_cursor#117 sin8u_table::@17/(byte*) print_char_cursor#19 sin8u_table::@19/(byte*) print_char_cursor#19 sin8u_table::@21/(byte*) print_char_cursor#19 sin8u_table::@3/(byte*) 1024 sin8u_table::@5/(byte*) print_char_cursor#19 sin8u_table::@7/(byte*) print_char_cursor#19 sin8u_table::@9/(byte*) print_char_cursor#19 )
|
|
[85] (byte*) print_str::str#13 ← phi( sin8u_table::@11/(const byte*) sin8u_table::str4 sin8u_table::@15/(const byte*) sin8u_table::str5 sin8u_table::@17/(const byte*) sin8u_table::str6 sin8u_table::@19/(const byte*) sin8u_table::str7 sin8u_table::@21/(const byte*) sin8u_table::str8 sin8u_table::@3/(const byte*) sin8u_table::str sin8u_table::@5/(const byte*) sin8u_table::str1 sin8u_table::@7/(const byte*) sin8u_table::str2 sin8u_table::@9/(const byte*) sin8u_table::str3 )
|
|
to:print_str::@1
|
|
print_str::@1: scope:[print_str] from print_str print_str::@3
|
|
[86] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#110 print_str::@3/(byte*) print_char_cursor#19 )
|
|
[86] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#13 print_str::@3/(byte*) print_str::str#0 )
|
|
[87] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
|
|
to:print_str::@return
|
|
print_str::@return: scope:[print_str] from print_str::@1
|
|
[88] return
|
|
to:@return
|
|
print_str::@2: scope:[print_str] from print_str::@1
|
|
[89] (byte) print_char::ch#0 ← *((byte*) print_str::str#10)
|
|
[90] call print_char
|
|
to:print_str::@3
|
|
print_str::@3: scope:[print_str] from print_str::@2
|
|
[91] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#10
|
|
to:print_str::@1
|
|
|
|
(void()) print_sint((signed word) print_sint::w)
|
|
print_sint: scope:[print_sint] from sin8u_table::@20
|
|
[92] if((signed word) print_sint::w#1<(signed byte) 0) goto print_sint::@1
|
|
to:print_sint::@3
|
|
print_sint::@3: scope:[print_sint] from print_sint
|
|
[93] phi()
|
|
[94] call print_char
|
|
to:print_sint::@2
|
|
print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4
|
|
[95] (signed word) print_sint::w#4 ← phi( print_sint::@4/(signed word) print_sint::w#0 print_sint::@3/(signed word) print_sint::w#1 )
|
|
[96] (word) print_uint::w#0 ← (word)(signed word) print_sint::w#4
|
|
[97] call print_uint
|
|
to:print_sint::@return
|
|
print_sint::@return: scope:[print_sint] from print_sint::@2
|
|
[98] return
|
|
to:@return
|
|
print_sint::@1: scope:[print_sint] from print_sint
|
|
[99] phi()
|
|
[100] call print_char
|
|
to:print_sint::@4
|
|
print_sint::@4: scope:[print_sint] from print_sint::@1
|
|
[101] (signed word) print_sint::w#0 ← - (signed word) print_sint::w#1
|
|
to:print_sint::@2
|
|
|
|
(void()) print_uint((word) print_uint::w)
|
|
print_uint: scope:[print_uint] from print_sint::@2 sin8u_table::@16 sin8u_table::@4
|
|
[102] (byte*) print_char_cursor#103 ← phi( print_sint::@2/(byte*) print_char_cursor#19 sin8u_table::@16/(byte*) print_char_cursor#2 sin8u_table::@4/(byte*) print_char_cursor#2 )
|
|
[102] (word) print_uint::w#3 ← phi( print_sint::@2/(word) print_uint::w#0 sin8u_table::@16/(word) print_uint::w#2 sin8u_table::@4/(word) print_uint::w#1 )
|
|
[103] (byte) print_uchar::b#1 ← > (word) print_uint::w#3
|
|
[104] call print_uchar
|
|
to:print_uint::@1
|
|
print_uint::@1: scope:[print_uint] from print_uint
|
|
[105] (byte) print_uchar::b#2 ← < (word) print_uint::w#3
|
|
[106] call print_uchar
|
|
to:print_uint::@return
|
|
print_uint::@return: scope:[print_uint] from print_uint::@1
|
|
[107] return
|
|
to:@return
|
|
|
|
(void()) print_schar((signed byte) print_schar::b)
|
|
print_schar: scope:[print_schar] from sin8u_table::@18
|
|
[108] if((signed byte) print_schar::b#1<(signed byte) 0) goto print_schar::@1
|
|
to:print_schar::@3
|
|
print_schar::@3: scope:[print_schar] from print_schar
|
|
[109] phi()
|
|
[110] call print_char
|
|
to:print_schar::@2
|
|
print_schar::@2: scope:[print_schar] from print_schar::@3 print_schar::@4
|
|
[111] (signed byte) print_schar::b#4 ← phi( print_schar::@4/(signed byte) print_schar::b#0 print_schar::@3/(signed byte) print_schar::b#1 )
|
|
[112] (byte) print_uchar::b#0 ← (byte)(signed byte) print_schar::b#4
|
|
[113] call print_uchar
|
|
to:print_schar::@return
|
|
print_schar::@return: scope:[print_schar] from print_schar::@2
|
|
[114] return
|
|
to:@return
|
|
print_schar::@1: scope:[print_schar] from print_schar
|
|
[115] phi()
|
|
[116] call print_char
|
|
to:print_schar::@4
|
|
print_schar::@4: scope:[print_schar] from print_schar::@1
|
|
[117] (signed byte) print_schar::b#0 ← - (signed byte) print_schar::b#1
|
|
to:print_schar::@2
|
|
|
|
(signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
|
|
mul8su: scope:[mul8su] from sin8u_table::@14
|
|
[118] (byte) mul8u::a#1 ← (byte)(signed byte) mul8su::a#0
|
|
[119] call mul8u
|
|
[120] (word) mul8u::return#2 ← (word) mul8u::res#2
|
|
to:mul8su::@3
|
|
mul8su::@3: scope:[mul8su] from mul8su
|
|
[121] (word) mul8su::m#0 ← (word) mul8u::return#2
|
|
[122] if((signed byte) mul8su::a#0>=(signed byte) 0) goto mul8su::@1
|
|
to:mul8su::@2
|
|
mul8su::@2: scope:[mul8su] from mul8su::@3
|
|
[123] (byte~) mul8su::$4 ← > (word) mul8su::m#0
|
|
[124] (byte~) mul8su::$6 ← (byte~) mul8su::$4 - (const byte) mul8su::b#0
|
|
[125] (word) mul8su::m#1 ← (word) mul8su::m#0 hi= (byte~) mul8su::$6
|
|
to:mul8su::@1
|
|
mul8su::@1: scope:[mul8su] from mul8su::@2 mul8su::@3
|
|
[126] (word) mul8su::m#2 ← phi( mul8su::@2/(word) mul8su::m#1 mul8su::@3/(word) mul8su::m#0 )
|
|
to:mul8su::@return
|
|
mul8su::@return: scope:[mul8su] from mul8su::@1
|
|
[127] return
|
|
to:@return
|
|
|
|
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
|
|
mul8u: scope:[mul8u] from mul8su mulu8_sel
|
|
[128] (byte) mul8u::a#6 ← phi( mul8su/(byte) mul8u::a#1 mulu8_sel/(byte) mul8u::a#2 )
|
|
[128] (byte) mul8u::b#2 ← phi( mul8su/(const byte) mul8su::b#0 mulu8_sel/(byte) mul8u::b#1 )
|
|
[129] (word) mul8u::mb#0 ← (word)(byte) mul8u::b#2
|
|
to:mul8u::@1
|
|
mul8u::@1: scope:[mul8u] from mul8u mul8u::@3
|
|
[130] (word) mul8u::mb#2 ← phi( mul8u/(word) mul8u::mb#0 mul8u::@3/(word) mul8u::mb#1 )
|
|
[130] (word) mul8u::res#2 ← phi( mul8u/(word) 0 mul8u::@3/(word) mul8u::res#6 )
|
|
[130] (byte) mul8u::a#3 ← phi( mul8u/(byte) mul8u::a#6 mul8u::@3/(byte) mul8u::a#0 )
|
|
[131] if((byte) mul8u::a#3!=(byte) 0) goto mul8u::@2
|
|
to:mul8u::@return
|
|
mul8u::@return: scope:[mul8u] from mul8u::@1
|
|
[132] return
|
|
to:@return
|
|
mul8u::@2: scope:[mul8u] from mul8u::@1
|
|
[133] (byte~) mul8u::$1 ← (byte) mul8u::a#3 & (byte) 1
|
|
[134] if((byte~) mul8u::$1==(byte) 0) goto mul8u::@3
|
|
to:mul8u::@4
|
|
mul8u::@4: scope:[mul8u] from mul8u::@2
|
|
[135] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2
|
|
to:mul8u::@3
|
|
mul8u::@3: scope:[mul8u] from mul8u::@2 mul8u::@4
|
|
[136] (word) mul8u::res#6 ← phi( mul8u::@2/(word) mul8u::res#2 mul8u::@4/(word) mul8u::res#1 )
|
|
[137] (byte) mul8u::a#0 ← (byte) mul8u::a#3 >> (byte) 1
|
|
[138] (word) mul8u::mb#1 ← (word) mul8u::mb#2 << (byte) 1
|
|
to:mul8u::@1
|
|
|
|
(signed byte()) sin8s((word) sin8s::x)
|
|
sin8s: scope:[sin8s] from sin8u_table::@2
|
|
[139] if((word) sin8s::x#2<(const nomodify word) PI_u4f12) goto sin8s::@1
|
|
to:sin8s::@5
|
|
sin8s::@5: scope:[sin8s] from sin8s
|
|
[140] (word) sin8s::x#0 ← (word) sin8s::x#2 - (const nomodify word) PI_u4f12
|
|
to:sin8s::@1
|
|
sin8s::@1: scope:[sin8s] from sin8s sin8s::@5
|
|
[141] (byte) sin8s::isUpper#10 ← phi( sin8s/(byte) 0 sin8s::@5/(byte) 1 )
|
|
[141] (word) sin8s::x#4 ← phi( sin8s/(word) sin8s::x#2 sin8s::@5/(word) sin8s::x#0 )
|
|
[142] if((word) sin8s::x#4<(const nomodify word) PI_HALF_u4f12) goto sin8s::@2
|
|
to:sin8s::@6
|
|
sin8s::@6: scope:[sin8s] from sin8s::@1
|
|
[143] (word) sin8s::x#1 ← (const nomodify word) PI_u4f12 - (word) sin8s::x#4
|
|
to:sin8s::@2
|
|
sin8s::@2: scope:[sin8s] from sin8s::@1 sin8s::@6
|
|
[144] (word) sin8s::x#6 ← phi( sin8s::@1/(word) sin8s::x#4 sin8s::@6/(word) sin8s::x#1 )
|
|
[145] (word~) sin8s::$4 ← (word) sin8s::x#6 << (byte) 3
|
|
[146] (byte) sin8s::x1#0 ← > (word~) sin8s::$4
|
|
[147] (byte) mulu8_sel::v1#0 ← (byte) sin8s::x1#0
|
|
[148] (byte) mulu8_sel::v2#0 ← (byte) sin8s::x1#0
|
|
[149] call mulu8_sel
|
|
[150] (byte) mulu8_sel::return#0 ← (byte) mulu8_sel::return#12
|
|
to:sin8s::@9
|
|
sin8s::@9: scope:[sin8s] from sin8s::@2
|
|
[151] (byte) sin8s::x2#0 ← (byte) mulu8_sel::return#0
|
|
[152] (byte) mulu8_sel::v1#1 ← (byte) sin8s::x2#0
|
|
[153] (byte) mulu8_sel::v2#1 ← (byte) sin8s::x1#0
|
|
[154] call mulu8_sel
|
|
[155] (byte) mulu8_sel::return#1 ← (byte) mulu8_sel::return#12
|
|
to:sin8s::@10
|
|
sin8s::@10: scope:[sin8s] from sin8s::@9
|
|
[156] (byte) sin8s::x3#0 ← (byte) mulu8_sel::return#1
|
|
[157] (byte) mulu8_sel::v1#2 ← (byte) sin8s::x3#0
|
|
[158] call mulu8_sel
|
|
[159] (byte) mulu8_sel::return#2 ← (byte) mulu8_sel::return#12
|
|
to:sin8s::@11
|
|
sin8s::@11: scope:[sin8s] from sin8s::@10
|
|
[160] (byte) sin8s::x3_6#0 ← (byte) mulu8_sel::return#2
|
|
[161] (byte) sin8s::usinx#0 ← (byte) sin8s::x1#0 - (byte) sin8s::x3_6#0
|
|
[162] (byte) mulu8_sel::v1#3 ← (byte) sin8s::x3#0
|
|
[163] (byte) mulu8_sel::v2#3 ← (byte) sin8s::x1#0
|
|
[164] call mulu8_sel
|
|
[165] (byte) mulu8_sel::return#10 ← (byte) mulu8_sel::return#12
|
|
to:sin8s::@12
|
|
sin8s::@12: scope:[sin8s] from sin8s::@11
|
|
[166] (byte) sin8s::x4#0 ← (byte) mulu8_sel::return#10
|
|
[167] (byte) mulu8_sel::v1#4 ← (byte) sin8s::x4#0
|
|
[168] (byte) mulu8_sel::v2#4 ← (byte) sin8s::x1#0
|
|
[169] call mulu8_sel
|
|
[170] (byte) mulu8_sel::return#11 ← (byte) mulu8_sel::return#12
|
|
to:sin8s::@13
|
|
sin8s::@13: scope:[sin8s] from sin8s::@12
|
|
[171] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11
|
|
[172] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte) 4
|
|
[173] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0
|
|
[174] if((byte) sin8s::usinx#1<(byte) $80) goto sin8s::@3
|
|
to:sin8s::@7
|
|
sin8s::@7: scope:[sin8s] from sin8s::@13
|
|
[175] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1
|
|
to:sin8s::@3
|
|
sin8s::@3: scope:[sin8s] from sin8s::@13 sin8s::@7
|
|
[176] (byte) sin8s::usinx#4 ← phi( sin8s::@13/(byte) sin8s::usinx#1 sin8s::@7/(byte) sin8s::usinx#2 )
|
|
[177] if((byte) sin8s::isUpper#10==(byte) 0) goto sin8s::@14
|
|
to:sin8s::@8
|
|
sin8s::@8: scope:[sin8s] from sin8s::@3
|
|
[178] (signed byte) sin8s::sinx#1 ← - (signed byte)(byte) sin8s::usinx#4
|
|
to:sin8s::@4
|
|
sin8s::@4: scope:[sin8s] from sin8s::@14 sin8s::@8
|
|
[179] (signed byte) sin8s::return#0 ← phi( sin8s::@14/(signed byte) sin8s::return#5 sin8s::@8/(signed byte) sin8s::sinx#1 )
|
|
to:sin8s::@return
|
|
sin8s::@return: scope:[sin8s] from sin8s::@4
|
|
[180] return
|
|
to:@return
|
|
sin8s::@14: scope:[sin8s] from sin8s::@3
|
|
[181] (signed byte) sin8s::return#5 ← (signed byte)(byte) sin8s::usinx#4
|
|
to:sin8s::@4
|
|
|
|
(byte()) mulu8_sel((byte) mulu8_sel::v1 , (byte) mulu8_sel::v2 , (byte) mulu8_sel::select)
|
|
mulu8_sel: scope:[mulu8_sel] from sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@2 sin8s::@9
|
|
[182] (byte) mulu8_sel::select#5 ← phi( sin8s::@10/(byte) 1 sin8s::@11/(byte) 0 sin8s::@12/(byte) 0 sin8s::@2/(byte) 0 sin8s::@9/(byte) 1 )
|
|
[182] (byte) mulu8_sel::v2#5 ← phi( sin8s::@10/(const nomodify byte) sin8s::DIV_6 sin8s::@11/(byte) mulu8_sel::v2#3 sin8s::@12/(byte) mulu8_sel::v2#4 sin8s::@2/(byte) mulu8_sel::v2#0 sin8s::@9/(byte) mulu8_sel::v2#1 )
|
|
[182] (byte) mulu8_sel::v1#5 ← phi( sin8s::@10/(byte) mulu8_sel::v1#2 sin8s::@11/(byte) mulu8_sel::v1#3 sin8s::@12/(byte) mulu8_sel::v1#4 sin8s::@2/(byte) mulu8_sel::v1#0 sin8s::@9/(byte) mulu8_sel::v1#1 )
|
|
[183] (byte) mul8u::a#2 ← (byte) mulu8_sel::v1#5
|
|
[184] (byte) mul8u::b#1 ← (byte) mulu8_sel::v2#5
|
|
[185] call mul8u
|
|
[186] (word) mul8u::return#3 ← (word) mul8u::res#2
|
|
to:mulu8_sel::@1
|
|
mulu8_sel::@1: scope:[mulu8_sel] from mulu8_sel
|
|
[187] (word~) mulu8_sel::$0 ← (word) mul8u::return#3
|
|
[188] (word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select#5
|
|
[189] (byte) mulu8_sel::return#12 ← > (word~) mulu8_sel::$1
|
|
to:mulu8_sel::@return
|
|
mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@1
|
|
[190] return
|
|
to:@return
|
|
|
|
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
|
div16u: scope:[div16u] from sin8u_table
|
|
[191] phi()
|
|
[192] call divr16u
|
|
[193] (word) divr16u::return#2 ← (word) divr16u::return#0
|
|
to:div16u::@1
|
|
div16u::@1: scope:[div16u] from div16u
|
|
[194] (word) div16u::return#0 ← (word) divr16u::return#2
|
|
to:div16u::@return
|
|
div16u::@return: scope:[div16u] from div16u::@1
|
|
[195] return
|
|
to:@return
|
|
|
|
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
|
divr16u: scope:[divr16u] from div16u
|
|
[196] phi()
|
|
to:divr16u::@1
|
|
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
|
|
[197] (byte) divr16u::i#2 ← phi( divr16u/(byte) 0 divr16u::@3/(byte) divr16u::i#1 )
|
|
[197] (word) divr16u::quotient#3 ← phi( divr16u/(word) 0 divr16u::@3/(word) divr16u::return#0 )
|
|
[197] (word) divr16u::dividend#2 ← phi( divr16u/(const nomodify word) PI2_u4f12 divr16u::@3/(word) divr16u::dividend#0 )
|
|
[197] (word) divr16u::rem#4 ← phi( divr16u/(byte) 0 divr16u::@3/(word) divr16u::rem#9 )
|
|
[198] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte) 1
|
|
[199] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2
|
|
[200] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte) $80
|
|
[201] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
|
|
to:divr16u::@4
|
|
divr16u::@4: scope:[divr16u] from divr16u::@1
|
|
[202] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte) 1
|
|
to:divr16u::@2
|
|
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
|
|
[203] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 )
|
|
[204] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte) 1
|
|
[205] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte) 1
|
|
[206] if((word) divr16u::rem#5<(const word) main::tabsize) goto divr16u::@3
|
|
to:divr16u::@5
|
|
divr16u::@5: scope:[divr16u] from divr16u::@2
|
|
[207] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1
|
|
[208] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) main::tabsize
|
|
to:divr16u::@3
|
|
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
|
|
[209] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 )
|
|
[209] (word) divr16u::rem#9 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 )
|
|
[210] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2
|
|
[211] if((byte) divr16u::i#1!=(byte) $10) goto divr16u::@1
|
|
to:divr16u::@return
|
|
divr16u::@return: scope:[divr16u] from divr16u::@3
|
|
[212] return
|
|
to:@return
|
|
|
|
(void()) print_cls()
|
|
print_cls: scope:[print_cls] from main
|
|
[213] phi()
|
|
[214] call memset
|
|
to:print_cls::@return
|
|
print_cls::@return: scope:[print_cls] from print_cls
|
|
[215] return
|
|
to:@return
|
|
|
|
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
|
memset: scope:[memset] from print_cls
|
|
[216] phi()
|
|
to:memset::@1
|
|
memset::@1: scope:[memset] from memset memset::@2
|
|
[217] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
|
|
[218] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
|
|
to:memset::@return
|
|
memset::@return: scope:[memset] from memset::@1
|
|
[219] return
|
|
to:@return
|
|
memset::@2: scope:[memset] from memset::@1
|
|
[220] *((byte*) memset::dst#2) ← (const byte) memset::c#0
|
|
[221] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
|
to:memset::@1
|