nx_emu_arm64.nx
buildroot/runtime/nx_emu_arm64.nx
about
nx_emu_arm64.nx -- sovereign aarch64 (A64) interpreter (NX-EMU).
Mirror of nx_emu_rv64.nx for the third architecture. Flat guest RAM
(vaddr==offset), NZCV flag engine, Linux aarch64 syscall surface
(exit/write/read). NO qemu -- decode/execute is pure NishiLang per
the Arm A64 ISA (the spec is the oracle). Register model: X0..X30 in
x[], SP + PC as scalars, reg field 31 = XZR (read 0 / write discard).
genealogy_id: arm_a64_isa_ddi0487 + linux_arm64_abi
lineage_id: nishi_nx_emu_arm64_m6
license_tier: ORIGINAL
dependencies 1 imports · 5 importers
imports: nx_syscalls_x86_64.nx
imported by: nx_arm64_e2e_test.nxnx_emu_arm64_main.nxnx_isa_spec_test.nxnx_superopt_general_test.nxnx_superopt_machinecode_test.nx
structs
| none |
consts
| 13 | const A64_MAGIC_200000000: i64 = 200000000 |
| 15 | const A64_GUEST_SIZE: i64 = 16777216 |
| 16 | const A64_SYS_READ: i64 = 63 |
| 17 | const A64_SYS_WRITE: i64 = 64 |
| 18 | const A64_SYS_EXIT: i64 = 93 |
| 19 | const A64_SYS_EXITG: i64 = 94 |
| 20 | const A64E_UNSUPPORTED: i64 = -1 |
| 21 | const A64E_FAULT: i64 = -3 |
functions
| 24 | func a64e_srl(v: i64, n: i64) -> i64 |
| 29 | func a64e_ltu(a: i64, b: i64) -> i64 |
| 36 | func a64e_udiv(a: i64, b: i64) -> i64 |
| 47 | func a64e_g_ld(mem: *u8, va: i64, width: i64, signd: i64) -> i64 |
| 59 | func a64e_g_st(mem: *u8, va: i64, width: i64, val: i64) -> i64 |
| 64 | func a64e_rd(x: *i64, r: i64) -> i64 called by 1: emu_arm64_run_mem |
| 68 | func a64e_wr(x: *i64, r: i64, v: i64) -> i64 called by 1: emu_arm64_run_mem |
| 73 | func a64e_subs(a: i64, b: i64, f: *i64) -> i64 |
| 87 | func a64e_adds(a: i64, b: i64, f: *i64) -> i64 |
| 103 | func a64e_cond(cc: i64, nf: i64, zf: i64, cf: i64, vf: i64) -> i64 called by 1: emu_arm64_run_mem |
| 120 | func a64e_shiftreg(val: i64, typ: i64, amt: i64) -> i64 |
| 128 | func emu_arm64_run_mem(mem: *u8, mem_size: i64, entry: i64, sp0: i64) -> i64 called by 2: emu_arm64_runemu_arm64_load_elf calls 10: a64e_g_lda64e_wra64e_rda64e_subsa64e_addsa64e_shiftreg+4 |
| 396 | func emu_arm64_run(code: *u8, code_len: i64) -> i64 |
| 403 | func emu_arm64_load_elf(buf: *u8, len: i64) -> i64 |