mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-09-29 03:56:15 +00:00
516 lines
26 KiB
INI
516 lines
26 KiB
INI
|
|
void __start()
|
|
__start: scope:[__start] from
|
|
[0] phi()
|
|
to:__start::__init1
|
|
__start::__init1: scope:[__start] from __start
|
|
[1] phi()
|
|
[2] call malloc
|
|
to:__start::@2
|
|
__start::@2: scope:[__start] from __start::__init1
|
|
[3] SCREEN_DIST#0 = (void*)malloc::mem#0
|
|
[4] call malloc
|
|
to:__start::@3
|
|
__start::@3: scope:[__start] from __start::@2
|
|
[5] SCREEN_ANGLE#0 = (void*)malloc::mem#0
|
|
[6] call malloc
|
|
to:__start::@4
|
|
__start::@4: scope:[__start] from __start::@3
|
|
[7] BUCKET_SIZES#0 = (void*)malloc::mem#0
|
|
[8] call malloc
|
|
to:__start::@5
|
|
__start::@5: scope:[__start] from __start::@4
|
|
[9] BUCKETS#0 = (void*)malloc::mem#0
|
|
[10] call malloc
|
|
to:__start::@6
|
|
__start::@6: scope:[__start] from __start::@5
|
|
[11] BUCKET_IDX#0 = (void*)malloc::mem#0
|
|
to:__start::@1
|
|
__start::@1: scope:[__start] from __start::@6
|
|
[12] phi()
|
|
[13] call main
|
|
to:__start::@return
|
|
__start::@return: scope:[__start] from __start::@1
|
|
[14] return
|
|
to:@return
|
|
|
|
void* malloc(word malloc::size)
|
|
malloc: scope:[malloc] from __start::@2 __start::@3 __start::@4 __start::@5 __start::__init1 init_buckets::@4 init_squares
|
|
[15] malloc::size#7 = phi( __start::@2/$3e8, __start::@3/NUM_BUCKETS*SIZEOF_BYTE, __start::@4/NUM_BUCKETS*SIZEOF_POINTER, __start::@5/NUM_BUCKETS*SIZEOF_BYTE, __start::__init1/$3e8, init_buckets::@4/malloc::size#1, init_squares/NUM_SQUARES#2*SIZEOF_WORD )
|
|
[15] heap_head#19 = phi( __start::@2/heap_head#0, __start::@3/heap_head#0, __start::@4/heap_head#0, __start::@5/heap_head#0, __start::__init1/HEAP_TOP, init_buckets::@4/heap_head#0, init_squares/heap_head#0 )
|
|
[16] malloc::mem#0 = heap_head#19 - malloc::size#7
|
|
[17] heap_head#0 = malloc::mem#0
|
|
to:malloc::@return
|
|
malloc::@return: scope:[malloc] from malloc
|
|
[18] return
|
|
to:@return
|
|
|
|
void main()
|
|
main: scope:[main] from __start::@1
|
|
asm { sei }
|
|
[20] init_dist_screen::screen#0 = (byte*)SCREEN_DIST#0
|
|
[21] call init_dist_screen
|
|
to:main::@15
|
|
main::@15: scope:[main] from main
|
|
[22] init_angle_screen::screen#0 = (byte*)SCREEN_ANGLE#0
|
|
[23] call init_angle_screen
|
|
to:main::@16
|
|
main::@16: scope:[main] from main::@15
|
|
[24] init_buckets::screen#0 = (byte*)SCREEN_DIST#0
|
|
[25] call init_buckets
|
|
to:main::@1
|
|
main::@1: scope:[main] from main::@11 main::@12 main::@16
|
|
[26] main::bucket_idx#6 = phi( main::@11/main::bucket_idx#6, main::@12/main::bucket_idx#1, main::@16/0 )
|
|
to:main::@2
|
|
main::@2: scope:[main] from main::@1 main::@2
|
|
[27] if(*RASTER!=$ff) goto main::@2
|
|
to:main::@3
|
|
main::@3: scope:[main] from main::@2
|
|
[28] *BORDER_COLOR = ++ *BORDER_COLOR
|
|
[29] main::$23 = main::bucket_idx#6 << 1
|
|
[30] main::bucket#0 = ((word**)BUCKETS#0)[main::$23]
|
|
[31] main::bucket_size#0 = ((byte*)BUCKET_SIZES#0)[main::bucket_idx#6]
|
|
[32] if(main::bucket_size#0<=0) goto main::@4
|
|
to:main::@5
|
|
main::@5: scope:[main] from main::@3 main::@8
|
|
[33] main::min_angle#2 = phi( main::@3/$ff, main::@8/main::min_angle#5 )
|
|
[33] main::min_offset#2 = phi( main::@3/$ffff, main::@8/main::min_offset#8 )
|
|
[33] main::i#2 = phi( main::@3/0, main::@8/main::i#1 )
|
|
[34] if(main::i#2<main::bucket_size#0) goto main::@6
|
|
to:main::@7
|
|
main::@7: scope:[main] from main::@5
|
|
[35] if(main::min_offset#2==$ffff) goto main::@4
|
|
to:main::@11
|
|
main::@11: scope:[main] from main::@7
|
|
[36] main::fill1#0 = SCREEN_FILL + main::min_offset#2
|
|
[37] *main::fill1#0 = FILL_CHAR
|
|
[38] *BORDER_COLOR = -- *BORDER_COLOR
|
|
to:main::@1
|
|
main::@4: scope:[main] from main::@3 main::@7
|
|
[39] main::bucket_idx#1 = ++ main::bucket_idx#6
|
|
[40] if(main::bucket_idx#1!=NUM_BUCKETS) goto main::@12
|
|
to:main::@13
|
|
main::@13: scope:[main] from main::@4
|
|
[41] *BORDER_COLOR = -- *BORDER_COLOR
|
|
to:main::@14
|
|
main::@14: scope:[main] from main::@13 main::@14
|
|
[42] *(COLS+$3e7) = ++ *(COLS+$3e7)
|
|
to:main::@14
|
|
main::@12: scope:[main] from main::@4
|
|
[43] *BORDER_COLOR = -- *BORDER_COLOR
|
|
to:main::@1
|
|
main::@6: scope:[main] from main::@5
|
|
[44] main::$24 = main::i#2 << 1
|
|
[45] main::offset#0 = main::bucket#0[main::$24]
|
|
[46] main::fill#0 = SCREEN_FILL + main::offset#0
|
|
[47] if(*main::fill#0==FILL_CHAR) goto main::@18
|
|
to:main::@9
|
|
main::@9: scope:[main] from main::@6
|
|
[48] main::angle#0 = (byte*)SCREEN_ANGLE#0 + main::offset#0
|
|
[49] if(*main::angle#0>main::min_angle#2) goto main::@17
|
|
to:main::@10
|
|
main::@10: scope:[main] from main::@9
|
|
[50] main::min_angle#1 = *main::angle#0
|
|
to:main::@8
|
|
main::@8: scope:[main] from main::@10 main::@17 main::@18
|
|
[51] main::min_angle#5 = phi( main::@17/main::min_angle#2, main::@10/main::min_angle#1, main::@18/main::min_angle#2 )
|
|
[51] main::min_offset#5 = phi( main::@17/main::min_offset#9, main::@10/main::offset#0, main::@18/main::min_offset#11 )
|
|
[52] main::i#1 = ++ main::i#2
|
|
[53] main::min_offset#8 = main::min_offset#5
|
|
to:main::@5
|
|
main::@17: scope:[main] from main::@9
|
|
[54] main::min_offset#9 = main::min_offset#2
|
|
to:main::@8
|
|
main::@18: scope:[main] from main::@6
|
|
[55] main::min_offset#11 = main::min_offset#2
|
|
to:main::@8
|
|
|
|
void init_dist_screen(byte* init_dist_screen::screen)
|
|
init_dist_screen: scope:[init_dist_screen] from main
|
|
[56] phi()
|
|
[57] call init_squares
|
|
to:init_dist_screen::@11
|
|
init_dist_screen::@11: scope:[init_dist_screen] from init_dist_screen
|
|
[58] init_dist_screen::screen_bottomline#0 = init_dist_screen::screen#0 + (word)$28*$18
|
|
to:init_dist_screen::@1
|
|
init_dist_screen::@1: scope:[init_dist_screen] from init_dist_screen::@11 init_dist_screen::@7
|
|
[59] init_dist_screen::screen_bottomline#11 = phi( init_dist_screen::@11/init_dist_screen::screen_bottomline#0, init_dist_screen::@7/init_dist_screen::screen_bottomline#1 )
|
|
[59] init_dist_screen::screen_topline#11 = phi( init_dist_screen::@11/init_dist_screen::screen#0, init_dist_screen::@7/init_dist_screen::screen_topline#1 )
|
|
[59] init_dist_screen::y#10 = phi( init_dist_screen::@11/0, init_dist_screen::@7/init_dist_screen::y#1 )
|
|
[60] init_dist_screen::y2#0 = init_dist_screen::y#10 << 1
|
|
[61] if(init_dist_screen::y2#0>=$18) goto init_dist_screen::@2
|
|
to:init_dist_screen::@3
|
|
init_dist_screen::@3: scope:[init_dist_screen] from init_dist_screen::@1
|
|
[62] init_dist_screen::$5 = $18 - init_dist_screen::y2#0
|
|
to:init_dist_screen::@4
|
|
init_dist_screen::@4: scope:[init_dist_screen] from init_dist_screen::@2 init_dist_screen::@3
|
|
[63] init_dist_screen::yd#0 = phi( init_dist_screen::@2/init_dist_screen::$7, init_dist_screen::@3/init_dist_screen::$5 )
|
|
[64] sqr::val#0 = init_dist_screen::yd#0
|
|
[65] call sqr
|
|
[66] sqr::return#2 = sqr::return#0
|
|
to:init_dist_screen::@12
|
|
init_dist_screen::@12: scope:[init_dist_screen] from init_dist_screen::@4
|
|
[67] init_dist_screen::yds#0 = sqr::return#2
|
|
to:init_dist_screen::@5
|
|
init_dist_screen::@5: scope:[init_dist_screen] from init_dist_screen::@12 init_dist_screen::@14
|
|
[68] init_dist_screen::xb#2 = phi( init_dist_screen::@12/$27, init_dist_screen::@14/init_dist_screen::xb#1 )
|
|
[68] init_dist_screen::x#2 = phi( init_dist_screen::@12/0, init_dist_screen::@14/init_dist_screen::x#1 )
|
|
[69] if(init_dist_screen::x#2<$13+1) goto init_dist_screen::@6
|
|
to:init_dist_screen::@7
|
|
init_dist_screen::@7: scope:[init_dist_screen] from init_dist_screen::@5
|
|
[70] init_dist_screen::screen_topline#1 = init_dist_screen::screen_topline#11 + $28
|
|
[71] init_dist_screen::screen_bottomline#1 = init_dist_screen::screen_bottomline#11 - $28
|
|
[72] init_dist_screen::y#1 = ++ init_dist_screen::y#10
|
|
[73] if(init_dist_screen::y#1!=$d) goto init_dist_screen::@1
|
|
to:init_dist_screen::@return
|
|
init_dist_screen::@return: scope:[init_dist_screen] from init_dist_screen::@7
|
|
[74] return
|
|
to:@return
|
|
init_dist_screen::@6: scope:[init_dist_screen] from init_dist_screen::@5
|
|
[75] init_dist_screen::x2#0 = init_dist_screen::x#2 << 1
|
|
[76] if(init_dist_screen::x2#0>=$27) goto init_dist_screen::@8
|
|
to:init_dist_screen::@9
|
|
init_dist_screen::@9: scope:[init_dist_screen] from init_dist_screen::@6
|
|
[77] init_dist_screen::$14 = $27 - init_dist_screen::x2#0
|
|
to:init_dist_screen::@10
|
|
init_dist_screen::@10: scope:[init_dist_screen] from init_dist_screen::@8 init_dist_screen::@9
|
|
[78] init_dist_screen::xd#0 = phi( init_dist_screen::@8/init_dist_screen::$16, init_dist_screen::@9/init_dist_screen::$14 )
|
|
[79] sqr::val#1 = init_dist_screen::xd#0
|
|
[80] call sqr
|
|
[81] sqr::return#3 = sqr::return#0
|
|
to:init_dist_screen::@13
|
|
init_dist_screen::@13: scope:[init_dist_screen] from init_dist_screen::@10
|
|
[82] init_dist_screen::xds#0 = sqr::return#3
|
|
[83] init_dist_screen::ds#0 = init_dist_screen::xds#0 + init_dist_screen::yds#0
|
|
[84] sqrt::val#0 = init_dist_screen::ds#0
|
|
[85] call sqrt
|
|
[86] sqrt::return#2 = sqrt::return#0
|
|
to:init_dist_screen::@14
|
|
init_dist_screen::@14: scope:[init_dist_screen] from init_dist_screen::@13
|
|
[87] init_dist_screen::d#0 = sqrt::return#2
|
|
[88] init_dist_screen::screen_topline#11[init_dist_screen::x#2] = init_dist_screen::d#0
|
|
[89] init_dist_screen::screen_bottomline#11[init_dist_screen::x#2] = init_dist_screen::d#0
|
|
[90] init_dist_screen::screen_topline#11[init_dist_screen::xb#2] = init_dist_screen::d#0
|
|
[91] init_dist_screen::screen_bottomline#11[init_dist_screen::xb#2] = init_dist_screen::d#0
|
|
[92] init_dist_screen::x#1 = ++ init_dist_screen::x#2
|
|
[93] init_dist_screen::xb#1 = -- init_dist_screen::xb#2
|
|
to:init_dist_screen::@5
|
|
init_dist_screen::@8: scope:[init_dist_screen] from init_dist_screen::@6
|
|
[94] init_dist_screen::$16 = init_dist_screen::x2#0 - $27
|
|
to:init_dist_screen::@10
|
|
init_dist_screen::@2: scope:[init_dist_screen] from init_dist_screen::@1
|
|
[95] init_dist_screen::$7 = init_dist_screen::y2#0 - $18
|
|
to:init_dist_screen::@4
|
|
|
|
void init_angle_screen(byte* init_angle_screen::screen)
|
|
init_angle_screen: scope:[init_angle_screen] from main::@15
|
|
[96] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (word)$28*$c
|
|
[97] init_angle_screen::screen_topline#7 = init_angle_screen::screen_bottomline#0
|
|
to:init_angle_screen::@1
|
|
init_angle_screen::@1: scope:[init_angle_screen] from init_angle_screen init_angle_screen::@4
|
|
[98] init_angle_screen::screen_bottomline#6 = phi( init_angle_screen/init_angle_screen::screen_bottomline#0, init_angle_screen::@4/init_angle_screen::screen_bottomline#1 )
|
|
[98] init_angle_screen::screen_topline#6 = phi( init_angle_screen/init_angle_screen::screen_topline#7, init_angle_screen::@4/init_angle_screen::screen_topline#1 )
|
|
[98] init_angle_screen::y#5 = phi( init_angle_screen/0, init_angle_screen::@4/init_angle_screen::y#1 )
|
|
to:init_angle_screen::@2
|
|
init_angle_screen::@2: scope:[init_angle_screen] from init_angle_screen::@1 init_angle_screen::@5
|
|
[99] init_angle_screen::xb#2 = phi( init_angle_screen::@1/$27, init_angle_screen::@5/init_angle_screen::xb#1 )
|
|
[99] init_angle_screen::x#2 = phi( init_angle_screen::@1/0, init_angle_screen::@5/init_angle_screen::x#1 )
|
|
[100] if(init_angle_screen::x#2<$13+1) goto init_angle_screen::@3
|
|
to:init_angle_screen::@4
|
|
init_angle_screen::@4: scope:[init_angle_screen] from init_angle_screen::@2
|
|
[101] init_angle_screen::screen_topline#1 = init_angle_screen::screen_topline#6 - $28
|
|
[102] init_angle_screen::screen_bottomline#1 = init_angle_screen::screen_bottomline#6 + $28
|
|
[103] init_angle_screen::y#1 = ++ init_angle_screen::y#5
|
|
[104] if(init_angle_screen::y#1!=$d) goto init_angle_screen::@1
|
|
to:init_angle_screen::@return
|
|
init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@4
|
|
[105] return
|
|
to:@return
|
|
init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2
|
|
[106] init_angle_screen::$3 = init_angle_screen::x#2 << 1
|
|
[107] init_angle_screen::$4 = $27 - init_angle_screen::$3
|
|
[108] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0
|
|
[109] init_angle_screen::$5 = init_angle_screen::y#5 << 1
|
|
[110] init_angle_screen::yw#0 = init_angle_screen::$5 w= 0
|
|
[111] atan2_16::x#0 = (signed word)init_angle_screen::xw#0
|
|
[112] atan2_16::y#0 = (signed word)init_angle_screen::yw#0
|
|
[113] call atan2_16
|
|
[114] atan2_16::return#2 = atan2_16::return#0
|
|
to:init_angle_screen::@5
|
|
init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3
|
|
[115] init_angle_screen::angle_w#0 = atan2_16::return#2
|
|
[116] init_angle_screen::$7 = init_angle_screen::angle_w#0 + $80
|
|
[117] init_angle_screen::ang_w#0 = > init_angle_screen::$7
|
|
[118] init_angle_screen::screen_bottomline#6[init_angle_screen::xb#2] = init_angle_screen::ang_w#0
|
|
[119] init_angle_screen::$9 = - init_angle_screen::ang_w#0
|
|
[120] init_angle_screen::screen_topline#6[init_angle_screen::xb#2] = init_angle_screen::$9
|
|
[121] init_angle_screen::$10 = $80 + init_angle_screen::ang_w#0
|
|
[122] init_angle_screen::screen_topline#6[init_angle_screen::x#2] = init_angle_screen::$10
|
|
[123] init_angle_screen::$11 = $80 - init_angle_screen::ang_w#0
|
|
[124] init_angle_screen::screen_bottomline#6[init_angle_screen::x#2] = init_angle_screen::$11
|
|
[125] init_angle_screen::x#1 = ++ init_angle_screen::x#2
|
|
[126] init_angle_screen::xb#1 = -- init_angle_screen::xb#2
|
|
to:init_angle_screen::@2
|
|
|
|
void init_buckets(byte* init_buckets::screen)
|
|
init_buckets: scope:[init_buckets] from main::@16
|
|
[127] phi()
|
|
to:init_buckets::@1
|
|
init_buckets::@1: scope:[init_buckets] from init_buckets init_buckets::@1
|
|
[128] init_buckets::i#2 = phi( init_buckets/0, init_buckets::@1/init_buckets::i#1 )
|
|
[129] ((byte*)BUCKET_SIZES#0)[init_buckets::i#2] = 0
|
|
[130] init_buckets::i#1 = ++ init_buckets::i#2
|
|
[131] if(init_buckets::i#1!=NUM_BUCKETS-1+1) goto init_buckets::@1
|
|
to:init_buckets::@2
|
|
init_buckets::@2: scope:[init_buckets] from init_buckets::@1
|
|
[132] init_buckets::dist#6 = init_buckets::screen#0
|
|
to:init_buckets::@3
|
|
init_buckets::@3: scope:[init_buckets] from init_buckets::@2 init_buckets::@3
|
|
[133] init_buckets::i1#2 = phi( init_buckets::@2/0, init_buckets::@3/init_buckets::i1#1 )
|
|
[133] init_buckets::dist#4 = phi( init_buckets::@2/init_buckets::dist#6, init_buckets::@3/init_buckets::dist#1 )
|
|
[134] ((byte*)BUCKET_SIZES#0)[*init_buckets::dist#4] = ++ ((byte*)BUCKET_SIZES#0)[*init_buckets::dist#4]
|
|
[135] init_buckets::dist#1 = ++ init_buckets::dist#4
|
|
[136] init_buckets::i1#1 = ++ init_buckets::i1#2
|
|
[137] if(init_buckets::i1#1!=$3e8) goto init_buckets::@3
|
|
to:init_buckets::@4
|
|
init_buckets::@4: scope:[init_buckets] from init_buckets::@3 init_buckets::@8
|
|
[138] init_buckets::i2#2 = phi( init_buckets::@8/init_buckets::i2#1, init_buckets::@3/0 )
|
|
[139] init_buckets::$15 = (byte*)BUCKET_SIZES#0 + init_buckets::i2#2
|
|
[140] malloc::size#1 = *init_buckets::$15 << 1
|
|
[141] call malloc
|
|
to:init_buckets::@8
|
|
init_buckets::@8: scope:[init_buckets] from init_buckets::@4
|
|
[142] init_buckets::$4 = (void*)malloc::mem#0
|
|
[143] init_buckets::$11 = init_buckets::i2#2 << 1
|
|
[144] init_buckets::$16 = (word**)BUCKETS#0 + init_buckets::$11
|
|
[145] *init_buckets::$16 = (word*)init_buckets::$4
|
|
[146] init_buckets::i2#1 = ++ init_buckets::i2#2
|
|
[147] if(init_buckets::i2#1!=NUM_BUCKETS-1+1) goto init_buckets::@4
|
|
to:init_buckets::@5
|
|
init_buckets::@5: scope:[init_buckets] from init_buckets::@5 init_buckets::@8
|
|
[148] init_buckets::i3#2 = phi( init_buckets::@8/0, init_buckets::@5/init_buckets::i3#1 )
|
|
[149] ((byte*)BUCKET_IDX#0)[init_buckets::i3#2] = 0
|
|
[150] init_buckets::i3#1 = ++ init_buckets::i3#2
|
|
[151] if(init_buckets::i3#1!=NUM_BUCKETS-1+1) goto init_buckets::@5
|
|
to:init_buckets::@6
|
|
init_buckets::@6: scope:[init_buckets] from init_buckets::@5
|
|
[152] init_buckets::dist#8 = init_buckets::screen#0
|
|
to:init_buckets::@7
|
|
init_buckets::@7: scope:[init_buckets] from init_buckets::@6 init_buckets::@7
|
|
[153] init_buckets::i4#2 = phi( init_buckets::@6/0, init_buckets::@7/init_buckets::i4#1 )
|
|
[153] init_buckets::dist#5 = phi( init_buckets::@6/init_buckets::dist#8, init_buckets::@7/init_buckets::dist#3 )
|
|
[154] init_buckets::distance#0 = *init_buckets::dist#5
|
|
[155] init_buckets::$14 = (word)init_buckets::distance#0
|
|
[156] init_buckets::$12 = init_buckets::$14 << 1
|
|
[157] init_buckets::$17 = (word**)BUCKETS#0 + init_buckets::$12
|
|
[158] init_buckets::bucket#0 = *init_buckets::$17
|
|
[159] init_buckets::$7 = init_buckets::dist#5 - init_buckets::screen#0
|
|
[160] init_buckets::$13 = ((byte*)BUCKET_IDX#0)[init_buckets::distance#0] << 1
|
|
[161] init_buckets::bucket#0[init_buckets::$13] = init_buckets::$7
|
|
[162] ((byte*)BUCKET_IDX#0)[init_buckets::distance#0] = ++ ((byte*)BUCKET_IDX#0)[init_buckets::distance#0]
|
|
[163] init_buckets::dist#3 = ++ init_buckets::dist#5
|
|
[164] init_buckets::i4#1 = ++ init_buckets::i4#2
|
|
[165] if(init_buckets::i4#1!=$3e8) goto init_buckets::@7
|
|
to:init_buckets::@return
|
|
init_buckets::@return: scope:[init_buckets] from init_buckets::@7
|
|
[166] return
|
|
to:@return
|
|
|
|
void init_squares()
|
|
init_squares: scope:[init_squares] from init_dist_screen
|
|
[167] phi()
|
|
[168] call malloc
|
|
to:init_squares::@3
|
|
init_squares::@3: scope:[init_squares] from init_squares
|
|
[169] SQUARES#0 = (void*)malloc::mem#0
|
|
[170] init_squares::squares#0 = (word*)SQUARES#0
|
|
to:init_squares::@1
|
|
init_squares::@1: scope:[init_squares] from init_squares::@2 init_squares::@3
|
|
[171] init_squares::squares#2 = phi( init_squares::@2/init_squares::squares#1, init_squares::@3/init_squares::squares#0 )
|
|
[171] init_squares::sqr#2 = phi( init_squares::@2/init_squares::sqr#1, init_squares::@3/0 )
|
|
[171] init_squares::i#2 = phi( init_squares::@2/init_squares::i#1, init_squares::@3/0 )
|
|
[172] if(init_squares::i#2<NUM_SQUARES#2) goto init_squares::@2
|
|
to:init_squares::@return
|
|
init_squares::@return: scope:[init_squares] from init_squares::@1
|
|
[173] return
|
|
to:@return
|
|
init_squares::@2: scope:[init_squares] from init_squares::@1
|
|
[174] *init_squares::squares#2 = init_squares::sqr#2
|
|
[175] init_squares::squares#1 = init_squares::squares#2 + SIZEOF_WORD
|
|
[176] init_squares::$3 = init_squares::i#2 << 1
|
|
[177] init_squares::$4 = init_squares::$3 + 1
|
|
[178] init_squares::sqr#1 = init_squares::sqr#2 + init_squares::$4
|
|
[179] init_squares::i#1 = ++ init_squares::i#2
|
|
to:init_squares::@1
|
|
|
|
word sqr(byte sqr::val)
|
|
sqr: scope:[sqr] from init_dist_screen::@10 init_dist_screen::@4
|
|
[180] sqr::val#2 = phi( init_dist_screen::@10/sqr::val#1, init_dist_screen::@4/sqr::val#0 )
|
|
[181] sqr::$0 = sqr::val#2 << 1
|
|
[182] sqr::return#0 = ((word*)SQUARES#0)[sqr::$0]
|
|
to:sqr::@return
|
|
sqr::@return: scope:[sqr] from sqr
|
|
[183] return
|
|
to:@return
|
|
|
|
byte sqrt(word sqrt::val)
|
|
sqrt: scope:[sqrt] from init_dist_screen::@13
|
|
[184] bsearch16u::key#0 = sqrt::val#0
|
|
[185] bsearch16u::items#1 = (word*)SQUARES#0
|
|
[186] call bsearch16u
|
|
[187] bsearch16u::return#3 = bsearch16u::return#1
|
|
to:sqrt::@1
|
|
sqrt::@1: scope:[sqrt] from sqrt
|
|
[188] sqrt::found#0 = bsearch16u::return#3
|
|
[189] sqrt::$2 = sqrt::found#0 - (word*)SQUARES#0
|
|
[190] sqrt::$1 = sqrt::$2 >> 1
|
|
[191] sqrt::return#0 = (byte)sqrt::$1
|
|
to:sqrt::@return
|
|
sqrt::@return: scope:[sqrt] from sqrt::@1
|
|
[192] return
|
|
to:@return
|
|
|
|
word atan2_16(signed word atan2_16::x , signed word atan2_16::y)
|
|
atan2_16: scope:[atan2_16] from init_angle_screen::@3
|
|
[193] if(atan2_16::y#0>=0) goto atan2_16::@1
|
|
to:atan2_16::@2
|
|
atan2_16::@2: scope:[atan2_16] from atan2_16
|
|
[194] atan2_16::$2 = - atan2_16::y#0
|
|
to:atan2_16::@3
|
|
atan2_16::@3: scope:[atan2_16] from atan2_16::@1 atan2_16::@2
|
|
[195] atan2_16::yi#0 = phi( atan2_16::@1/atan2_16::yi#16, atan2_16::@2/atan2_16::$2 )
|
|
[196] if(atan2_16::x#0>=0) goto atan2_16::@4
|
|
to:atan2_16::@5
|
|
atan2_16::@5: scope:[atan2_16] from atan2_16::@3
|
|
[197] atan2_16::$7 = - atan2_16::x#0
|
|
to:atan2_16::@6
|
|
atan2_16::@6: scope:[atan2_16] from atan2_16::@4 atan2_16::@5
|
|
[198] atan2_16::xi#0 = phi( atan2_16::@4/atan2_16::xi#13, atan2_16::@5/atan2_16::$7 )
|
|
to:atan2_16::@10
|
|
atan2_16::@10: scope:[atan2_16] from atan2_16::@19 atan2_16::@6
|
|
[199] atan2_16::angle#12 = phi( atan2_16::@19/atan2_16::angle#13, atan2_16::@6/0 )
|
|
[199] atan2_16::i#2 = phi( atan2_16::@19/atan2_16::i#1, atan2_16::@6/0 )
|
|
[199] atan2_16::xi#3 = phi( atan2_16::@19/atan2_16::xi#8, atan2_16::@6/atan2_16::xi#0 )
|
|
[199] atan2_16::yi#3 = phi( atan2_16::@19/atan2_16::yi#8, atan2_16::@6/atan2_16::yi#0 )
|
|
[200] if(atan2_16::yi#3!=0) goto atan2_16::@11
|
|
to:atan2_16::@12
|
|
atan2_16::@12: scope:[atan2_16] from atan2_16::@10 atan2_16::@19
|
|
[201] atan2_16::angle#6 = phi( atan2_16::@10/atan2_16::angle#12, atan2_16::@19/atan2_16::angle#13 )
|
|
[202] atan2_16::angle#1 = atan2_16::angle#6 >> 1
|
|
[203] if(atan2_16::x#0>=0) goto atan2_16::@7
|
|
to:atan2_16::@21
|
|
atan2_16::@21: scope:[atan2_16] from atan2_16::@12
|
|
[204] atan2_16::angle#4 = $8000 - atan2_16::angle#1
|
|
to:atan2_16::@7
|
|
atan2_16::@7: scope:[atan2_16] from atan2_16::@12 atan2_16::@21
|
|
[205] atan2_16::angle#11 = phi( atan2_16::@12/atan2_16::angle#1, atan2_16::@21/atan2_16::angle#4 )
|
|
[206] if(atan2_16::y#0>=0) goto atan2_16::@8
|
|
to:atan2_16::@9
|
|
atan2_16::@9: scope:[atan2_16] from atan2_16::@7
|
|
[207] atan2_16::angle#5 = - atan2_16::angle#11
|
|
to:atan2_16::@8
|
|
atan2_16::@8: scope:[atan2_16] from atan2_16::@7 atan2_16::@9
|
|
[208] atan2_16::return#0 = phi( atan2_16::@7/atan2_16::angle#11, atan2_16::@9/atan2_16::angle#5 )
|
|
to:atan2_16::@return
|
|
atan2_16::@return: scope:[atan2_16] from atan2_16::@8
|
|
[209] return
|
|
to:@return
|
|
atan2_16::@11: scope:[atan2_16] from atan2_16::@10
|
|
[210] atan2_16::shift#5 = atan2_16::i#2
|
|
[211] atan2_16::xd#10 = atan2_16::xi#3
|
|
[212] atan2_16::yd#10 = atan2_16::yi#3
|
|
to:atan2_16::@13
|
|
atan2_16::@13: scope:[atan2_16] from atan2_16::@11 atan2_16::@14
|
|
[213] atan2_16::yd#3 = phi( atan2_16::@11/atan2_16::yd#10, atan2_16::@14/atan2_16::yd#1 )
|
|
[213] atan2_16::xd#3 = phi( atan2_16::@11/atan2_16::xd#10, atan2_16::@14/atan2_16::xd#1 )
|
|
[213] atan2_16::shift#2 = phi( atan2_16::@11/atan2_16::shift#5, atan2_16::@14/atan2_16::shift#1 )
|
|
[214] if(atan2_16::shift#2>=2) goto atan2_16::@14
|
|
to:atan2_16::@15
|
|
atan2_16::@15: scope:[atan2_16] from atan2_16::@13
|
|
[215] if(0==atan2_16::shift#2) goto atan2_16::@17
|
|
to:atan2_16::@16
|
|
atan2_16::@16: scope:[atan2_16] from atan2_16::@15
|
|
[216] atan2_16::xd#2 = atan2_16::xd#3 >> 1
|
|
[217] atan2_16::yd#2 = atan2_16::yd#3 >> 1
|
|
to:atan2_16::@17
|
|
atan2_16::@17: scope:[atan2_16] from atan2_16::@15 atan2_16::@16
|
|
[218] atan2_16::xd#5 = phi( atan2_16::@15/atan2_16::xd#3, atan2_16::@16/atan2_16::xd#2 )
|
|
[218] atan2_16::yd#5 = phi( atan2_16::@15/atan2_16::yd#3, atan2_16::@16/atan2_16::yd#2 )
|
|
[219] if(atan2_16::yi#3>=0) goto atan2_16::@18
|
|
to:atan2_16::@20
|
|
atan2_16::@20: scope:[atan2_16] from atan2_16::@17
|
|
[220] atan2_16::xi#2 = atan2_16::xi#3 - atan2_16::yd#5
|
|
[221] atan2_16::yi#2 = atan2_16::yi#3 + atan2_16::xd#5
|
|
[222] atan2_16::$23 = atan2_16::i#2 << 1
|
|
[223] atan2_16::angle#3 = atan2_16::angle#12 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23]
|
|
to:atan2_16::@19
|
|
atan2_16::@19: scope:[atan2_16] from atan2_16::@18 atan2_16::@20
|
|
[224] atan2_16::xi#8 = phi( atan2_16::@18/atan2_16::xi#1, atan2_16::@20/atan2_16::xi#2 )
|
|
[224] atan2_16::angle#13 = phi( atan2_16::@18/atan2_16::angle#2, atan2_16::@20/atan2_16::angle#3 )
|
|
[224] atan2_16::yi#8 = phi( atan2_16::@18/atan2_16::yi#1, atan2_16::@20/atan2_16::yi#2 )
|
|
[225] atan2_16::i#1 = ++ atan2_16::i#2
|
|
[226] if(atan2_16::i#1==CORDIC_ITERATIONS_16-1+1) goto atan2_16::@12
|
|
to:atan2_16::@10
|
|
atan2_16::@18: scope:[atan2_16] from atan2_16::@17
|
|
[227] atan2_16::xi#1 = atan2_16::xi#3 + atan2_16::yd#5
|
|
[228] atan2_16::yi#1 = atan2_16::yi#3 - atan2_16::xd#5
|
|
[229] atan2_16::$22 = atan2_16::i#2 << 1
|
|
[230] atan2_16::angle#2 = atan2_16::angle#12 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22]
|
|
to:atan2_16::@19
|
|
atan2_16::@14: scope:[atan2_16] from atan2_16::@13
|
|
[231] atan2_16::xd#1 = atan2_16::xd#3 >> 2
|
|
[232] atan2_16::yd#1 = atan2_16::yd#3 >> 2
|
|
[233] atan2_16::shift#1 = atan2_16::shift#2 - 2
|
|
to:atan2_16::@13
|
|
atan2_16::@4: scope:[atan2_16] from atan2_16::@3
|
|
[234] atan2_16::xi#13 = atan2_16::x#0
|
|
to:atan2_16::@6
|
|
atan2_16::@1: scope:[atan2_16] from atan2_16
|
|
[235] atan2_16::yi#16 = atan2_16::y#0
|
|
to:atan2_16::@3
|
|
|
|
word* bsearch16u(word bsearch16u::key , word* bsearch16u::items , byte bsearch16u::num)
|
|
bsearch16u: scope:[bsearch16u] from sqrt
|
|
[236] phi()
|
|
to:bsearch16u::@3
|
|
bsearch16u::@3: scope:[bsearch16u] from bsearch16u bsearch16u::@7
|
|
[237] bsearch16u::items#2 = phi( bsearch16u/bsearch16u::items#1, bsearch16u::@7/bsearch16u::items#8 )
|
|
[237] bsearch16u::num#3 = phi( bsearch16u/NUM_SQUARES#2, bsearch16u::@7/bsearch16u::num#0 )
|
|
[238] if(bsearch16u::num#3>0) goto bsearch16u::@4
|
|
to:bsearch16u::@5
|
|
bsearch16u::@5: scope:[bsearch16u] from bsearch16u::@3
|
|
[239] if(*bsearch16u::items#2<=bsearch16u::key#0) goto bsearch16u::@2
|
|
to:bsearch16u::@1
|
|
bsearch16u::@1: scope:[bsearch16u] from bsearch16u::@5
|
|
[240] bsearch16u::$2 = bsearch16u::items#2 - 1*SIZEOF_WORD
|
|
to:bsearch16u::@2
|
|
bsearch16u::@2: scope:[bsearch16u] from bsearch16u::@1 bsearch16u::@5
|
|
[241] bsearch16u::return#2 = phi( bsearch16u::@5/bsearch16u::items#2, bsearch16u::@1/bsearch16u::$2 )
|
|
to:bsearch16u::@return
|
|
bsearch16u::@return: scope:[bsearch16u] from bsearch16u::@2 bsearch16u::@8
|
|
[242] bsearch16u::return#1 = phi( bsearch16u::@2/bsearch16u::return#2, bsearch16u::@8/bsearch16u::return#7 )
|
|
[243] return
|
|
to:@return
|
|
bsearch16u::@4: scope:[bsearch16u] from bsearch16u::@3
|
|
[244] bsearch16u::$6 = bsearch16u::num#3 >> 1
|
|
[245] bsearch16u::$14 = bsearch16u::$6 << 1
|
|
[246] bsearch16u::pivot#0 = bsearch16u::items#2 + bsearch16u::$14
|
|
[247] bsearch16u::result#0 = (signed word)bsearch16u::key#0 - (signed word)*bsearch16u::pivot#0
|
|
[248] if(bsearch16u::result#0!=0) goto bsearch16u::@6
|
|
to:bsearch16u::@8
|
|
bsearch16u::@8: scope:[bsearch16u] from bsearch16u::@4
|
|
[249] bsearch16u::return#7 = bsearch16u::pivot#0
|
|
to:bsearch16u::@return
|
|
bsearch16u::@6: scope:[bsearch16u] from bsearch16u::@4
|
|
[250] if(bsearch16u::result#0<=0) goto bsearch16u::@7
|
|
to:bsearch16u::@9
|
|
bsearch16u::@9: scope:[bsearch16u] from bsearch16u::@6
|
|
[251] bsearch16u::items#0 = bsearch16u::pivot#0 + 1*SIZEOF_WORD
|
|
[252] bsearch16u::num#1 = -- bsearch16u::num#3
|
|
to:bsearch16u::@7
|
|
bsearch16u::@7: scope:[bsearch16u] from bsearch16u::@6 bsearch16u::@9
|
|
[253] bsearch16u::items#8 = phi( bsearch16u::@9/bsearch16u::items#0, bsearch16u::@6/bsearch16u::items#2 )
|
|
[253] bsearch16u::num#5 = phi( bsearch16u::@9/bsearch16u::num#1, bsearch16u::@6/bsearch16u::num#3 )
|
|
[254] bsearch16u::num#0 = bsearch16u::num#5 >> 1
|
|
to:bsearch16u::@3
|