This is just a demonstration of what sleigh-rs and sleigh2rust are able to accomplish.
The code in each folder was generated by parsing the sleigh files from ghidra using sleigh-rs, then generating the rust code with sleigh2rust. The sleigh3test uses this crate to execute basic disassembly tests.
This project still in a early PoC (Proof-of-Concept) stage.
Each CPU are located in their own crate, they are compiled as dylib.
The create dyn-test include multiple tests that will load and test each cpu architecture.
The objective of this project is to implement and MVP disassembler/emulator. Currently the code generated is unecessarelly verbose and slow, because this is not the goal at this stage of the project.
List of CPUs and variants:
โ : Implemented ๐ง: In Construction
Family | Variant | Disassembler |
---|---|---|
68000 | 68020 | โ |
68000 | 68030 | โ |
68000 | 68040 | โ |
68000 | coldfire | โ |
HCS12 | HCS12 | โ |
Atmel | avr8 | โ |
Atmel | avr8e | โ |
Atmel | avr32a | ๐ง |
Atmel | avr8xmega | ๐ง |
Atmel | avr8eind | ๐ง |
8048 | 8048 | ๐ง |
PA-RISC | pa-risc32be | โ |
RISCV | riscv.ilp32d | โ |
RISCV | riscv.lp64d | โ |
V850 | V850 | โ |
6502 | 6502 | โ |
6502 | 65c02 | โ |
CR16 | CR16B | โ |
CR16 | CR16C | โ |
Z80 | z80 | โ |
Z80 | z180 | โ |
HCS08 | HC05 | โ |
HCS08 | HC08 | โ |
HCS08 | HCS08 | โ |
tricore | tricore | โ |
MC6800 | 6805 | โ |
MC6800 | 6809 | โ |
MC6800 | H6309 | โ |
MCS96 | MCS96 | โ |
TI_MSP430 | TI_MSP430 | ๐ง |
TI_MSP430 | TI_MSP430X | ๐ง |
CP1600 | CP1600 | โ |
M8C | m8c | โ |
8051 | 8051 | โ |
8051 | 80251 | โ |
8051 | 80390 | โ |
8051 | mx51 | โ |
8085 | 8085 | โ |
MIPS | mips32be | โ |
MIPS | mips32le | โ |
MIPS | mips32R6be | โ |
MIPS | mips32R6le | โ |
MIPS | mips64be | โ |
MIPS | mips64le | โ |
AARCH64 | AARCH64 | โ |
AARCH64 | AARCH64BE | โ |
AARCH64 | AARCH64_AppleSilicon | โ |
JVM | JVM | โ |
Dalvik | Dalvik_Base | โ |
Dalvik | Dalvik_ODEX_KitKat | โ |
Dalvik | Dalvik_DEX_KitKat | โ |
Dalvik | Dalvik_DEX_Lollipop | โ |
Dalvik | Dalvik_DEX_Marshmallow | โ |
Dalvik | Dalvik_DEX_Nougat | โ |
Dalvik | Dalvik_DEX_Oreo | โ |
Dalvik | Dalvik_DEX_Pie | โ |
Dalvik | Dalvik_DEX_Android10 | โ |
Dalvik | Dalvik_DEX_Android11 | โ |
Dalvik | Dalvik_DEX_Android12 | โ |
PowerPC | ppc_32_be | โ |
PowerPC | ppc_32_le | โ |
PowerPC | ppc_32_quicciii_be | โ |
PowerPC | ppc_32_quicciii_le | โ |
PowerPC | ppc_32_4xx_be | โ |
PowerPC | ppc_32_4xx_le | โ |
PowerPC | ppc_64_be | โ |
PowerPC | ppc_64_le | โ |
PowerPC | ppc_64_isa_be | โ |
PowerPC | ppc_64_isa_le | โ |
PowerPC | ppc_64_isa_altivec_be | โ |
PowerPC | ppc_64_isa_altivec_le | โ |
PowerPC | ppc_64_isa_altivec_vle_be | โ |
PowerPC | ppc_64_isa_vle_be | โ |
x86 | x86 | โ |
x86 | x86_64 | โ |
Sparc | SparcV9_32 | โ |
Sparc | SparcV9_64 | โ |
ARM | ARM4_be | โ |
ARM | ARM4_le | โ |
ARM | ARM4t_be | โ |
ARM | ARM4t_le | โ |
ARM | ARM5_be | โ |
ARM | ARM5_le | โ |
ARM | ARM5t_be | โ |
ARM | ARM5t_le | โ |
ARM | ARM6_be | โ |
ARM | ARM6_le | โ |
ARM | ARM7_be | โ |
ARM | ARM7_le | โ |
ARM | ARM8_be | โ |
ARM | ARM8_le | โ |
SuperH4 | SuperH4_be | โ |
SuperH4 | SuperH4_le | โ |
SuperH | sh-1 | โ |
SuperH | sh-2 | โ |
SuperH | sh-2a | โ |
Toy | toy_builder_be_align2 | โ |
Toy | toy_builder_le_align2 | โ |
Toy | toy_builder_le | โ |
Toy | toy_be_posStack | โ |
Toy | toy_builder_be | โ |
Toy | toy_wsz_be | โ |
Toy | toy_wsz_le | โ |
Toy | toy_be | โ |
Toy | toy_le | โ |
Toy | toy64_be | โ |
Toy | toy64_le | โ |
Toy | toy64_be_harvard | โ |
PIC | pic12c5xx | โ |
PIC | pic16c5x | โ |
PIC | pic16 | โ |
PIC | pic16f | โ |
PIC | pic17c7xx | โ |
PIC | pic18 | โ |
PIC | PIC24E | โ |
PIC | PIC24F | โ |
PIC | PIC24H | โ |
PIC | dsPIC30F | โ |
PIC | dsPIC33C | โ |
PIC | dsPIC33E | โ |
PIC | dsPIC33F | โ |