1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-21 17:24:39 +00:00
kickc/src/test/ref/procedure-callingconvention-stack-11.cfg
2020-03-29 21:00:25 +02:00

74 lines
3.1 KiB
INI

@begin: scope:[] from
[0] (byte) idx ← (byte) 0
to:@1
@1: scope:[] from @begin
[1] phi()
[2] callexecute main
to:@end
@end: scope:[] from @1
[3] phi()
__stackcall (void()) print((byte) print::v_p1_x , (byte) print::v_p1_y , (byte) print::v_p2_x , (byte) print::v_p2_y)
print: scope:[print] from
[4] (byte) print::v_p1_x#0 ← stackidx(byte,(const byte) print::OFFSET_STACK_V_P1_X)
[5] (byte) print::v_p1_y#0 ← stackidx(byte,(const byte) print::OFFSET_STACK_V_P1_Y)
[6] (byte) print::v_p2_x#0 ← stackidx(byte,(const byte) print::OFFSET_STACK_V_P2_X)
[7] (byte) print::v_p2_y#0 ← stackidx(byte,(const byte) print::OFFSET_STACK_V_P2_Y)
[8] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) print::v_p1_x#0
[9] (byte) idx ← ++ (byte) idx
[10] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) print::v_p1_y#0
[11] (byte) idx ← ++ (byte) idx
[12] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) print::v_p2_x#0
[13] (byte) idx ← ++ (byte) idx
[14] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) print::v_p2_y#0
[15] (byte) idx ← ++ (byte) idx
[16] *((const nomodify byte*) SCREEN + (byte) idx) ← (byte) ' '
[17] (byte) idx ← ++ (byte) idx
to:print::@return
print::@return: scope:[print] from print
[18] return
to:@return
__stackcall (struct Vector()) get((byte) get::i)
get: scope:[get] from
[19] (byte) get::return_p1_x#0 ← stackidx(byte,(const byte) get::OFFSET_STACK_I)
[20] (byte) get::return_p1_y#0 ← (byte) get::return_p1_x#0 >> (byte) 1
[21] (byte) get::return_p2_x#0 ← (byte) get::return_p1_x#0 + (byte) 1
[22] (byte) get::return_p2_y#0 ← (byte) get::return_p1_x#0 << (byte) 1
to:get::@return
get::@return: scope:[get] from get
[23] stackidx(byte,(byte) 0) ← (byte) get::return_p1_x#0
[24] stackidx(byte,(const byte) OFFSET_STRUCT_POINT_Y) ← (byte) get::return_p1_y#0
[25] stackidx(byte,(const byte) OFFSET_STRUCT_VECTOR_P2) ← (byte) get::return_p2_x#0
[26] stackidx(byte,(const byte) OFFSET_STRUCT_VECTOR_P2+(const byte) OFFSET_STRUCT_POINT_Y) ← (byte) get::return_p2_y#0
[27] return
to:@return
__stackcall (void()) main()
main: scope:[main] from
[28] phi()
to:main::@1
main::@1: scope:[main] from main main::@2
[29] (byte) main::i#2 ← phi( main/(byte) 0 main::@2/(byte) main::i#1 )
[30] if((byte) main::i#2<(byte) 5) goto main::@2
to:main::@return
main::@return: scope:[main] from main::@1
[31] return
to:@return
main::@2: scope:[main] from main::@1
[32] stackpush(byte) ← (byte) main::i#2
sideeffect stackpushbytes((number) 3)
[34] callexecute get
[35] (byte) main::v_p1_x#0 ← stackpull(byte)
[36] (byte) main::v_p1_y#0 ← stackpull(byte)
[37] (byte) main::v_p2_x#0 ← stackpull(byte)
[38] (byte) main::v_p2_y#0 ← stackpull(byte)
[39] stackpush(byte) ← (byte) main::v_p1_x#0
[40] stackpush(byte) ← (byte) main::v_p1_y#0
[41] stackpush(byte) ← (byte) main::v_p2_x#0
[42] stackpush(byte) ← (byte) main::v_p2_y#0
[43] callexecute print
sideeffect stackpullbytes((number) 4)
[45] (byte) main::i#1 ← ++ (byte) main::i#2
to:main::@1