data $___cnst0 = { b "Point(%d, %d)\n", b 0 } type :Point = { w, w,} function $setNewPos(l %___tmpvar0, w %___tmpvar1, w %___tmpvar2) { @start %p =l alloc8 8 storel %___tmpvar0, %p %nx =l alloc4 4 storew %___tmpvar1, %nx %ny =l alloc4 4 storew %___tmpvar2, %ny %___tmpvar3 =w loadw %nx %___tmpvar4 =l loadl %p %___tmpvar5 =l add %___tmpvar4, 0 storew %___tmpvar3, %___tmpvar5 %___tmpvar6 =w loadw %ny %___tmpvar7 =l loadl %p %___tmpvar8 =l add %___tmpvar7, 4 storew %___tmpvar6, %___tmpvar8 ret } function $printPoint(:Point %___tmpvar0) { @start %p =l alloc4 8 blit %___tmpvar0, %p, 8 %___tmpvar1 =l add %p, 0 %___tmpvar2 =w loadw %___tmpvar1 %___tmpvar3 =l add %p, 4 %___tmpvar4 =w loadw %___tmpvar3 call $printf(l $___cnst0, ..., w %___tmpvar2, w %___tmpvar4) ret } function $_main() { @start %p =l alloc4 8 %___tmpvar0 =l alloc4 8 %___tmpvar1 =l add %___tmpvar0, 0 storew 10, %___tmpvar1 %___tmpvar2 =l add %___tmpvar0, 4 storew 20, %___tmpvar2 blit %___tmpvar0, %p, 8 %___tmpvar3 =l copy %p call $printPoint(:Point %___tmpvar3) %___tmpvar4 =l copy %p call $setNewPos(l %___tmpvar4, w 30, w 40) %___tmpvar5 =l copy %p call $printPoint(:Point %___tmpvar5) ret } export function w $main() { @start call $_main() ret 0 }