somewhere between qbe and llvm ir
currently compiles down to nasm
extern $printf variadic
data $fmt = { b "hello world %d", b 10, b 0 }
func i32 $main() {
i32 %r = call $add(w 34, w 35)
call $printf(ptr $fmt, i32 %r)
ret i32 0
}
func i32 $add(i32 %a, i32 %b) {
i32 %c = add i32 %a, i32 %b
ret i32 %c
}
runes: $global %local @label #const(?) &struct