nx_smoke_regalloc_min6.nx source
↩ module page · 35 lines · 1167 B
1// 2 consts + binop, NO return -- isolate whether binop alone crashes.
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, "binop" 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 ir_emit_binop(b, OP_ADD, c1, c2, ir_type_i64())
23 // NO return.
24
25 let locs_raw: *u8 = sys_mmap(4096)
26 let locs: *ValueLoc = locs_raw as *ValueLoc
27 let mask_raw: *u8 = sys_mmap(16)
28 let mask: *i64 = mask_raw as *i64
29 *mask = 0
30 let sb_raw: *u8 = sys_mmap(16)
31 let sb: *i64 = sb_raw as *i64
32 *sb = 0
33 regalloc_function(f, locs, mask, sb)
34 return __syscall(93, 42, 0, 0, 0, 0, 0)
35}