mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-10-21 17:24:39 +00:00
257 lines
14 KiB
INI
257 lines
14 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] *((const nomodify byte*) BORDER_COLOR) ← (byte) 0
|
|
[5] *((const nomodify byte*) BG_COLOR) ← (byte) 0
|
|
[6] *((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(byte) 3
|
|
[7] *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const nomodify byte*) BITMAP&(word) $3fff/(word) $400
|
|
[8] call bitmap_init
|
|
to:main::@3
|
|
main::@3: scope:[main] from main
|
|
[9] phi()
|
|
[10] call bitmap_clear
|
|
to:main::@1
|
|
main::@1: scope:[main] from main::@2 main::@3
|
|
[11] (word) next#5 ← phi( main::@2/(word) next#3 main::@3/(word) 0 )
|
|
[12] (word) bitmap_line::x2#0 ← (word) next#5
|
|
[13] call bitmap_line
|
|
to:main::@4
|
|
main::@4: scope:[main] from main::@1
|
|
[14] (word) next#1 ← ++ (word) next#5
|
|
[15] if((word) next#1!=(word) $140) goto main::@5
|
|
to:main::@2
|
|
main::@5: scope:[main] from main::@4
|
|
[16] phi()
|
|
to:main::@2
|
|
main::@2: scope:[main] from main::@4 main::@5
|
|
[17] (word) next#3 ← phi( main::@4/(byte) 0 main::@5/(word) next#1 )
|
|
to:main::@1
|
|
|
|
(void()) bitmap_line((word) bitmap_line::x1 , (word) bitmap_line::y1 , (word) bitmap_line::x2 , (word) bitmap_line::y2)
|
|
bitmap_line: scope:[bitmap_line] from main::@1
|
|
[18] (word) abs_u16::w#0 ← (word) bitmap_line::x2#0
|
|
[19] call abs_u16
|
|
[20] (word) abs_u16::return#0 ← (word) abs_u16::return#4
|
|
to:bitmap_line::@12
|
|
bitmap_line::@12: scope:[bitmap_line] from bitmap_line
|
|
[21] (word) bitmap_line::dx#0 ← (word) abs_u16::return#0
|
|
[22] call abs_u16
|
|
[23] (word) abs_u16::return#1 ← (word) abs_u16::return#4
|
|
to:bitmap_line::@13
|
|
bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12
|
|
[24] (word) bitmap_line::dy#0 ← (word) abs_u16::return#1
|
|
[25] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
|
|
to:bitmap_line::@18
|
|
bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13
|
|
[26] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
|
|
to:bitmap_line::@1
|
|
bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18
|
|
[27] (word) sgn_u16::w#0 ← (word) bitmap_line::x2#0
|
|
[28] call sgn_u16
|
|
[29] (word) sgn_u16::return#0 ← (word) sgn_u16::return#4
|
|
to:bitmap_line::@14
|
|
bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1
|
|
[30] (word) bitmap_line::sx#0 ← (word) sgn_u16::return#0
|
|
[31] call sgn_u16
|
|
[32] (word) sgn_u16::return#1 ← (word) sgn_u16::return#4
|
|
to:bitmap_line::@15
|
|
bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14
|
|
[33] (word) bitmap_line::sy#0 ← (word) sgn_u16::return#1
|
|
[34] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
|
|
to:bitmap_line::@5
|
|
bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@15
|
|
[35] (word) bitmap_line::e#0 ← (word) bitmap_line::dx#0 >> (byte) 1
|
|
to:bitmap_line::@6
|
|
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7
|
|
[36] (word) bitmap_line::e#3 ← phi( bitmap_line::@5/(word) bitmap_line::e#0 bitmap_line::@7/(word) bitmap_line::e#6 )
|
|
[36] (word) bitmap_line::y#4 ← phi( bitmap_line::@5/(const word) bitmap_line::y1#0 bitmap_line::@7/(word) bitmap_line::y#1 )
|
|
[36] (word) bitmap_line::x#13 ← phi( bitmap_line::@5/(const word) bitmap_line::x1#0 bitmap_line::@7/(word) bitmap_line::x#12 )
|
|
[37] (word) bitmap_plot::x#1 ← (word) bitmap_line::x#13
|
|
[38] (byte) bitmap_plot::y#1 ← (byte)(word) bitmap_line::y#4
|
|
[39] call bitmap_plot
|
|
to:bitmap_line::@16
|
|
bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6
|
|
[40] (word) bitmap_line::y#1 ← (word) bitmap_line::y#4 + (word) bitmap_line::sy#0
|
|
[41] (word) bitmap_line::e#1 ← (word) bitmap_line::e#3 + (word) bitmap_line::dx#0
|
|
[42] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@7
|
|
to:bitmap_line::@8
|
|
bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@16
|
|
[43] (word) bitmap_line::x#1 ← (word) bitmap_line::x#13 + (word) bitmap_line::sx#0
|
|
[44] (word) bitmap_line::e#2 ← (word) bitmap_line::e#1 - (word) bitmap_line::dy#0
|
|
to:bitmap_line::@7
|
|
bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@16 bitmap_line::@8
|
|
[45] (word) bitmap_line::e#6 ← phi( bitmap_line::@16/(word) bitmap_line::e#1 bitmap_line::@8/(word) bitmap_line::e#2 )
|
|
[45] (word) bitmap_line::x#12 ← phi( bitmap_line::@16/(word) bitmap_line::x#13 bitmap_line::@8/(word) bitmap_line::x#1 )
|
|
[46] if((word) bitmap_line::y#1!=(const word) bitmap_line::y2#0) goto bitmap_line::@6
|
|
to:bitmap_line::@3
|
|
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7
|
|
[47] (word) bitmap_line::y#7 ← phi( bitmap_line::@10/(word) bitmap_line::y#13 bitmap_line::@7/(word) bitmap_line::y#1 )
|
|
[47] (word) bitmap_line::x#6 ← phi( bitmap_line::@10/(word) bitmap_line::x#15 bitmap_line::@7/(word) bitmap_line::x#12 )
|
|
[48] (word) bitmap_plot::x#2 ← (word) bitmap_line::x#6
|
|
[49] (byte) bitmap_plot::y#2 ← (byte)(word) bitmap_line::y#7
|
|
[50] call bitmap_plot
|
|
to:bitmap_line::@return
|
|
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4
|
|
[51] return
|
|
to:@return
|
|
bitmap_line::@2: scope:[bitmap_line] from bitmap_line::@15
|
|
[52] (word) bitmap_line::e1#0 ← (word) bitmap_line::dy#0 >> (byte) 1
|
|
to:bitmap_line::@9
|
|
bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2
|
|
[53] (word) bitmap_line::e1#3 ← phi( bitmap_line::@10/(word) bitmap_line::e1#6 bitmap_line::@2/(word) bitmap_line::e1#0 )
|
|
[53] (word) bitmap_line::y#15 ← phi( bitmap_line::@10/(word) bitmap_line::y#13 bitmap_line::@2/(const word) bitmap_line::y1#0 )
|
|
[53] (word) bitmap_line::x#7 ← phi( bitmap_line::@10/(word) bitmap_line::x#15 bitmap_line::@2/(const word) bitmap_line::x1#0 )
|
|
[54] (word) bitmap_plot::x#3 ← (word) bitmap_line::x#7
|
|
[55] (byte) bitmap_plot::y#3 ← (byte)(word) bitmap_line::y#15
|
|
[56] call bitmap_plot
|
|
to:bitmap_line::@17
|
|
bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9
|
|
[57] (word) bitmap_line::x#15 ← (word) bitmap_line::x#7 + (word) bitmap_line::sx#0
|
|
[58] (word) bitmap_line::e1#1 ← (word) bitmap_line::e1#3 + (word) bitmap_line::dy#0
|
|
[59] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@10
|
|
to:bitmap_line::@11
|
|
bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@17
|
|
[60] (word) bitmap_line::y#2 ← (word) bitmap_line::y#15 + (word) bitmap_line::sy#0
|
|
[61] (word) bitmap_line::e1#2 ← (word) bitmap_line::e1#1 - (word) bitmap_line::dx#0
|
|
to:bitmap_line::@10
|
|
bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17
|
|
[62] (word) bitmap_line::e1#6 ← phi( bitmap_line::@11/(word) bitmap_line::e1#2 bitmap_line::@17/(word) bitmap_line::e1#1 )
|
|
[62] (word) bitmap_line::y#13 ← phi( bitmap_line::@11/(word) bitmap_line::y#2 bitmap_line::@17/(word) bitmap_line::y#15 )
|
|
[63] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#0) goto bitmap_line::@9
|
|
to:bitmap_line::@3
|
|
bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18
|
|
[64] phi()
|
|
[65] call bitmap_plot
|
|
to:bitmap_line::@return
|
|
|
|
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
|
|
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
|
|
[66] (word) bitmap_plot::x#4 ← phi( bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(const word) bitmap_line::x1#0 bitmap_line::@6/(word) bitmap_plot::x#1 bitmap_line::@9/(word) bitmap_plot::x#3 )
|
|
[66] (byte) bitmap_plot::y#4 ← phi( bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) 0 bitmap_line::@6/(byte) bitmap_plot::y#1 bitmap_line::@9/(byte) bitmap_plot::y#3 )
|
|
[67] (word) bitmap_plot::plotter#0 ← *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4)
|
|
[68] (word~) bitmap_plot::$0 ← (word) bitmap_plot::x#4 & (word) $fff8
|
|
[69] (byte*) bitmap_plot::plotter#1 ← (byte*)(word) bitmap_plot::plotter#0 + (word~) bitmap_plot::$0
|
|
[70] (byte~) bitmap_plot::$1 ← < (word) bitmap_plot::x#4
|
|
[71] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const to_nomodify byte*) bitmap_plot_bit + (byte~) bitmap_plot::$1)
|
|
to:bitmap_plot::@return
|
|
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
|
[72] return
|
|
to:@return
|
|
|
|
(word()) sgn_u16((word) sgn_u16::w)
|
|
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
|
|
[73] (word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@14/(const word) bitmap_line::y2#0 )
|
|
[74] (byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
|
|
[75] (byte~) sgn_u16::$1 ← (byte~) sgn_u16::$0 & (byte) $80
|
|
[76] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
|
|
to:sgn_u16::@return
|
|
sgn_u16::@1: scope:[sgn_u16] from sgn_u16
|
|
[77] phi()
|
|
to:sgn_u16::@return
|
|
sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1
|
|
[78] (word) sgn_u16::return#4 ← phi( sgn_u16::@1/(byte) -1 sgn_u16/(byte) 1 )
|
|
[79] return
|
|
to:@return
|
|
|
|
(word()) abs_u16((word) abs_u16::w)
|
|
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
|
|
[80] (word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@12/(const word) bitmap_line::y2#0 )
|
|
[81] (byte~) abs_u16::$0 ← > (word) abs_u16::w#2
|
|
[82] (byte~) abs_u16::$1 ← (byte~) abs_u16::$0 & (byte) $80
|
|
[83] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
|
|
to:abs_u16::@return
|
|
abs_u16::@1: scope:[abs_u16] from abs_u16
|
|
[84] (word) abs_u16::return#2 ← - (word) abs_u16::w#2
|
|
to:abs_u16::@return
|
|
abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
|
|
[85] (word) abs_u16::return#4 ← phi( abs_u16::@1/(word) abs_u16::return#2 abs_u16/(word) abs_u16::w#2 )
|
|
[86] return
|
|
to:@return
|
|
|
|
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
|
|
bitmap_clear: scope:[bitmap_clear] from main::@3
|
|
[87] phi()
|
|
[88] call memset
|
|
to:bitmap_clear::@1
|
|
bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
|
|
[89] phi()
|
|
[90] call memset
|
|
to:bitmap_clear::@return
|
|
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
|
|
[91] return
|
|
to:@return
|
|
|
|
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
|
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
|
|
[92] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
|
|
[92] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const nomodify byte*) SCREEN bitmap_clear::@1/(void*)(const nomodify byte*) BITMAP )
|
|
[92] (word) memset::num#2 ← phi( bitmap_clear/(word) $3e8 bitmap_clear::@1/(word) $1f40 )
|
|
[93] if((word) memset::num#2<=(byte) 0) goto memset::@return
|
|
to:memset::@1
|
|
memset::@1: scope:[memset] from memset
|
|
[94] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2
|
|
[95] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3
|
|
to:memset::@2
|
|
memset::@2: scope:[memset] from memset::@1 memset::@3
|
|
[96] (byte*) memset::dst#2 ← phi( memset::@1/(byte*) memset::dst#4 memset::@3/(byte*) memset::dst#1 )
|
|
[97] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3
|
|
to:memset::@return
|
|
memset::@return: scope:[memset] from memset memset::@2
|
|
[98] return
|
|
to:@return
|
|
memset::@3: scope:[memset] from memset::@2
|
|
[99] *((byte*) memset::dst#2) ← (byte) memset::c#4
|
|
[100] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
|
to:memset::@2
|
|
|
|
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
|
|
bitmap_init: scope:[bitmap_init] from main
|
|
[101] phi()
|
|
to:bitmap_init::@1
|
|
bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2
|
|
[102] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) 0 bitmap_init::@2/(byte) bitmap_init::x#1 )
|
|
[102] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 )
|
|
[103] *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
|
|
[104] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1
|
|
[105] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6
|
|
to:bitmap_init::@2
|
|
bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@1
|
|
[106] phi()
|
|
to:bitmap_init::@2
|
|
bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@6
|
|
[107] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@6/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte) $80 )
|
|
[108] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2
|
|
[109] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1
|
|
to:bitmap_init::@3
|
|
bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4
|
|
[110] (byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@2/(const nomodify byte*) BITMAP bitmap_init::@4/(byte*) bitmap_init::yoffs#4 )
|
|
[110] (byte) bitmap_init::y#2 ← phi( bitmap_init::@2/(byte) 0 bitmap_init::@4/(byte) bitmap_init::y#1 )
|
|
[111] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
|
|
[112] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2
|
|
[113] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$7 | (byte~) bitmap_init::$4
|
|
[114] *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5
|
|
[115] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2
|
|
[116] *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6
|
|
[117] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@4
|
|
to:bitmap_init::@5
|
|
bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3
|
|
[118] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8
|
|
to:bitmap_init::@4
|
|
bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
|
|
[119] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@5/(byte*) bitmap_init::yoffs#1 )
|
|
[120] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2
|
|
[121] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3
|
|
to:bitmap_init::@return
|
|
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
|
|
[122] return
|
|
to:@return
|