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