type :A = { l,} function $std__exit(w %___tmpvar0) { @start %status =l alloc4 4 storew %___tmpvar0, %status %___tmpvar1 =w loadw %status call $_exit(w %___tmpvar1) ret } data $___cnst5 = { b "fatal: index out of bounds, index is %d but array length is %d (examples/080-arrays.qk:26:6)\n", b 0 } data $___cnst4 = { b "fatal: index out of bounds, index is %d but array length is %d (examples/080-arrays.qk:24:14)\n", b 0 } data $___cnst3 = { b "fatal: index out of bounds, index is %d but array length is %d (examples/080-arrays.qk:24:14)\n", b 0 } data $___cnst2 = { b "%u\n", b 0 } data $___cnst1 = { b "fatal: index out of bounds, index is %d but array length is %d (examples/080-arrays.qk:12:14)\n", b 0 } data $___cnst0 = { b "fatal: index out of bounds, index is %d but array length is %d (examples/080-arrays.qk:8:14)\n", b 0 } type :A = { l,} function $f(l %___tmpvar0) { @start %___tmpvar1 =l loadl %___tmpvar0 %___tmpvar2 =l mul %___tmpvar1, 8 %___tmpvar3 =l add %___tmpvar2, 8 %a =l alloc8 %___tmpvar3 call $memcpy(l %a, l %___tmpvar0, l %___tmpvar3) %___tmpvar4 =l copy %a %___tmpvar5 =l loadl %___tmpvar4 %___tmpvar6 =w csltw 0, 0 %___tmpvar7 =w csgel 0, %___tmpvar5 %___tmpvar8 =w or %___tmpvar6, %___tmpvar7 jnz %___tmpvar8, @___tmplbl1, @___tmplbl0 @___tmplbl1 call $printf(l $___cnst0, ..., l 0, l %___tmpvar5) call $_exit(l 127) @___tmplbl0 %___tmpvar9 =l mul 0, 8 %___tmpvar10 =l add %___tmpvar9, 8 %___tmpvar11 =l add %___tmpvar4, %___tmpvar10 %___tmpvar12 =l loadl %___tmpvar11 call $print_int(l %___tmpvar12) ret } function $g(l %___tmpvar0) { @start %a =l alloc8 24 blit %___tmpvar0, %a, 24 %___tmpvar1 =l copy %a %___tmpvar2 =l loadl %___tmpvar1 %___tmpvar3 =w csltw 1, 0 %___tmpvar4 =w csgel 1, %___tmpvar2 %___tmpvar5 =w or %___tmpvar3, %___tmpvar4 jnz %___tmpvar5, @___tmplbl1, @___tmplbl0 @___tmplbl1 call $printf(l $___cnst1, ..., l 1, l %___tmpvar2) call $_exit(l 127) @___tmplbl0 %___tmpvar6 =l mul 1, 8 %___tmpvar7 =l add %___tmpvar6, 8 %___tmpvar8 =l add %___tmpvar1, %___tmpvar7 %___tmpvar9 =l loadl %___tmpvar8 call $print_int(l %___tmpvar9) ret } function $print_int(l %___tmpvar0) { @start %x =l alloc8 8 storel %___tmpvar0, %x %___tmpvar1 =l loadl %x call $printf(l $___cnst2, ..., l %___tmpvar1) ret } function $_main() { @start %s =l alloc8 8 %___tmpvar0 =l alloc8 8 %___tmpvar1 =l alloc8 24 storel 2, %___tmpvar1 %___tmpvar2 =l alloc8 24 storel 2, %___tmpvar2 %___tmpvar3 =l add %___tmpvar2, 8 storel 1, %___tmpvar3 %___tmpvar4 =l add %___tmpvar2, 16 storel 2, %___tmpvar4 %___tmpvar5 =l add %___tmpvar1, 8 storel %___tmpvar2, %___tmpvar5 %___tmpvar6 =l alloc8 24 storel 2, %___tmpvar6 %___tmpvar7 =l add %___tmpvar6, 8 storel 3, %___tmpvar7 %___tmpvar8 =l add %___tmpvar6, 16 storel 4, %___tmpvar8 %___tmpvar9 =l add %___tmpvar1, 16 storel %___tmpvar6, %___tmpvar9 %___tmpvar10 =l add %___tmpvar0, 0 storel %___tmpvar1, %___tmpvar10 blit %___tmpvar0, %s, 8 %___tmpvar11 =l add %s, 0 %___tmpvar12 =l loadl %___tmpvar11 %___tmpvar13 =l loadl %___tmpvar12 %___tmpvar14 =w csltw 0, 0 %___tmpvar15 =w csgel 0, %___tmpvar13 %___tmpvar16 =w or %___tmpvar14, %___tmpvar15 jnz %___tmpvar16, @___tmplbl1, @___tmplbl0 @___tmplbl1 call $printf(l $___cnst3, ..., l 0, l %___tmpvar13) call $_exit(l 127) @___tmplbl0 %___tmpvar17 =l mul 0, 8 %___tmpvar18 =l add %___tmpvar17, 8 %___tmpvar19 =l add %___tmpvar12, %___tmpvar18 %___tmpvar20 =l loadl %___tmpvar19 %___tmpvar21 =l loadl %___tmpvar20 %___tmpvar22 =w csltw 0, 0 %___tmpvar23 =w csgel 0, %___tmpvar21 %___tmpvar24 =w or %___tmpvar22, %___tmpvar23 jnz %___tmpvar24, @___tmplbl3, @___tmplbl2 @___tmplbl3 call $printf(l $___cnst4, ..., l 0, l %___tmpvar21) call $_exit(l 127) @___tmplbl2 %___tmpvar25 =l mul 0, 8 %___tmpvar26 =l add %___tmpvar25, 8 %___tmpvar27 =l add %___tmpvar20, %___tmpvar26 %___tmpvar28 =l loadl %___tmpvar27 call $print_int(l %___tmpvar28) %___tmpvar30 =l add %s, 0 %___tmpvar31 =l loadl %___tmpvar30 %___tmpvar29 =l loadl %___tmpvar31 call $print_int(l %___tmpvar29) %___tmpvar32 =l add %s, 0 %___tmpvar33 =l loadl %___tmpvar32 %___tmpvar34 =l loadl %___tmpvar33 %___tmpvar35 =w csltw 1, 0 %___tmpvar36 =w csgel 1, %___tmpvar34 %___tmpvar37 =w or %___tmpvar35, %___tmpvar36 jnz %___tmpvar37, @___tmplbl5, @___tmplbl4 @___tmplbl5 call $printf(l $___cnst5, ..., l 1, l %___tmpvar34) call $_exit(l 127) @___tmplbl4 %___tmpvar38 =l mul 1, 8 %___tmpvar39 =l add %___tmpvar38, 8 %___tmpvar40 =l add %___tmpvar33, %___tmpvar39 %___tmpvar41 =l loadl %___tmpvar40 call $f(l %___tmpvar41) %arr =l alloc8 24 %___tmpvar42 =l alloc8 24 storel 2, %___tmpvar42 %___tmpvar43 =l add %___tmpvar42, 8 storel 1, %___tmpvar43 %___tmpvar44 =l add %___tmpvar42, 16 storel 2, %___tmpvar44 blit %___tmpvar42, %arr, 24 %___tmpvar45 =l copy %arr call $g(l %___tmpvar45) ret } export function w $main() { @start call $_main() ret 0 }