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 rvasm_assemble_str rvasm_assemble sys_mmap ↻ 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 ra_imm12 ra_i ra_sh6 ra_r ra_past ra_s ra_label_target ra_skipsep ↻ ra_afterword ↻ ra_find_label ra_b ra_j ra_put g_puts sys_write sys_exit

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