1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-21 17:24:39 +00:00
kickc/src/test/ref/cordic-atan2.cfg

166 lines
9.5 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 init_font_hex
to:main::toD0181
main::toD0181: scope:[main] from main
[6] phi()
to:main::@5
main::@5: scope:[main] from main::toD0181
[7] *((const nomodify byte*) D018) ← (const byte) main::toD0181_return#0
to:main::@1
main::@1: scope:[main] from main::@3 main::@5
[8] (byte*) main::screen#4 ← phi( main::@3/(byte*) main::screen#1 main::@5/(const nomodify byte*) SCREEN )
[8] (signed byte) main::y#4 ← phi( main::@3/(signed byte) main::y#1 main::@5/(signed byte) -$c )
to:main::@2
main::@2: scope:[main] from main::@1 main::@6
[9] (byte*) main::screen#2 ← phi( main::@1/(byte*) main::screen#4 main::@6/(byte*) main::screen#1 )
[9] (signed byte) main::x#2 ← phi( main::@1/(signed byte) -$13 main::@6/(signed byte) main::x#1 )
[10] (signed byte) atan2_8::x#0 ← (signed byte) main::x#2
[11] (signed byte) atan2_8::y#0 ← (signed byte) main::y#4
[12] call atan2_8
[13] (byte) atan2_8::return#2 ← (byte) atan2_8::return#0
to:main::@6
main::@6: scope:[main] from main::@2
[14] (byte) main::angle#0 ← (byte) atan2_8::return#2
[15] *((byte*) main::screen#2) ← (byte) main::angle#0
[16] (byte*) main::screen#1 ← ++ (byte*) main::screen#2
[17] (signed byte) main::x#1 ← ++ (signed byte) main::x#2
[18] if((signed byte) main::x#1!=(signed byte) $15) goto main::@2
to:main::@3
main::@3: scope:[main] from main::@6
[19] (signed byte) main::y#1 ← ++ (signed byte) main::y#4
[20] if((signed byte) main::y#1!=(signed byte) $d) goto main::@1
to:main::@4
main::@4: scope:[main] from main::@3 main::@4
[21] *((const byte*) main::col00) ← ++ *((const byte*) main::col00)
to:main::@4
(byte()) atan2_8((signed byte) atan2_8::x , (signed byte) atan2_8::y)
atan2_8: scope:[atan2_8] from main::@2
[22] if((signed byte) atan2_8::y#0>(signed byte) 0) goto atan2_8::@1
to:atan2_8::@2
atan2_8::@2: scope:[atan2_8] from atan2_8
[23] (signed byte~) atan2_8::$2 ← - (signed byte) atan2_8::y#0
to:atan2_8::@3
atan2_8::@3: scope:[atan2_8] from atan2_8::@1 atan2_8::@2
[24] (signed byte) atan2_8::yi#0 ← phi( atan2_8::@1/(signed byte) atan2_8::yi#11 atan2_8::@2/(signed byte~) atan2_8::$2 )
[25] if((signed byte) atan2_8::x#0>(signed byte) 0) goto atan2_8::@4
to:atan2_8::@5
atan2_8::@5: scope:[atan2_8] from atan2_8::@3
[26] (signed byte~) atan2_8::$7 ← - (signed byte) atan2_8::x#0
to:atan2_8::@6
atan2_8::@6: scope:[atan2_8] from atan2_8::@4 atan2_8::@5
[27] (signed byte) atan2_8::xi#0 ← phi( atan2_8::@4/(signed byte) atan2_8::xi#8 atan2_8::@5/(signed byte~) atan2_8::$7 )
to:atan2_8::@10
atan2_8::@10: scope:[atan2_8] from atan2_8::@14 atan2_8::@6
[28] (byte) atan2_8::angle#12 ← phi( atan2_8::@14/(byte) atan2_8::angle#13 atan2_8::@6/(byte) 0 )
[28] (byte) atan2_8::i#2 ← phi( atan2_8::@14/(byte) atan2_8::i#1 atan2_8::@6/(byte) 0 )
[28] (signed byte) atan2_8::xi#3 ← phi( atan2_8::@14/(signed byte) atan2_8::xi#7 atan2_8::@6/(signed byte) atan2_8::xi#0 )
[28] (signed byte) atan2_8::yi#3 ← phi( atan2_8::@14/(signed byte) atan2_8::yi#7 atan2_8::@6/(signed byte) atan2_8::yi#0 )
[29] if((signed byte) atan2_8::yi#3!=(signed byte) 0) goto atan2_8::@11
to:atan2_8::@12
atan2_8::@12: scope:[atan2_8] from atan2_8::@10 atan2_8::@14
[30] (byte) atan2_8::angle#6 ← phi( atan2_8::@10/(byte) atan2_8::angle#12 atan2_8::@14/(byte) atan2_8::angle#13 )
[31] (byte) atan2_8::angle#1 ← (byte) atan2_8::angle#6 >> (byte) 1
[32] if((signed byte) atan2_8::x#0>=(signed byte) 0) goto atan2_8::@7
to:atan2_8::@16
atan2_8::@16: scope:[atan2_8] from atan2_8::@12
[33] (byte) atan2_8::angle#4 ← (byte) $80 - (byte) atan2_8::angle#1
to:atan2_8::@7
atan2_8::@7: scope:[atan2_8] from atan2_8::@12 atan2_8::@16
[34] (byte) atan2_8::angle#11 ← phi( atan2_8::@12/(byte) atan2_8::angle#1 atan2_8::@16/(byte) atan2_8::angle#4 )
[35] if((signed byte) atan2_8::y#0>=(signed byte) 0) goto atan2_8::@8
to:atan2_8::@9
atan2_8::@9: scope:[atan2_8] from atan2_8::@7
[36] (byte) atan2_8::angle#5 ← - (byte) atan2_8::angle#11
to:atan2_8::@8
atan2_8::@8: scope:[atan2_8] from atan2_8::@7 atan2_8::@9
[37] (byte) atan2_8::return#0 ← phi( atan2_8::@7/(byte) atan2_8::angle#11 atan2_8::@9/(byte) atan2_8::angle#5 )
to:atan2_8::@return
atan2_8::@return: scope:[atan2_8] from atan2_8::@8
[38] return
to:@return
atan2_8::@11: scope:[atan2_8] from atan2_8::@10
[39] (signed byte) atan2_8::xd#0 ← (signed byte) atan2_8::xi#3 >> (byte) atan2_8::i#2
[40] (signed byte) atan2_8::yd#0 ← (signed byte) atan2_8::yi#3 >> (byte) atan2_8::i#2
[41] if((signed byte) atan2_8::yi#3>(signed byte) 0) goto atan2_8::@13
to:atan2_8::@15
atan2_8::@15: scope:[atan2_8] from atan2_8::@11
[42] (signed byte) atan2_8::xi#2 ← (signed byte) atan2_8::xi#3 - (signed byte) atan2_8::yd#0
[43] (signed byte) atan2_8::yi#2 ← (signed byte) atan2_8::yi#3 + (signed byte) atan2_8::xd#0
[44] (byte) atan2_8::angle#3 ← (byte) atan2_8::angle#12 - *((const byte*) CORDIC_ATAN2_ANGLES_8 + (byte) atan2_8::i#2)
to:atan2_8::@14
atan2_8::@14: scope:[atan2_8] from atan2_8::@13 atan2_8::@15
[45] (signed byte) atan2_8::xi#7 ← phi( atan2_8::@13/(signed byte) atan2_8::xi#1 atan2_8::@15/(signed byte) atan2_8::xi#2 )
[45] (byte) atan2_8::angle#13 ← phi( atan2_8::@13/(byte) atan2_8::angle#2 atan2_8::@15/(byte) atan2_8::angle#3 )
[45] (signed byte) atan2_8::yi#7 ← phi( atan2_8::@13/(signed byte) atan2_8::yi#1 atan2_8::@15/(signed byte) atan2_8::yi#2 )
[46] (byte) atan2_8::i#1 ← ++ (byte) atan2_8::i#2
[47] if((byte) atan2_8::i#1==(const nomodify byte) CORDIC_ITERATIONS_8-(byte) 1+(byte) 1) goto atan2_8::@12
to:atan2_8::@10
atan2_8::@13: scope:[atan2_8] from atan2_8::@11
[48] (signed byte) atan2_8::xi#1 ← (signed byte) atan2_8::xi#3 + (signed byte) atan2_8::yd#0
[49] (signed byte) atan2_8::yi#1 ← (signed byte) atan2_8::yi#3 - (signed byte) atan2_8::xd#0
[50] (byte) atan2_8::angle#2 ← (byte) atan2_8::angle#12 + *((const byte*) CORDIC_ATAN2_ANGLES_8 + (byte) atan2_8::i#2)
to:atan2_8::@14
atan2_8::@4: scope:[atan2_8] from atan2_8::@3
[51] (signed byte) atan2_8::xi#8 ← (signed byte) atan2_8::x#0
to:atan2_8::@6
atan2_8::@1: scope:[atan2_8] from atan2_8
[52] (signed byte) atan2_8::yi#11 ← (signed byte) atan2_8::y#0
to:atan2_8::@3
(void()) init_font_hex((byte*) init_font_hex::charset)
init_font_hex: scope:[init_font_hex] from main
[53] phi()
to:init_font_hex::@1
init_font_hex::@1: scope:[init_font_hex] from init_font_hex init_font_hex::@5
[54] (byte) init_font_hex::c#6 ← phi( init_font_hex/(byte) 0 init_font_hex::@5/(byte) init_font_hex::c#1 )
[54] (byte*) init_font_hex::proto_hi#6 ← phi( init_font_hex/(const byte*) FONT_HEX_PROTO init_font_hex::@5/(byte*) init_font_hex::proto_hi#1 )
[54] (byte*) init_font_hex::charset#5 ← phi( init_font_hex/(const nomodify byte*) CHARSET init_font_hex::@5/(byte*) init_font_hex::charset#0 )
to:init_font_hex::@2
init_font_hex::@2: scope:[init_font_hex] from init_font_hex::@1 init_font_hex::@4
[55] (byte) init_font_hex::c1#4 ← phi( init_font_hex::@1/(byte) 0 init_font_hex::@4/(byte) init_font_hex::c1#1 )
[55] (byte*) init_font_hex::proto_lo#4 ← phi( init_font_hex::@1/(const byte*) FONT_HEX_PROTO init_font_hex::@4/(byte*) init_font_hex::proto_lo#1 )
[55] (byte*) init_font_hex::charset#2 ← phi( init_font_hex::@1/(byte*) init_font_hex::charset#5 init_font_hex::@4/(byte*) init_font_hex::charset#0 )
[56] *((byte*) init_font_hex::charset#2) ← (byte) 0
to:init_font_hex::@3
init_font_hex::@3: scope:[init_font_hex] from init_font_hex::@2 init_font_hex::@3
[57] (byte) init_font_hex::idx#5 ← phi( init_font_hex::@2/(byte) 1 init_font_hex::@3/(byte) init_font_hex::idx#2 )
[57] (byte) init_font_hex::i#2 ← phi( init_font_hex::@2/(byte) 0 init_font_hex::@3/(byte) init_font_hex::i#1 )
[58] (byte~) init_font_hex::$0 ← *((byte*) init_font_hex::proto_hi#6 + (byte) init_font_hex::i#2) << (byte) 4
[59] (byte~) init_font_hex::$1 ← *((byte*) init_font_hex::proto_lo#4 + (byte) init_font_hex::i#2) << (byte) 1
[60] (byte~) init_font_hex::$2 ← (byte~) init_font_hex::$0 | (byte~) init_font_hex::$1
[61] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#5) ← (byte~) init_font_hex::$2
[62] (byte) init_font_hex::idx#2 ← ++ (byte) init_font_hex::idx#5
[63] (byte) init_font_hex::i#1 ← ++ (byte) init_font_hex::i#2
[64] if((byte) init_font_hex::i#1!=(byte) 5) goto init_font_hex::@3
to:init_font_hex::@4
init_font_hex::@4: scope:[init_font_hex] from init_font_hex::@3
[65] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#2) ← (byte) 0
[66] (byte) init_font_hex::idx#3 ← ++ (byte) init_font_hex::idx#2
[67] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#3) ← (byte) 0
[68] (byte*) init_font_hex::proto_lo#1 ← (byte*) init_font_hex::proto_lo#4 + (byte) 5
[69] (byte*) init_font_hex::charset#0 ← (byte*) init_font_hex::charset#2 + (byte) 8
[70] (byte) init_font_hex::c1#1 ← ++ (byte) init_font_hex::c1#4
[71] if((byte) init_font_hex::c1#1!=(byte) $10) goto init_font_hex::@2
to:init_font_hex::@5
init_font_hex::@5: scope:[init_font_hex] from init_font_hex::@4
[72] (byte*) init_font_hex::proto_hi#1 ← (byte*) init_font_hex::proto_hi#6 + (byte) 5
[73] (byte) init_font_hex::c#1 ← ++ (byte) init_font_hex::c#6
[74] if((byte) init_font_hex::c#1!=(byte) $10) goto init_font_hex::@1
to:init_font_hex::@return
init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5
[75] return
to:@return