asmkit-rs

Crates.ioasmkit-rs
lib.rsasmkit-rs
version0.1.0
sourcesrc
created_at2024-11-12 15:46:57.297361
updated_at2024-11-12 15:46:57.297361
descriptionPortable assembler toolkit: decoding and encoding of various architectures
homepage
repositoryhttps://github.com/playx18/asmkit
max_upload_size
id1445090
size8,944,208
(playX18)

documentation

README

asmkit

#![no_std] assembler library.

Features

  • X64, RISC-V, PPC, and ARM (WIP) assemblers
  • Small and portable library.
  • Tiny amount of dependencies:
    • libc, intrusive-collections: for JIT support
    • paste, derive-more: makes our life simpler when declaring arch-specific stuff over and over
    • smallvec: for code generation to not heap allocate often
  • Relocations are provided by CodeBuffer interface and assembler will use them if you use symbols in API.

Goals

  • Auto-generated assemblers for as many as possible platform.

  • Portability: library should built & run on any platform (even if it does not provide assembler for one), and assemblers on its own must not be dependent on platform we built asmkit on.

TODO

  • Add support for ARM64
  • Add support for PPC64
  • Add support for OpenPOWER (POWER9/POWER10)
  • Add support for RW info and implicit operand info for all opcodes
  • Cross-platform helpers to perform calls
  • JSC/SpiderMonkey-like MacroAssembler to help generate assembly without worrying about target architecture
  • Compiler/Builder interface: emit instructions as Inst structure and allow modifying them before emitting, and also possibly to have regalloc pass over them.
Commit count: 15

cargo fmt