_offc_probe_irbuild.nx source
↩ module page · 26 lines · 802 B
1// Replicates regalloc_test.nx lines 9-21 — full IR construction
2// without the regalloc piece. Isolates whether the bug is in
3// ir_block_new / ir_const_i64 / ir_emit_binop / ir_emit_return.
4
5import "nx_syscalls.nx"
6import "nx_types.nx"
7import "nx_ir.nx"
8import "nx_regalloc.nx"
9
10func main() -> i64 {
11 let m_raw: *u8 = sys_mmap(256)
12 let m: *Module = m_raw as *Module
13 m.name = "test" as *u8
14 m.functions = 0 as *Function
15 m.n_functions = 0
16
17 let f: *Function = ir_function_new(m, "main" as *u8, 4, ir_type_i64())
18 let b: *BasicBlock = ir_block_new(f)
19 let c10: i64 = ir_const_i64(f, 10)
20 let c20: i64 = ir_const_i64(f, 20)
21 let sum: i64 = ir_emit_binop(b, OP_ADD, c10, c20, ir_type_i64())
22 ir_emit_return(b, sum)
23
24 sys_write(1, "ok\n" as *u8, 3)
25 return 0
26}