Crates.io | yaxpeax-hexagon |
lib.rs | yaxpeax-hexagon |
version | |
source | src |
created_at | 2025-04-14 02:45:39.423736+00 |
updated_at | 2025-04-14 02:45:39.423736+00 |
description | Qualcomm Hexagon decoder for the yaxpeax project |
homepage | |
repository | http://git.iximeow.net/yaxpeax-hexagon/ |
max_upload_size | |
id | 1632319 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Qualcomm Hexagon decoder implemented as part of the yaxpeax project, implementing traits provided by yaxpeax-arch
.
support is good enough to make sense of many programs, but not complete:
between V67 and V73, Qualcomm decided to remove most mentions of the Hexagon supervisor mode from their manuals. the LLVM target has had support for these instructions since late 2023, so LLVM-derived disassemblers should support them. it is not immediately clear to me that system instructions have the same encodings or semantic on later architectures - i largely lack programs known to target newer versions to validate that disassembly still looks reasonable.
Hexagon in real use seems to rely on a hypervisor (probably
Qualcomm-maintained? similar to their
minivm?) which system instructions are
intended to support, then "User" and "Guest" modes which are more openly
documented in public manuals. none the less, hexagonMVM
uses these
now-undocumented system instructions for system register
management, TLB
management later on, traps, and so on. these system instructions are also
important to process to make sense of the entrypoints of in-the-wild Hexagon
firmware images.
#[no_std]
the canonical copy of yaxpeax-hexagon
is at https://git.iximeow.net/yaxpeax-hexagon/.
yaxpeax-hexagon
is also mirrored on GitHub at https://www.github.com/iximeow/yaxpeax-hexagon.
a changelog across crate versions is maintained in the CHANGELOG
file located in the repo, as well as online.