code wiki / (root) / smoke_dom_inspect.nx

smoke_dom_inspect.nx source

↩ module page · 30 lines · 1011 B

1// Probe dom_test to see what b4.idom actually is. 2import "syscalls.nx" 3import "dom.nx" 4 5func main() -> i64 { 6 let buf: *u8 = sys_mmap(512) 7 let blocks: *Block = buf as *Block 8 let base: i64 = blocks as i64 9 10 let b0: *Block = (base + 0 * 80) as *Block 11 b0.id = 0; b0.n_succs = 1; b0.succ0 = 1; b0.n_preds = 0 12 13 let b1: *Block = (base + 1 * 80) as *Block 14 b1.id = 1; b1.n_succs = 2; b1.succ0 = 2; b1.succ1 = 3 15 b1.n_preds = 1; b1.pred0 = 0 16 17 let b2: *Block = (base + 2 * 80) as *Block 18 b2.id = 2; b2.n_succs = 1; b2.succ0 = 4; b2.n_preds = 1; b2.pred0 = 1 19 20 let b3: *Block = (base + 3 * 80) as *Block 21 b3.id = 3; b3.n_succs = 1; b3.succ0 = 4; b3.n_preds = 1; b3.pred0 = 1 22 23 let b4: *Block = (base + 4 * 80) as *Block 24 b4.id = 4; b4.n_succs = 0; b4.n_preds = 2; b4.pred0 = 2; b4.pred1 = 3 25 26 dom_compute(blocks, 5, 0) 27 28 // Return b4.idom + 100 so we distinguish 0/1/2/3 results. 29 return __syscall(93, 100 + b4.idom, 0, 0, 0, 0, 0) 30}