Richard Patel
e7a257ac64
Implement control-flow graph detection ( #12 )
...
Closes #9
Closes #10
* add flow graph crate
* update authors
* implement control flow graph analysis
* detect if program flow falls through the end of a block
* relax itertools version constraint
2021-08-20 13:09:04 -04:00
Richard Patel
4fc2d32e02
zero-copy bytes passing
2021-08-19 01:13:19 +02:00
Richard Patel
57a317a6b2
add offset, size arguments to disasm_iter
2021-08-19 00:56:39 +02:00
Richard Patel
e55398cd01
Fix Doldecomp formatter
2021-08-17 01:21:26 +02:00
Richard Patel
a15c909240
Fix CI
2021-08-17 01:21:08 +02:00
Richard Patel
25cdef4d34
add Python module instructions
2021-08-17 00:53:29 +02:00
Richard Patel
66b8d92934
add Python module
2021-08-17 00:40:13 +02:00
Richard Patel
ea6545f7e3
rename ./lib to ./disasm
2021-08-16 22:54:20 +02:00
Richard Patel
169b206a05
formatting
2021-08-16 22:51:42 +02:00
Richard Patel
2382625a5f
add unit tests
2021-08-16 22:26:41 +02:00
Richard Patel
4bb6a5d488
Fix clippy
2021-08-15 19:42:26 +02:00
Richard Patel
5052f260e2
Minor fix
2021-08-15 19:34:17 +02:00
Richard Patel
43cb808c14
Accuracy improvements
2021-08-15 19:25:43 +02:00
Richard Patel
32394a4905
macros/writer: relax syntax
2021-08-15 10:58:55 +02:00
Richard Patel
4853c12054
macros/writer: add mnemonic suffixes
2021-08-15 10:42:27 +02:00
Richard Patel
67efa31bbd
create write_asm macro
2021-08-15 10:32:46 +02:00
Richard Patel
0c65617c69
macros: cleanup
2021-08-15 07:06:31 +02:00
Richard Patel
fb7bf08a06
Pluggable formatting engine ( #8 )
2021-08-15 03:53:38 +02:00
Richard Patel
9e5fa58e3e
auto-generate mnemonics function
2021-08-14 11:02:10 +02:00
Richard Patel
fca4e052a6
add info to Cargo.tomls
2021-08-14 10:31:21 +02:00
Richard Patel
18e0d430df
Create LICENSE
2021-08-14 10:18:38 +02:00
Richard Patel
d8e951befc
lib: use opcode masks ( #7 )
...
Implements a procedural macro for defining the ISA.
Moves validity checks to bitmasks instead of spaghetti code patterns.
Solves #1
2021-08-14 10:17:10 +02:00
Richard Patel
3971f22b11
macros: Generate Opcode::is_valid()
2021-08-14 09:05:30 +02:00
Richard Patel
f3aa97b365
Opcode table via procedural macro
2021-08-14 08:40:36 +02:00
Richard Patel
ecd06bf524
random instruction generator, use std::io::Write
2021-08-14 03:28:16 +02:00
Richard Patel
8b8bb66031
use fmt::Write instead of String, support stable toolchain
2021-08-14 03:01:19 +02:00
Richard Patel
0f5a439725
fix broken opcode decoding
2021-08-14 02:37:03 +02:00
Richard Patel
31d06e1373
mfspr, mtspr, bclr simplified mnemonics
2021-08-14 02:26:10 +02:00
Richard Patel
c953299b93
more unit tests
2021-08-14 02:12:20 +02:00
Richard Patel
4d29089e6e
more readable unit tests
2021-08-14 01:52:20 +02:00
Richard Patel
ec82c013cf
cleanup Ins struct
2021-08-14 01:45:59 +02:00
Richard Patel
9959cf2e7d
linting
2021-08-14 01:13:20 +02:00
Richard Patel
a94ee22d14
use write instead of format
...
Decreases fuzz time from 183s to 72s.
2021-08-14 01:10:52 +02:00
Richard Patel
7d2b8c16ca
cargo workspace layout, multithreaded fuzzer
2021-08-14 00:33:10 +02:00
Richard Patel
3fb8a76a2f
Add CI for cargo clippy, test ( #5 )
2021-08-13 23:07:47 +02:00
Richard Patel
0701bc7457
Simplify code
2021-08-13 22:42:31 +02:00
Richard Patel
ae8503b217
Implement all print instructions
2021-08-13 22:25:43 +02:00
Richard Patel
a08ef23ab6
remove unused print instruction
2021-08-08 18:55:05 +02:00
Richard Patel
cdd8088511
WIP printing
2021-08-08 18:54:37 +02:00
Richard Patel
a8de638aaf
Initial commit
2021-08-08 02:59:07 +02:00