# AARCHMRS dataset as Rust code
This Rust library provides functionality for synthesizing ARM64 instruction
encodings. It was derived from the Arm Limited's [AARCHMRS
dataset](https://developer.arm.com/Architectures/A-Profile%20Architecture#Downloads).
The crate's module structure follows the dataset tree structure. For each
instruction variant described in the dataset, a corresponding Rust function is
generated.
The source code of this crate is generated by tools at the same repository at
<https://github.com/monoid/harm>.
As with the original dataset, this code is licensed under BSD-3-Clause license.
## Features
As of 2025-06, the dataset contains descriptions for A64, A32 and T32 instructions sets.
They are guarded by respective feature flags (`A64`, `A32` and `T32`), and `a64` is default.
The `meta` flag generates additional information for each instructions.
## Regenerating dataset
To regenerate the code, use the `aarchmrs-generate` binary. The dataset URL and
MD5 checksum are pinned in the `aarchmrs-gen` crate.
```shell
cargo run -p aarchmrs-generate -- \
--doc-file ./aarchmrs-instructions/README.md \
./aarchmrs-instructions/src
```
Please, run `cargo fmt` afterwards.