mirror of
https://github.com/bitdefender/bddisasm.git
synced 2024-11-24 00:18:18 +00:00
c282f06215
* Add support for SIMD exceptions reporting in INSTRUX. * Add support for new ISAs: MOVRS, MSR_IMM, AMX-FP8, AMX-TRANSPOSE, AMX-TF32, AMX-AVX512, AMX-MOVRS, EVEX-encoded SM4. Co-authored-by: ianichitei (Rust bindings) |
||
---|---|---|
.. | ||
bddisasm | ||
bddisasm-sys | ||
Cargo.toml | ||
fix_symlinks.sh | ||
README.md | ||
update_ins.py |
bddisasm Rust bindings
Build
Run cargo build
or cargo build --release
.
Directory structure
bddisasm-sys
This crate uses the *-sys crate convention and links with libbddisasm
, exposing a raw, low-level, interface.
bddisasm
This crate aims to offer a higher-level interface over bddisasm-sys.
Parts of it are auto-generated, with slight manual changes (for example, the Mnemonic
enum and related functions).
TODO
- encode registers, not just the register index (for example, instead of
Gpr
we should haveGpr::Rax
,Gpr::Eax
, etc) - more documentation for the
operand
module, with examples on how to work wit h each operand type - more examples for
cpuid
- more examples for
cpu_modes
- an API to check if an instruction is supported with certain CPU modes on or off (currently a user has to manually check the
CpuModes
structure) - implement
Display
for more types (especially those inoperand
) - remove the
bindgen
dev dependency? See this issue as to why we may want to do that - better directory structure