1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-08-09 20:25:17 +00:00
Files
kickc/src/test/ref/procedure-callingconvention-stack-bank-4.cfg
Flight_Control 5bd84e7812 - Added test cases.
- Checked asm outputs.
- banking is only implemented for the cx16 for now.
2023-04-04 19:36:11 +02:00

63 lines
1.8 KiB
INI

void __start()
__start: scope:[__start] from
[0] phi()
to:__start::__init1
__start::__init1: scope:[__start] from __start
[1] idx = 0
to:__start::@1
__start::@1: scope:[__start] from __start::__init1
[2] phi()
[3] callexecute main
to:__start::@return
__start::@return: scope:[__start] from __start::@1
[4] return
to:@return
__stackcall void print(struct Point p)
print: scope:[print] from
[5] print::p = stackidx(struct Point,print::OFFSET_STACK_P)
[6] SCREEN[idx] = *((char *)&print::p)
[7] idx = ++ idx
[8] SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_Y)
[9] idx = ++ idx
to:print::@return
print::@return: scope:[print] from print
[10] return
to:@return
__stackcall struct Point get(char i)
get: scope:[get] from
[11] get::i#0 = stackidx(char,get::OFFSET_STACK_I)
[12] get::$0 = get::i#0 >> 1
[13] *((char *)&get::p) = get::i#0
[14] *((char *)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0
[15] *(&get::return) = memcpy(*(&get::p), struct Point, SIZEOF_STRUCT_POINT)
to:get::@return
get::@return: scope:[get] from get
[16] stackidx(struct Point,get::OFFSET_STACK_RETURN_0) = get::return
[17] return
to:@return
__stackcall void main()
main: scope:[main] from
[18] phi()
to:main::@1
main::@1: scope:[main] from main main::@2
[19] main::i#2 = phi( main/0, main::@2/main::i#1 )
[20] if(main::i#2<5) goto main::@2
to:main::@return
main::@return: scope:[main] from main::@1
[21] return
to:@return
main::@2: scope:[main] from main::@1
[22] stackpush(char) = main::i#2
sideeffect stackpushpadding(1)
[24] callexecute get
[25] main::p = stackpull(struct Point)
[26] stackpush(struct Point) = main::p
[27] callexecute print
sideeffect stackpullpadding(2)
[29] main::i#1 = ++ main::i#2
to:main::@1