mirror of
https://github.com/pound-emu/ballistic.git
synced 2026-01-31 01:15:21 +01:00
Instead of using strcmp() on each decoded intruction's mnemonic to translate it, we embedd an IR opcode into the struct. This is a very barebones implementation and does not cover the entire ARM instruction set. ARM instructions that does not have an IR opcode equivalent will be marked with `OPCODE_TRAP` and should be implemented in the future. Signed-off-by: Ronald Caesar <github43132@proton.me>
Tools
This folder holds scritps needed to build Ballistic and standalone programs used for testing Ballistic.
Standlone Programs
These programs will appear in directory you compile Ballistic with.
Decoder CLI
This program is used for decoding ARM64 instructions. The following example shows how to use it:
./decoder_cli 0b5f1da1 # ADD extended registers
Mnemonic: ADD - Mask: 0x7F200000 - Expected: 0x0B000000
Coverage CLI
This program takes an ARM64 binary file and outputs the 20 most common instructions.
Scripts
These scripts are solely used for building Ballistic and is called by CMake.
Generate A64 Table
This script parses the Official ARM Machine Readable Architecture Specification XML files in spec/ and generates a hash table Ballistic's decoder uses to lookup instructions.