code wiki / _hdl_build / nx_asm_oracle.nx

nx_asm_oracle.nx

buildroot/runtime/_hdl_build/nx_asm_oracle.nx

1704 B21 linesdepth 5pulls 8 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_asm_oracle.nx -- dumps my sovereign assembler's machine-code words for a fixed instruction sequence, so they can be diffed against the GNU reference assembler (riscv64-linux-gnu-as) -- an EXTERNAL-ORACLE encoding validation of the whole RV64IM encoder (esp. the just-added M extension). Prints one hex word per line. expect_exit: 0

dependencies 4 imports · 0 importers

nx_syscalls.nx nx_g_puts_lib.nx nx_rv64_asm.nx nx_rv64_fast.nx nx_asm_oracle.nx

imports: nx_syscalls.nxnx_g_puts_lib.nxnx_rv64_asm.nxnx_rv64_fast.nx

imported by: nobody (leaf or entry point)

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

main 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 ↻ rvasm_assemble_str rvasm_assemble sys_mmap ↻ ra_isws ra_is_directive ra_isws ↻ ra_encode sys_mmap ↻ ra_afterword ra_isws ↻ ra_word_is ra_isws ↻ ra_reg ra_skipsep ra_isws ↻ ra_num ra_isdig ra_imm ra_skipsep ↻ ra_ishex ra_isdig ↻ ra_hexval ra_isdig ↻ ra_u

structs

none

consts

none

functions

9func g_ph8(v: i64) -> i64 { let b: *u8=sys_mmap(12); var i: i64=7; while i>=0 { let nib: i64=(v>>(i*4))&15; if nib<10 { b[7-i]=(48+nib) as u8 } else { b[7-i]=(87+nib) as u8 } i=i-1 } b[8]=10 as u8; sys_write(1,b,9); return 0 }
called by 1: main calls 2: sys_mmapsys_write
11func main() -> i64