asterisc
asterisc copied to clipboard
feat: `c` extension support
Overview
[!NOTE] WIP.
Adds support for the RVC extension, which is preferred by the most heavily supported RISC-V targets in rustc. More information can be found in the working document, which I'll update along the way of implementing support.
TODO
- [x] Assess supported
cextension instructions forasterisc- Pretty much everything but FP ops. See the hackmd.
- [x] Decoding logic for various
cextension instruction types. - [x] Encoding logic for various base ISA instruction types.
- [x] Adjust program counter incrementation based on instruction size.
- [x] Instruction decompressor in
fastpackage- [ ] Port to
rvsolandslow
- [ ] Port to
- [x] RISC-V standard
cextension tests - [x] Decompressor tests
- [x] Rust minimal example
- [ ] New syscalls
- [ ] Document Rust /
glibc/llvmsyscall usage for RISC-V linux targets.
- [ ] Document Rust /
- [ ] symbol patches
- [ ] New syscalls
- [ ] Final cleanup; Delete scripts, etc.