update README.md
This commit is contained in:
parent
5207876164
commit
95f93a761e
28
README.md
28
README.md
|
@ -2,9 +2,15 @@
|
||||||
|
|
||||||
Rust tools for working with the PowerPC 750CL family of processors.
|
Rust tools for working with the PowerPC 750CL family of processors.
|
||||||
|
|
||||||
### Python module
|
### Rust crates
|
||||||
|
|
||||||
Build instructions:
|
```shell
|
||||||
|
rustup components add rustfmt
|
||||||
|
cargo run --package ppc750cl-genisa
|
||||||
|
cargo build --release
|
||||||
|
```
|
||||||
|
|
||||||
|
### Python module
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python -m venv env
|
python -m venv env
|
||||||
|
@ -12,3 +18,21 @@ source ./env/bin/activate
|
||||||
pip install maturin
|
pip install maturin
|
||||||
maturin build -m ./disasm-py/Cargo.toml
|
maturin build -m ./disasm-py/Cargo.toml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Instruction Set
|
||||||
|
|
||||||
|
For those unfamiliar with PowerPC, here are some basics.
|
||||||
|
- PowerPC 7xx is a family of RISC CPUs produced from 1997 to 2012.
|
||||||
|
- They operate with 32-bit words and every instruction is 32-bits wide.
|
||||||
|
- This project focuses (only) on compatibility with the PowerPC 750CL.
|
||||||
|
- This chip is famously packaged as codename "Broadway" for the Nintendo Wii.
|
||||||
|
- Its predecessor PowerPC 750CXe is used in the Nintendo GameCube.
|
||||||
|
- It adds a "paired-singles" SIMD unit and a bunch of other instructions.
|
||||||
|
|
||||||
|
### isa.yaml
|
||||||
|
|
||||||
|
The file [isa.yaml](./isa.yaml) contains a full definition of the PowerPC 750CL instruction set.
|
||||||
|
|
||||||
|
It powers the disassembler, assembler, and Rust/Python bindings code analysis tools.
|
||||||
|
|
||||||
|
Similarly to LLVM TableGen, the program `ppc750cl-genisa` generates a Rust file implementing an instruction decoder.
|
||||||
|
|
Loading…
Reference in New Issue