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
}