code wiki / (root) / nx_smoke_regalloc_min5.nx

nx_smoke_regalloc_min5.nx source

↩ module page · 34 lines · 1112 B

1// 3 consts, no binop. 2// nx_safety_envelope: 3// intended_use: AUTO_APPLIED -- primitive-specific tuning queued 4// sil_target: SIL1 5// evidence: [bulk_applied_2026-05-16, see-file-comment-for-detail] 6// verdict: NOT_YET_EVALUATED 7 8import "nx_syscalls.nx" 9import "nx_types.nx" 10import "nx_ir.nx" 11import "nx_regalloc.nx" 12 13func main() -> i64 { 14 let m_raw: *u8 = sys_mmap(256) 15 let m: *Module = m_raw as *Module 16 m.functions = 0 as *Function 17 m.n_functions = 0 18 let f: *Function = ir_function_new(m, "three" as *u8, 5, ir_type_i64()) 19 let b: *BasicBlock = ir_block_new(f) 20 let c1: i64 = ir_const_i64(f, 10) 21 let c2: i64 = ir_const_i64(f, 20) 22 let c3: i64 = ir_const_i64(f, 30) 23 ir_emit_return(b, c3) 24 let locs_raw: *u8 = sys_mmap(4096) 25 let locs: *ValueLoc = locs_raw as *ValueLoc 26 let mask_raw: *u8 = sys_mmap(16) 27 let mask: *i64 = mask_raw as *i64 28 *mask = 0 29 let sb_raw: *u8 = sys_mmap(16) 30 let sb: *i64 = sb_raw as *i64 31 *sb = 0 32 regalloc_function(f, locs, mask, sb) 33 return __syscall(93, 42, 0, 0, 0, 0, 0) 34}