nx_smoke_nxc_pipeline13.nx source
↩ module page · 47 lines · 1637 B
1// lex+parse+opt+regalloc.
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_lex_kinds.nx"
11import "nx_outbuf.nx"
12import "nx_ir.nx"
13import "nx_tokenizer.nx"
14import "nx_parse.nx"
15import "nx_opt.nx"
16import "nx_regalloc.nx"
17import "elf_writer.nx"
18
19func main() -> i64 {
20 let demo: *u8 = "func main() -> i64 { return __syscall(93, 30, 0, 0, 0, 0, 0) }"
21 let toks: *Tok = lex_source(demo, 4096)
22 let m: *Module = parse_module(toks, 0 as *Module)
23 var fi: i64 = 0
24 while fi < m.n_functions {
25 let fn_base: i64 = m.functions as i64
26 let f: *Function = (fn_base + fi * 176) as *Function
27 opt_run(f)
28 let locs_raw: *u8 = sys_mmap(f.n_values * 24 + 64)
29 let locs: *ValueLoc = locs_raw as *ValueLoc
30 let cs_raw: *u8 = sys_mmap(16)
31 let cs: *i64 = cs_raw as *i64
32 *cs = 0
33 let cs_fpr_raw: *u8 = sys_mmap(16)
34 let cs_fpr: *i64 = cs_fpr_raw as *i64
35 *cs_fpr = 0
36 let sb_raw: *u8 = sys_mmap(16)
37 let sb: *i64 = sb_raw as *i64
38 *sb = 0
39 regalloc_function(f, locs, cs, cs_fpr, sb)
40 fi = fi + 1
41 }
42 let fresh_code: *u8 = sys_mmap(64)
43 fresh_code[0] = 0x67; fresh_code[1] = 0x80; fresh_code[2] = 0; fresh_code[3] = 0
44 let n: i64 = write_elf(fresh_code, 4, 2)
45 if n < 0 { return __syscall(93, 50, 0, 0, 0, 0, 0) }
46 return __syscall(93, 42, 0, 0, 0, 0, 0)
47}