capstone icon indicating copy to clipboard operation
capstone copied to clipboard

initial implementation of the Sail-generated RISCV disassembler module

Open moste00 opened this issue 1 year ago • 1 comments

Your checklist for this pull request

  • [ ] I've documented or updated the documentation of every API function and struct this PR changes.
  • [ ] I've added tests that prove my fix is effective or that my feature works (if possible)

Detailed description

This PR aims to replace the LLVM-derieved RISCV module with a Sail-derieved RISCV module. The generator tool is being developed here, and for the Sail model of RISCV is here.

Sail is an architecture description language being developed here, it's an imperative language inspired in syntax and semantics by OCaml, with some syntax sugar and innovative features designed specifically for describing computer architectures. See here for a detailed tour and explanation of major features.

The RISCV foundation has adopted the Sail model of RISCV as the "official" definition of the architecture, and therefore it's desirable to generate a C implementation of the any RISCV-related logic from the sail-riscv model, as it will be up-to-date and compliant by construction.

Test plan

The current state of the module doesn't compile, this will be updated as work continues on the module. The initial goal of the work is to be able to invoke cstool and obtain useful results (e.g. the instruction in string form, as a start). Hopefully this goal is not too far.

Closing issues

...

moste00 avatar Oct 04 '24 21:10 moste00

@moste00 please update the PR with your latest state of the generated code

XVilka avatar Oct 23 '24 15:10 XVilka

Superseded by https://github.com/capstone-engine/capstone/pull/2756

Rot127 avatar Nov 09 '25 11:11 Rot127