riscv.nx
buildroot/runtime/riscv.nx
about
riscv.nx -- alias stub.
Migration to the nx_-prefixed canonical name nx_riscv.nx. Consumers
via `import "riscv.nx"` resolve to nx_riscv.nx through NishiLang's
textual import splicing with path dedup (runtime/import.nx I1), the
same mechanism types.nx / ir.nx / outbuf.nx / regalloc.nx already use.
WHY THIS FILE IS NOW A STUB (2026-07-13): the pre-migration riscv.nx
was a full 67 KB DUPLICATE of the RV64 backend that had diverged from
nx_riscv.nx and was missing two correctness fixes the canonical copy
carries:
- F14 VL_ALLOCA rematerialisation (materialise() kind==3 -> emits
`addi scratch, sp, off` at each use; fixes loop-carried alloca
clobber -- the nested-loop miscompile).
- OP_ADDR_OF (address-of-local; `let p = &x` -> materialise x's
address into the result home; fixes pointer-to-local miscompile).
Both were caught by the nxc-vs-qemu-system-riscv64 differential oracle
and proven fixed on the canonical backend (12/12 programs: golden sim
== real QEMU == nx_cc reference). Keeping the divergent duplicate was
the two-copies trap (nxc once imported this stale one); collapsing to
a single source of truth eliminates it by construction. Path dedup
means a file may import BOTH names with no duplicate-symbol error.
Deprecation: delete this stub when every "riscv.nx" consumer (main.nx,
smoke_nxc_pipeline*.nx, riscv*_test.nx, rvv_regname_test.nx,
callee_save_test.nx, _offc_nxc_small.nx) has migrated to "nx_riscv.nx".
dependencies 1 imports · 12 importers
diagram shows first 10 each side; +0 more imports, +2 more importers in the complete lists below.
imports: nx_riscv.nx
imported by: _offc_nxc_small.nxcallee_save_test.nxmain.nxriscv_fp_test.nxriscv_test.nxrvv_regname_test.nxsmoke_nxc_pipeline.nxsmoke_nxc_pipeline10.nxsmoke_nxc_pipeline2.nxsmoke_nxc_pipeline7.nxsmoke_nxc_pipeline8.nxsmoke_nxc_pipeline9.nx
structs
| none |
consts
| none |
functions
| none |