rv64im_min_decoder.nx
buildroot/runtime/_hdl_build/rv64im_min_decoder.nx
about
dependencies 2 imports · 40 importers
diagram shows first 10 each side; +0 more imports, +30 more importers in the complete lists below.
imports: nx_syscalls.nxnishi_hdl_primitives.nx
imported by: nx_decode_kind.nxnx_decoder_fields_mem_test.nxnx_decoder_imm_mem_test.nxnx_decoder_kind_mem_test.nxnx_emu_bench.nxnx_evo_isa_sov.nxnx_geneal_energy_sov.nxnx_isa_cf_sov.nxnx_isa_equiv_sov.nxnx_isa_loop_sov.nxnx_isa_run_sov.nxnx_isa_synth_sov.nxnx_mulh_diag.nxnx_nxc_baremetal.nxnx_nxc_run.nxnx_rv64_amo_gate.nxnx_rv64_csr_trap_oracle.nxnx_rv64_fast_dev_gate.nxnx_rv64_fast_gate.nxnx_rv64_kernel_gate.nxnx_rv64_mmu_oracle.nxnx_rv64_qemu_fuzz.nxnx_rv64_qemu_oracle.nxnx_rv64_realc_gate.nxnx_rv64_run_bin.nxnx_rv64_sdeleg_oracle.nxnx_rv64_snapshot_gate.nxnx_rv64_timer_oracle.nxnx_rv64im_cpu_crosscheck.nxnx_rv64im_decoder_dump.nxnx_simtcore.nxnx_simtcore_gate.nxrv64im_min_cpu_crosscheck.nxrv64im_min_decoder_proof.nxrv64im_min_elf_loader.nxrv64im_min_gfx_gate.nxrv64im_min_hot_report.nxrv64im_min_kernel_boot_smoke.nxrv64im_min_sim.nxrv64im_min_sim_smoke.nx
structs
| 249 | struct NxRv64imDecoderPorts |
consts
| 58 | const NX_RV64IM_OP_INVALID: i64 = 0 // illegal instruction (raises exc) |
| 61 | const NX_RV64IM_OP_LUI: i64 = 1 |
| 62 | const NX_RV64IM_OP_AUIPC: i64 = 2 |
| 63 | const NX_RV64IM_OP_JAL: i64 = 3 |
| 64 | const NX_RV64IM_OP_JALR: i64 = 4 |
| 65 | const NX_RV64IM_OP_BRANCH: i64 = 5 // beq/bne/blt/bge/bltu/bgeu (funct3 disambiguates) |
| 66 | const NX_RV64IM_OP_LOAD: i64 = 6 // lb/lh/lw/ld/lbu/lhu/lwu |
| 67 | const NX_RV64IM_OP_STORE: i64 = 7 // sb/sh/sw/sd |
| 68 | const NX_RV64IM_OP_OP_IMM: i64 = 8 // addi/slti/sltiu/xori/ori/andi/slli/srli/srai |
| 69 | const NX_RV64IM_OP_OP: i64 = 9 // add/sub/sll/slt/sltu/xor/srl/sra/or/and |
| 70 | const NX_RV64IM_OP_OP_IMM_32: i64 = 10 // addiw/slliw/srliw/sraiw |
| 71 | const NX_RV64IM_OP_OP_32: i64 = 11 // addw/subw/sllw/srlw/sraw |
| 72 | const NX_RV64IM_OP_FENCE: i64 = 12 |
| 73 | const NX_RV64IM_OP_SYSTEM: i64 = 13 // ecall/ebreak/csrrw/... |
| 76 | const NX_RV64IM_OP_M_MUL: i64 = 14 // mul/mulh/mulhsu/mulhu |
| 77 | const NX_RV64IM_OP_M_DIV: i64 = 15 // div/divu/rem/remu |
| 78 | const NX_RV64IM_OP_M_MUL_32: i64 = 16 // mulw |
| 79 | const NX_RV64IM_OP_M_DIV_32: i64 = 17 // divw/divuw/remw/remuw |
| 83 | const NX_RV64IM_OP_AMO: i64 = 18 |
| 85 | const NX_RV64IM_OP_N: i64 = 19 |
| 242 | const NX_RV64IM_DECODER_WIDTH_INST: i64 = 32 // input instruction |
| 243 | const NX_RV64IM_DECODER_WIDTH_OPKIND: i64 = 8 // sealed enum (fits 18 values) |
| 244 | const NX_RV64IM_DECODER_WIDTH_REG: i64 = 5 // rs1/rs2/rd index |
| 245 | const NX_RV64IM_DECODER_WIDTH_IMM: i64 = 64 // sign-extended |
functions
| 87 | func nx_rv64im_op_is_valid(op: i64) -> i64 |
| 98 | func nx_rv64im_opcode(inst: i64) -> i64 |
| 102 | func nx_rv64im_rd(inst: i64) -> i64 |
| 106 | func nx_rv64im_funct3(inst: i64) -> i64 |
| 110 | func nx_rv64im_rs1(inst: i64) -> i64 |
| 114 | func nx_rv64im_rs2(inst: i64) -> i64 |
| 118 | func nx_rv64im_funct7(inst: i64) -> i64 |
| 129 | func nx_rv64im_imm_i(inst: i64) -> i64 |
| 138 | func nx_rv64im_imm_s(inst: i64) -> i64 |
| 149 | func nx_rv64im_imm_b(inst: i64) -> i64 |
| 162 | func nx_rv64im_imm_u(inst: i64) -> i64 |
| 172 | func nx_rv64im_imm_j(inst: i64) -> i64 |
| 191 | func nx_rv64im_decode_kind(inst: i64) -> i64 |
| 258 | func nx_rv64im_decoder_build(m: *NxHdlModule, ports: *NxRv64imDecoderPorts) -> i64 |