code wiki / (root) / nx_nxasm_neutral_gate.nx

nx_nxasm_neutral_gate.nx

buildroot/runtime/nx_nxasm_neutral_gate.nx

8667 B165 linesdepth 3pulls 4 transitivereach 0 importersview sourcekind gate/prooftopic nxasm
docsdependenciesstructsconstsfunctions

about

nx_nxasm_neutral_gate.nx -- DID ADDING THE FUNCTION-BOUNDS RECORDER CHANGE ONE EMITTED BYTE? DDR-009 step 1 added a `.type NAME, @function` recorder to nxasm so .debug_info can later carry DW_AT_low_pc/high_pc. It RECORDS ONLY and emits nothing, so every ELF nxasm produces must be BYTE-IDENTICAL to before. DDR-002 section 5 is explicit that nxasm is the crown jewel below the compiler and that changes to it land in steps which each carry their own proof -- the compiler's equivalence gate cannot speak here, because its subject is the COMPILER. Old = _offc/nxasm_x86_main.elf (the blessed 144,534-byte build, no recorder) New = ../nxasm_x86_main.elf (148,308 bytes, recorder present) Same .s in, byte-compare the ELFs out. ★ THE LOAD-BEARING TOOTH IS NOT "IDENTICAL" -- IT IS "THE RECORDER ACTUALLY RAN". A .s with no .type directives would produce identical output from both assemblers while proving NOTHING, which is the vacuous pass this estate keeps paying for. So the fixture is asserted to CONTAIN .type directives before the comparison is believed. license_tier: ORIGINAL expect_exit: 0

dependencies 2 imports · 0 importers

syscalls.nx nx_gate_verdict.nx nx_nxasm_neutral_gate.nx

imports: syscalls.nxnx_gate_verdict.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main gv_ctr sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ gv_head gv_puts sys_write ↻ nn_run_out gv_check gv_puts ↻ nn_read nn_has gv_puts ↻ gv_num sys_mmap ↻ sys_write ↻ sys_munmap gv_verdict gv_note_bare_rate gv_bare_rate gv_at gv_obj_has_n gv_at ↻ gv_puts ↻ gv_num ↻ gv_puts ↻ gv_num ↻

structs

none

consts

21const NN_CAP: i64 = 4194304

functions

23func nn_run_out(elf: *u8, args: *i64, nargs: i64, outfile: *u8) -> i64
called by 1: main
43func nn_read(path: *u8, buf: *u8, cap: i64) -> i64
called by 1: main
55func nn_has(b: *u8, n: i64, pat: *u8) -> i64
called by 1: main
69func main() -> i64