mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-06-29 09:29:31 +00:00
155 lines
7.2 KiB
INI
155 lines
7.2 KiB
INI
|
|
void main()
|
|
main: scope:[main] from
|
|
[0] phi()
|
|
[1] call mulf_init
|
|
to:main::@4
|
|
main::@4: scope:[main] from main
|
|
asm { sei }
|
|
to:main::@1
|
|
main::@1: scope:[main] from main::@4 main::@5
|
|
[3] print_char_cursor#15 = phi( main::@4/(char *) 1024, main::@5/SCREEN )
|
|
to:main::@2
|
|
main::@2: scope:[main] from main::@1 main::@2
|
|
[4] if(*RASTER!=$ff) goto main::@2
|
|
to:main::@3
|
|
main::@3: scope:[main] from main::@2
|
|
[5] *BORDER_COLOR = ++ *BORDER_COLOR
|
|
[6] call mulf16u
|
|
[7] mulf16u::return#0 = mulf16u::return#1
|
|
to:main::@5
|
|
main::@5: scope:[main] from main::@3
|
|
[8] main::r#0 = mulf16u::return#0
|
|
[9] *BORDER_COLOR = -- *BORDER_COLOR
|
|
[10] print_ulong::dw#0 = main::r#0
|
|
[11] call print_ulong
|
|
to:main::@1
|
|
|
|
void mulf_init()
|
|
mulf_init: scope:[mulf_init] from main
|
|
[12] phi()
|
|
to:mulf_init::@1
|
|
mulf_init::@1: scope:[mulf_init] from mulf_init mulf_init::@3
|
|
[13] mulf_init::x_2#3 = phi( mulf_init/0, mulf_init::@3/mulf_init::x_2#2 )
|
|
[13] mulf_init::sqr1_hi#2 = phi( mulf_init/mulf_sqr1_hi+1, mulf_init::@3/mulf_init::sqr1_hi#1 )
|
|
[13] mulf_init::sqr#4 = phi( mulf_init/0, mulf_init::@3/mulf_init::sqr#1 )
|
|
[13] mulf_init::c#2 = phi( mulf_init/0, mulf_init::@3/mulf_init::c#1 )
|
|
[13] mulf_init::sqr1_lo#2 = phi( mulf_init/mulf_sqr1_lo+1, mulf_init::@3/mulf_init::sqr1_lo#1 )
|
|
[14] if(mulf_init::sqr1_lo#2!=mulf_sqr1_lo+$200) goto mulf_init::@2
|
|
to:mulf_init::@5
|
|
mulf_init::@5: scope:[mulf_init] from mulf_init::@1 mulf_init::@8
|
|
[15] mulf_init::dir#2 = phi( mulf_init::@1/$ff, mulf_init::@8/mulf_init::dir#4 )
|
|
[15] mulf_init::sqr2_hi#2 = phi( mulf_init::@1/mulf_sqr2_hi, mulf_init::@8/mulf_init::sqr2_hi#1 )
|
|
[15] mulf_init::x_255#2 = phi( mulf_init::@1/-1, mulf_init::@8/mulf_init::x_255#1 )
|
|
[15] mulf_init::sqr2_lo#2 = phi( mulf_init::@1/mulf_sqr2_lo, mulf_init::@8/mulf_init::sqr2_lo#1 )
|
|
[16] if(mulf_init::sqr2_lo#2!=mulf_sqr2_lo+$1ff) goto mulf_init::@6
|
|
to:mulf_init::@7
|
|
mulf_init::@7: scope:[mulf_init] from mulf_init::@5
|
|
[17] *(mulf_sqr2_lo+$1ff) = *(mulf_sqr1_lo+$100)
|
|
[18] *(mulf_sqr2_hi+$1ff) = *(mulf_sqr1_hi+$100)
|
|
to:mulf_init::@return
|
|
mulf_init::@return: scope:[mulf_init] from mulf_init::@7
|
|
[19] return
|
|
to:@return
|
|
mulf_init::@6: scope:[mulf_init] from mulf_init::@5
|
|
[20] *mulf_init::sqr2_lo#2 = mulf_sqr1_lo[mulf_init::x_255#2]
|
|
[21] *mulf_init::sqr2_hi#2 = mulf_sqr1_hi[mulf_init::x_255#2]
|
|
[22] mulf_init::sqr2_hi#1 = ++ mulf_init::sqr2_hi#2
|
|
[23] mulf_init::x_255#1 = mulf_init::x_255#2 + mulf_init::dir#2
|
|
[24] if(mulf_init::x_255#1!=0) goto mulf_init::@9
|
|
to:mulf_init::@8
|
|
mulf_init::@9: scope:[mulf_init] from mulf_init::@6
|
|
[25] phi()
|
|
to:mulf_init::@8
|
|
mulf_init::@8: scope:[mulf_init] from mulf_init::@6 mulf_init::@9
|
|
[26] mulf_init::dir#4 = phi( mulf_init::@6/1, mulf_init::@9/mulf_init::dir#2 )
|
|
[27] mulf_init::sqr2_lo#1 = ++ mulf_init::sqr2_lo#2
|
|
to:mulf_init::@5
|
|
mulf_init::@2: scope:[mulf_init] from mulf_init::@1
|
|
[28] mulf_init::c#1 = ++ mulf_init::c#2
|
|
[29] mulf_init::$1 = mulf_init::c#1 & 1
|
|
[30] if(mulf_init::$1!=0) goto mulf_init::@3
|
|
to:mulf_init::@4
|
|
mulf_init::@4: scope:[mulf_init] from mulf_init::@2
|
|
[31] mulf_init::x_2#1 = ++ mulf_init::x_2#3
|
|
[32] mulf_init::sqr#2 = ++ mulf_init::sqr#4
|
|
to:mulf_init::@3
|
|
mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4
|
|
[33] mulf_init::x_2#2 = phi( mulf_init::@2/mulf_init::x_2#3, mulf_init::@4/mulf_init::x_2#1 )
|
|
[33] mulf_init::sqr#3 = phi( mulf_init::@2/mulf_init::sqr#4, mulf_init::@4/mulf_init::sqr#2 )
|
|
[34] mulf_init::$4 = byte0 mulf_init::sqr#3
|
|
[35] *mulf_init::sqr1_lo#2 = mulf_init::$4
|
|
[36] mulf_init::$5 = byte1 mulf_init::sqr#3
|
|
[37] *mulf_init::sqr1_hi#2 = mulf_init::$5
|
|
[38] mulf_init::sqr1_hi#1 = ++ mulf_init::sqr1_hi#2
|
|
[39] mulf_init::sqr#1 = mulf_init::sqr#3 + mulf_init::x_2#2
|
|
[40] mulf_init::sqr1_lo#1 = ++ mulf_init::sqr1_lo#2
|
|
to:mulf_init::@1
|
|
|
|
unsigned long mulf16u(unsigned int a , unsigned int b)
|
|
mulf16u: scope:[mulf16u] from main::@3
|
|
[41] *mulf16u::memA = main::a
|
|
[42] *mulf16u::memB = main::b
|
|
asm { ldamemA stasm1a+1 stasm3a+1 stasm5a+1 stasm7a+1 eor#$ff stasm2a+1 stasm4a+1 stasm6a+1 stasm8a+1 ldamemA+1 stasm1b+1 stasm3b+1 stasm5b+1 stasm7b+1 eor#$ff stasm2b+1 stasm4b+1 stasm6b+1 stasm8b+1 ldxmemB sec sm1a: ldamulf_sqr1_lo,x sm2a: sbcmulf_sqr2_lo,x stamemR+0 sm3a: ldamulf_sqr1_hi,x sm4a: sbcmulf_sqr2_hi,x sta_AA+1 sec sm1b: ldamulf_sqr1_lo,x sm2b: sbcmulf_sqr2_lo,x sta_cc+1 sm3b: ldamulf_sqr1_hi,x sm4b: sbcmulf_sqr2_hi,x sta_CC+1 ldxmemB+1 sec sm5a: ldamulf_sqr1_lo,x sm6a: sbcmulf_sqr2_lo,x sta_bb+1 sm7a: ldamulf_sqr1_hi,x sm8a: sbcmulf_sqr2_hi,x sta_BB+1 sec sm5b: ldamulf_sqr1_lo,x sm6b: sbcmulf_sqr2_lo,x sta_dd+1 sm7b: ldamulf_sqr1_hi,x sm8b: sbcmulf_sqr2_hi,x stamemR+3 clc _AA: lda#0 _bb: adc#0 stamemR+1 _BB: lda#0 _CC: adc#0 stamemR+2 bcc!+ incmemR+3 clc !: _cc: lda#0 adcmemR+1 stamemR+1 _dd: lda#0 adcmemR+2 stamemR+2 bcc!+ incmemR+3 !: }
|
|
[44] mulf16u::return#1 = *mulf16u::memR
|
|
to:mulf16u::@return
|
|
mulf16u::@return: scope:[mulf16u] from mulf16u
|
|
[45] return
|
|
to:@return
|
|
|
|
void print_ulong(unsigned long dw)
|
|
print_ulong: scope:[print_ulong] from main::@5
|
|
[46] print_uint::w#0 = word1 print_ulong::dw#0
|
|
[47] call print_uint
|
|
to:print_ulong::@1
|
|
print_ulong::@1: scope:[print_ulong] from print_ulong
|
|
[48] print_uint::w#1 = word0 print_ulong::dw#0
|
|
[49] call print_uint
|
|
to:print_ulong::@return
|
|
print_ulong::@return: scope:[print_ulong] from print_ulong::@1
|
|
[50] return
|
|
to:@return
|
|
|
|
void print_uint(unsigned int w)
|
|
print_uint: scope:[print_uint] from print_ulong print_ulong::@1
|
|
[51] print_char_cursor#36 = phi( print_ulong/print_char_cursor#15, print_ulong::@1/print_char_cursor#10 )
|
|
[51] print_uint::w#2 = phi( print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 )
|
|
[52] print_uchar::b#0 = byte1 print_uint::w#2
|
|
[53] call print_uchar
|
|
to:print_uint::@1
|
|
print_uint::@1: scope:[print_uint] from print_uint
|
|
[54] print_uchar::b#1 = byte0 print_uint::w#2
|
|
[55] call print_uchar
|
|
to:print_uint::@return
|
|
print_uint::@return: scope:[print_uint] from print_uint::@1
|
|
[56] return
|
|
to:@return
|
|
|
|
void print_uchar(char b)
|
|
print_uchar: scope:[print_uchar] from print_uint print_uint::@1
|
|
[57] print_char_cursor#38 = phi( print_uint/print_char_cursor#36, print_uint::@1/print_char_cursor#10 )
|
|
[57] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
|
|
[58] print_uchar::$0 = print_uchar::b#2 >> 4
|
|
[59] print_char::ch#0 = print_hextab[print_uchar::$0]
|
|
[60] call print_char
|
|
to:print_uchar::@1
|
|
print_uchar::@1: scope:[print_uchar] from print_uchar
|
|
[61] print_uchar::$2 = print_uchar::b#2 & $f
|
|
[62] print_char::ch#1 = print_hextab[print_uchar::$2]
|
|
[63] call print_char
|
|
to:print_uchar::@return
|
|
print_uchar::@return: scope:[print_uchar] from print_uchar::@1
|
|
[64] return
|
|
to:@return
|
|
|
|
void print_char(char ch)
|
|
print_char: scope:[print_char] from print_uchar print_uchar::@1
|
|
[65] print_char_cursor#28 = phi( print_uchar/print_char_cursor#38, print_uchar::@1/print_char_cursor#10 )
|
|
[65] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 )
|
|
[66] *print_char_cursor#28 = print_char::ch#2
|
|
[67] print_char_cursor#10 = ++ print_char_cursor#28
|
|
to:print_char::@return
|
|
print_char::@return: scope:[print_char] from print_char
|
|
[68] return
|
|
to:@return
|