code wiki / (root) / _offc_probe_irbuild.nx

_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}