1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-16 21:07:56 +00:00
kickc/src/test/ref/fastmultiply-127.cfg

395 lines
19 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 print_str
to:main::@2
main::@2: scope:[main] from main::@1
[8] phi()
[9] call print_ln
to:main::@3
main::@3: scope:[main] from main::@2
[10] phi()
[11] call print_mulf8u127
to:main::@4
main::@4: scope:[main] from main::@3
[12] phi()
[13] call print_mulf8u127
to:main::@5
main::@5: scope:[main] from main::@4
[14] phi()
[15] call print_mulf8u127
to:main::@6
main::@6: scope:[main] from main::@5
[16] phi()
[17] call print_mulf8u127
to:main::@7
main::@7: scope:[main] from main::@6
[18] phi()
[19] call print_mulf8u127
to:main::@8
main::@8: scope:[main] from main::@7
[20] phi()
[21] call print_mulf8u127
to:main::@9
main::@9: scope:[main] from main::@8
[22] phi()
[23] call print_mulf8u127
to:main::@10
main::@10: scope:[main] from main::@9
[24] phi()
[25] call print_mulf8u127
to:main::@11
main::@11: scope:[main] from main::@10
[26] (byte*) print_char_cursor#142 ← (byte*) print_line_cursor#1
[27] call print_str
to:main::@12
main::@12: scope:[main] from main::@11
[28] phi()
[29] call print_ln
to:main::@13
main::@13: scope:[main] from main::@12
[30] phi()
[31] call print_mulf8s127
to:main::@14
main::@14: scope:[main] from main::@13
[32] phi()
[33] call print_mulf8s127
to:main::@15
main::@15: scope:[main] from main::@14
[34] phi()
[35] call print_mulf8s127
to:main::@16
main::@16: scope:[main] from main::@15
[36] phi()
[37] call print_mulf8s127
to:main::@17
main::@17: scope:[main] from main::@16
[38] phi()
[39] call print_mulf8s127
to:main::@18
main::@18: scope:[main] from main::@17
[40] phi()
[41] call print_mulf8s127
to:main::@19
main::@19: scope:[main] from main::@18
[42] phi()
[43] call print_mulf8s127
to:main::@20
main::@20: scope:[main] from main::@19
[44] phi()
[45] call print_mulf8s127
to:main::@21
main::@21: scope:[main] from main::@20
[46] phi()
[47] call print_mulf8s127
to:main::@22
main::@22: scope:[main] from main::@21
[48] phi()
[49] call print_mulf8s127
to:main::@return
main::@return: scope:[main] from main::@22
[50] return
to:@return
(void()) print_mulf8s127((signed byte) print_mulf8s127::a , (signed byte) print_mulf8s127::b)
print_mulf8s127: scope:[print_mulf8s127] from main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@22
[51] (signed byte) print_mulf8s127::b#10 ← phi( main::@13/(signed byte) 0 main::@14/(signed byte) $40 main::@15/(signed byte) $7f main::@16/(signed byte) $40 main::@17/(signed byte) -$40 main::@18/(signed byte) -$40 main::@19/(signed byte) $7f main::@20/(signed byte) $7f main::@21/(signed byte) -$7f main::@22/(signed byte) -$7f )
[51] (signed byte) print_mulf8s127::a#10 ← phi( main::@13/(signed byte) 0 main::@14/(signed byte) $40 main::@15/(signed byte) $40 main::@16/(signed byte) -$40 main::@17/(signed byte) $40 main::@18/(signed byte) -$40 main::@19/(signed byte) $7f main::@20/(signed byte) -$7f main::@21/(signed byte) $7f main::@22/(signed byte) -$7f )
[52] (signed byte) mulf8s127::a#0 ← (signed byte) print_mulf8s127::a#10
[53] (signed byte) mulf8s127::b#0 ← (signed byte) print_mulf8s127::b#10
[54] call mulf8s127
[55] (signed word) mulf8s127::return#0 ← (signed word) mulf8s127::return#1
to:print_mulf8s127::@1
print_mulf8s127::@1: scope:[print_mulf8s127] from print_mulf8s127
[56] (signed word) print_mulf8s127::c#0 ← (signed word) mulf8s127::return#0
[57] (signed byte) print_schar::b#1 ← (signed byte) print_mulf8s127::a#10
[58] (byte*) print_char_cursor#149 ← (byte*) print_line_cursor#1
[59] call print_schar
to:print_mulf8s127::@2
print_mulf8s127::@2: scope:[print_mulf8s127] from print_mulf8s127::@1
[60] phi()
[61] call print_char
to:print_mulf8s127::@3
print_mulf8s127::@3: scope:[print_mulf8s127] from print_mulf8s127::@2
[62] (signed byte) print_schar::b#2 ← (signed byte) print_mulf8s127::b#10
[63] call print_schar
to:print_mulf8s127::@4
print_mulf8s127::@4: scope:[print_mulf8s127] from print_mulf8s127::@3
[64] phi()
[65] call print_char
to:print_mulf8s127::@5
print_mulf8s127::@5: scope:[print_mulf8s127] from print_mulf8s127::@4
[66] (signed word) print_sint::w#1 ← (signed word) print_mulf8s127::c#0
[67] call print_sint
to:print_mulf8s127::@6
print_mulf8s127::@6: scope:[print_mulf8s127] from print_mulf8s127::@5
[68] phi()
[69] call print_ln
to:print_mulf8s127::@return
print_mulf8s127::@return: scope:[print_mulf8s127] from print_mulf8s127::@6
[70] return
to:@return
(void()) print_ln()
print_ln: scope:[print_ln] from main::@12 main::@2 print_mulf8s127::@6 print_mulf8u127::@6
[71] (byte*) print_char_cursor#124 ← phi( main::@12/(byte*) print_char_cursor#122 main::@2/(byte*) print_char_cursor#122 print_mulf8s127::@6/(byte*) print_char_cursor#19 print_mulf8u127::@6/(byte*) print_char_cursor#19 )
[71] (byte*) print_line_cursor#63 ← phi( main::@12/(byte*) print_line_cursor#1 main::@2/(byte*) 1024 print_mulf8s127::@6/(byte*) print_line_cursor#1 print_mulf8u127::@6/(byte*) print_line_cursor#1 )
to:print_ln::@1
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
[72] (byte*) print_line_cursor#32 ← phi( print_ln/(byte*) print_line_cursor#63 print_ln::@1/(byte*) print_line_cursor#1 )
[73] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#32 + (byte) $28
[74] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#124) goto print_ln::@1
to:print_ln::@return
print_ln::@return: scope:[print_ln] from print_ln::@1
[75] return
to:@return
(void()) print_sint((signed word) print_sint::w)
print_sint: scope:[print_sint] from print_mulf8s127::@5
[76] 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
[77] phi()
[78] call print_char
to:print_sint::@2
print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4
[79] (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 )
[80] (word) print_uint::w#0 ← (word)(signed word) print_sint::w#4
[81] call print_uint
to:print_sint::@return
print_sint::@return: scope:[print_sint] from print_sint::@2
[82] return
to:@return
print_sint::@1: scope:[print_sint] from print_sint
[83] phi()
[84] call print_char
to:print_sint::@4
print_sint::@4: scope:[print_sint] from print_sint::@1
[85] (signed word) print_sint::w#0 ← - (signed word) print_sint::w#1
to:print_sint::@2
(void()) print_char((byte) print_char::ch)
print_char: scope:[print_char] from print_mulf8s127::@2 print_mulf8s127::@4 print_mulf8u127::@2 print_mulf8u127::@4 print_schar::@1 print_schar::@3 print_sint::@1 print_sint::@3 print_str::@2 print_uchar print_uchar::@1
[86] (byte*) print_char_cursor#80 ← phi( print_mulf8s127::@2/(byte*) print_char_cursor#19 print_mulf8s127::@4/(byte*) print_char_cursor#19 print_mulf8u127::@2/(byte*) print_char_cursor#19 print_mulf8u127::@4/(byte*) print_char_cursor#19 print_schar::@1/(byte*) print_char_cursor#128 print_schar::@3/(byte*) print_char_cursor#128 print_sint::@1/(byte*) print_char_cursor#19 print_sint::@3/(byte*) print_char_cursor#19 print_str::@2/(byte*) print_char_cursor#122 print_uchar/(byte*) print_char_cursor#132 print_uchar::@1/(byte*) print_char_cursor#19 )
[86] (byte) print_char::ch#11 ← phi( print_mulf8s127::@2/(byte) '*' print_mulf8s127::@4/(byte) '=' print_mulf8u127::@2/(byte) '*' print_mulf8u127::@4/(byte) '=' 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 )
[87] *((byte*) print_char_cursor#80) ← (byte) print_char::ch#11
[88] (byte*) print_char_cursor#19 ← ++ (byte*) print_char_cursor#80
to:print_char::@return
print_char::@return: scope:[print_char] from print_char
[89] return
to:@return
(void()) print_uint((word) print_uint::w)
print_uint: scope:[print_uint] from print_mulf8u127::@5 print_sint::@2
[90] (word) print_uint::w#2 ← phi( print_mulf8u127::@5/(word) print_uint::w#1 print_sint::@2/(word) print_uint::w#0 )
[91] (byte) print_uchar::b#1 ← > (word) print_uint::w#2
[92] call print_uchar
to:print_uint::@1
print_uint::@1: scope:[print_uint] from print_uint
[93] (byte) print_uchar::b#2 ← < (word) print_uint::w#2
[94] call print_uchar
to:print_uint::@return
print_uint::@return: scope:[print_uint] from print_uint::@1
[95] return
to:@return
(void()) print_uchar((byte) print_uchar::b)
print_uchar: scope:[print_uchar] from print_mulf8u127::@1 print_mulf8u127::@3 print_schar::@2 print_uint print_uint::@1
[96] (byte*) print_char_cursor#132 ← phi( print_mulf8u127::@1/(byte*) print_char_cursor#151 print_mulf8u127::@3/(byte*) print_char_cursor#19 print_schar::@2/(byte*) print_char_cursor#19 print_uint/(byte*) print_char_cursor#19 print_uint::@1/(byte*) print_char_cursor#19 )
[96] (byte) print_uchar::b#5 ← phi( print_mulf8u127::@1/(byte) print_uchar::b#3 print_mulf8u127::@3/(byte) print_uchar::b#4 print_schar::@2/(byte) print_uchar::b#0 print_uint/(byte) print_uchar::b#1 print_uint::@1/(byte) print_uchar::b#2 )
[97] (byte~) print_uchar::$0 ← (byte) print_uchar::b#5 >> (byte) 4
[98] (byte) print_char::ch#5 ← *((const to_nomodify byte*) print_hextab + (byte~) print_uchar::$0)
[99] call print_char
to:print_uchar::@1
print_uchar::@1: scope:[print_uchar] from print_uchar
[100] (byte~) print_uchar::$2 ← (byte) print_uchar::b#5 & (byte) $f
[101] (byte) print_char::ch#6 ← *((const to_nomodify byte*) print_hextab + (byte~) print_uchar::$2)
[102] call print_char
to:print_uchar::@return
print_uchar::@return: scope:[print_uchar] from print_uchar::@1
[103] return
to:@return
(void()) print_schar((signed byte) print_schar::b)
print_schar: scope:[print_schar] from print_mulf8s127::@1 print_mulf8s127::@3
[104] (byte*) print_char_cursor#128 ← phi( print_mulf8s127::@1/(byte*) print_char_cursor#149 print_mulf8s127::@3/(byte*) print_char_cursor#19 )
[104] (signed byte) print_schar::b#3 ← phi( print_mulf8s127::@1/(signed byte) print_schar::b#1 print_mulf8s127::@3/(signed byte) print_schar::b#2 )
[105] if((signed byte) print_schar::b#3<(signed byte) 0) goto print_schar::@1
to:print_schar::@3
print_schar::@3: scope:[print_schar] from print_schar
[106] phi()
[107] call print_char
to:print_schar::@2
print_schar::@2: scope:[print_schar] from print_schar::@3 print_schar::@4
[108] (signed byte) print_schar::b#5 ← phi( print_schar::@4/(signed byte) print_schar::b#0 print_schar::@3/(signed byte) print_schar::b#3 )
[109] (byte) print_uchar::b#0 ← (byte)(signed byte) print_schar::b#5
[110] call print_uchar
to:print_schar::@return
print_schar::@return: scope:[print_schar] from print_schar::@2
[111] return
to:@return
print_schar::@1: scope:[print_schar] from print_schar
[112] phi()
[113] call print_char
to:print_schar::@4
print_schar::@4: scope:[print_schar] from print_schar::@1
[114] (signed byte) print_schar::b#0 ← - (signed byte) print_schar::b#3
to:print_schar::@2
(signed word()) mulf8s127((signed byte) mulf8s127::a , (signed byte) mulf8s127::b)
mulf8s127: scope:[mulf8s127] from print_mulf8s127
[115] (byte) mulf8u127::a#1 ← (byte)(signed byte) mulf8s127::a#0
[116] (byte) mulf8u127::b#1 ← (byte)(signed byte) mulf8s127::b#0
[117] call mulf8u127
[118] (word) mulf8u127::return#3 ← (word) mulf8u127::return#1
to:mulf8s127::@7
mulf8s127::@7: scope:[mulf8s127] from mulf8s127
[119] (word) mulf8s127::c#0 ← (word) mulf8u127::return#3
[120] if((signed byte) mulf8s127::a#0>=(signed byte) 0) goto mulf8s127::@9
to:mulf8s127::@4
mulf8s127::@4: scope:[mulf8s127] from mulf8s127::@7
[121] (signed word~) mulf8s127::$11 ← (signed word)(signed byte) mulf8s127::b#0
[122] (signed word~) mulf8s127::$9 ← (signed word~) mulf8s127::$11 << (byte) 1
[123] (signed word) mulf8s127::c#1 ← (signed word)(word) mulf8s127::c#0 - (signed word~) mulf8s127::$9
to:mulf8s127::@1
mulf8s127::@1: scope:[mulf8s127] from mulf8s127::@4 mulf8s127::@9
[124] (signed word) mulf8s127::c#5 ← phi( mulf8s127::@4/(signed word) mulf8s127::c#1 mulf8s127::@9/(signed word) mulf8s127::c#11 )
[125] if((signed byte) mulf8s127::b#0>=(signed byte) 0) goto mulf8s127::@2
to:mulf8s127::@5
mulf8s127::@5: scope:[mulf8s127] from mulf8s127::@1
[126] (signed word~) mulf8s127::$12 ← (signed word)(signed byte) mulf8s127::a#0
[127] (signed word~) mulf8s127::$10 ← (signed word~) mulf8s127::$12 << (byte) 1
[128] (signed word) mulf8s127::c#2 ← (signed word) mulf8s127::c#5 - (signed word~) mulf8s127::$10
to:mulf8s127::@2
mulf8s127::@2: scope:[mulf8s127] from mulf8s127::@1 mulf8s127::@5
[129] (signed word) mulf8s127::c#7 ← phi( mulf8s127::@1/(signed word) mulf8s127::c#5 mulf8s127::@5/(signed word) mulf8s127::c#2 )
[130] if((signed byte) mulf8s127::a#0>=(signed byte) 0) goto mulf8s127::@3
to:mulf8s127::@8
mulf8s127::@8: scope:[mulf8s127] from mulf8s127::@2
[131] if((signed byte) mulf8s127::b#0>=(signed byte) 0) goto mulf8s127::@3
to:mulf8s127::@6
mulf8s127::@6: scope:[mulf8s127] from mulf8s127::@8
[132] (signed word) mulf8s127::c#3 ← (signed word) mulf8s127::c#7 - (signed word) $200
to:mulf8s127::@3
mulf8s127::@3: scope:[mulf8s127] from mulf8s127::@2 mulf8s127::@6 mulf8s127::@8
[133] (signed word) mulf8s127::return#1 ← phi( mulf8s127::@2/(signed word) mulf8s127::c#7 mulf8s127::@6/(signed word) mulf8s127::c#3 )
to:mulf8s127::@return
mulf8s127::@return: scope:[mulf8s127] from mulf8s127::@3
[134] return
to:@return
mulf8s127::@9: scope:[mulf8s127] from mulf8s127::@7
[135] (signed word) mulf8s127::c#11 ← (signed word)(word) mulf8s127::c#0
to:mulf8s127::@1
(word()) mulf8u127((byte) mulf8u127::a , (byte) mulf8u127::b)
mulf8u127: scope:[mulf8u127] from mulf8s127 print_mulf8u127
[136] (byte) mulf8u127::b#2 ← phi( mulf8s127/(byte) mulf8u127::b#1 print_mulf8u127/(byte) mulf8u127::b#0 )
[136] (byte) mulf8u127::a#2 ← phi( mulf8s127/(byte) mulf8u127::a#1 print_mulf8u127/(byte) mulf8u127::a#0 )
[137] *((const nomodify byte*) mulf8u127::memA) ← (byte) mulf8u127::a#2
[138] *((const nomodify byte*) mulf8u127::memB) ← (byte) mulf8u127::b#2
asm { ldamemA stasm1+1 stasm3+1 eor#$ff stasm2+1 stasm4+1 ldxmemB sec sm1: ldamulf127_sqr1_lo,x sm2: sbcmulf127_sqr2_lo,x staresL sm3: ldamulf127_sqr1_hi,x sm4: sbcmulf127_sqr2_hi,x staresH }
[140] (word) mulf8u127::return#1 ← *((const nomodify word*) mulf8u127::res)
to:mulf8u127::@return
mulf8u127::@return: scope:[mulf8u127] from mulf8u127
[141] return
to:@return
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@1 main::@11
[142] (byte*) print_char_cursor#137 ← phi( main::@1/(byte*) 1024 main::@11/(byte*) print_char_cursor#142 )
[142] (byte*) print_str::str#6 ← phi( main::@1/(const byte*) main::str main::@11/(const byte*) main::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@3
[143] (byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#137 print_str::@3/(byte*) print_char_cursor#19 )
[143] (byte*) print_str::str#3 ← phi( print_str/(byte*) print_str::str#6 print_str::@3/(byte*) print_str::str#0 )
[144] if((byte) 0!=*((byte*) print_str::str#3)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
[145] return
to:@return
print_str::@2: scope:[print_str] from print_str::@1
[146] (byte) print_char::ch#0 ← *((byte*) print_str::str#3)
[147] call print_char
to:print_str::@3
print_str::@3: scope:[print_str] from print_str::@2
[148] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#3
to:print_str::@1
(void()) print_mulf8u127((byte) print_mulf8u127::a , (byte) print_mulf8u127::b)
print_mulf8u127: scope:[print_mulf8u127] from main::@10 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
[149] (byte) print_mulf8u127::b#10 ← phi( main::@10/(byte) $ff main::@3/(byte) 0 main::@4/(byte) $7f main::@5/(byte) $40 main::@6/(byte) $7f main::@7/(byte) $c0 main::@8/(byte) $7f main::@9/(byte) $c0 )
[149] (byte) print_mulf8u127::a#8 ← phi( main::@10/(byte) $ff main::@3/(byte) 0 main::@4/(byte) $7f main::@5/(byte) $40 main::@6/(byte) $40 main::@7/(byte) $40 main::@8/(byte) $ff main::@9/(byte) $c0 )
[150] (byte) mulf8u127::a#0 ← (byte) print_mulf8u127::a#8
[151] (byte) mulf8u127::b#0 ← (byte) print_mulf8u127::b#10
[152] call mulf8u127
[153] (word) mulf8u127::return#0 ← (word) mulf8u127::return#1
to:print_mulf8u127::@1
print_mulf8u127::@1: scope:[print_mulf8u127] from print_mulf8u127
[154] (word) print_mulf8u127::c#0 ← (word) mulf8u127::return#0
[155] (byte) print_uchar::b#3 ← (byte) print_mulf8u127::a#8
[156] (byte*) print_char_cursor#151 ← (byte*) print_line_cursor#1
[157] call print_uchar
to:print_mulf8u127::@2
print_mulf8u127::@2: scope:[print_mulf8u127] from print_mulf8u127::@1
[158] phi()
[159] call print_char
to:print_mulf8u127::@3
print_mulf8u127::@3: scope:[print_mulf8u127] from print_mulf8u127::@2
[160] (byte) print_uchar::b#4 ← (byte) print_mulf8u127::b#10
[161] call print_uchar
to:print_mulf8u127::@4
print_mulf8u127::@4: scope:[print_mulf8u127] from print_mulf8u127::@3
[162] phi()
[163] call print_char
to:print_mulf8u127::@5
print_mulf8u127::@5: scope:[print_mulf8u127] from print_mulf8u127::@4
[164] (word) print_uint::w#1 ← (word) print_mulf8u127::c#0
[165] call print_uint
to:print_mulf8u127::@6
print_mulf8u127::@6: scope:[print_mulf8u127] from print_mulf8u127::@5
[166] phi()
[167] call print_ln
to:print_mulf8u127::@return
print_mulf8u127::@return: scope:[print_mulf8u127] from print_mulf8u127::@6
[168] return
to:@return
(void()) print_cls()
print_cls: scope:[print_cls] from main
[169] phi()
[170] call memset
to:print_cls::@return
print_cls::@return: scope:[print_cls] from print_cls
[171] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
[172] phi()
to:memset::@1
memset::@1: scope:[memset] from memset memset::@2
[173] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
[174] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
to:memset::@return
memset::@return: scope:[memset] from memset::@1
[175] return
to:@return
memset::@2: scope:[memset] from memset::@1
[176] *((byte*) memset::dst#2) ← (const byte) memset::c#0
[177] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@1