Richard Patel
c8c1daaa64
progress mnemonics
2022-04-06 17:41:13 +02:00
Richard Patel
eb39f9fa47
add generated code
2022-04-06 15:14:03 +02:00
Richard Patel
5431836376
switch from macro to ahead-of-time generated code
2022-04-06 15:13:55 +02:00
Richard Patel
171666e6fc
progress
2022-04-06 14:07:57 +02:00
Richard Patel
dff1075737
support permanent suffixes
2021-08-29 09:05:52 +02:00
Richard Patel
40142dcd9b
support mnemonic suffixes
2021-08-29 09:02:31 +02:00
Richard Patel
756e23f240
fix fuzz and rand crates
2021-08-29 06:29:49 +02:00
Richard Patel
f04c68578b
re-implement formatting
2021-08-29 06:06:08 +02:00
Richard Patel
5833e81236
generate def/use information
2021-08-29 04:25:39 +02:00
Richard Patel
d0409f599b
cleanup, remove stale codegen defs
2021-08-25 03:37:02 +02:00
Richard Patel
7a6b4df8d4
big rewrite, everything half broken
2021-08-25 03:23:57 +02:00
Richard Patel
ec727af8dd
isa.yaml: add fields
2021-08-24 03:30:03 +02:00
Richard Patel
e57fa2c659
dol: fix missing derives
2021-08-24 02:42:52 +02:00
Richard Patel
25f82bc26b
isa.yaml: correct uses or rA zero special case
2021-08-24 02:40:58 +02:00
Richard Patel
a6a47156a3
add isa.yaml
2021-08-24 02:19:12 +02:00
Richard Patel
8c5ddf4057
Read from DOL
2021-08-22 04:09:51 +02:00
Richard Patel
7b63bfa533
Restructure, implement naive data ref detection
2021-08-22 03:09:49 +02:00
Richard Patel
7ddae6e170
add dol crate
2021-08-22 01:25:01 +02:00
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