34c1f7eff9
Removed Deref impl for DataTable.
2021-01-13 23:58:23 +00:00
bbfe541a6d
Fixed {Data, Func}Table::get_*.
...
`Directive` now implements `InstTargetFmt`.
2021-01-13 23:09:25 +00:00
930696eaec
Made same changes last commit did in DataTable to FunTable.
2021-01-13 22:38:27 +00:00
25c32f977c
Function table heuristics now take the known data table for filtering.
...
`Directive::decode_with_data` now returns a `Result`.
Fixed `DataType` not rounding strings to the next word.
`Data` now sorts by smallest first in case positions are equal.
Fixed `get_containing` in `DataTable` and added `get_starting_at`.
2021-01-13 22:33:10 +00:00
cba889642a
Inst::decode now returns a Result.
...
Added `Diretive::decode_with_data`.
2021-01-13 21:01:07 +00:00
ffd74f60ac
Added some documentation to both instruction iterators.
2021-01-12 17:28:57 +00:00
29643a72db
Removed custom implementation of DataType.
...
Removed `DataType::AsciiChar` and added `DataType::AsciiStr`.
`inst::Inst::decode` now takes a data and func table.
2021-01-12 15:19:07 +00:00
fcd376c9a5
Both tables now get the instruction range to limit their search.
2021-01-12 03:43:46 +00:00
5390df6d72
Exe can now be sliced by a position range.
2021-01-12 03:32:05 +00:00
d9bc90882b
Executable size and start positions are now dynamic.
...
Function labels are no longer printed at the start.
2021-01-12 03:20:13 +00:00
c443402400
Now parsing known tables before building parser.
2021-01-12 03:06:49 +00:00
8f2898f9a7
Added obtaining labels from other functions for targets.
2021-01-12 03:05:42 +00:00
83db95939a
pseudo::{load, store} now implement InstTarget and InstTagetFmt.
2021-01-12 02:40:15 +00:00
12f2abc638
Relaxed requirements of implementing InstTargetFmt to allow semi-targetable instructions.
...
`pseudo::load_imm` now implements `InstTargetFmt`.
2021-01-12 02:35:39 +00:00
dbfdc01a2e
basic::jmp now implements InstTargetFmt.
2021-01-12 02:28:22 +00:00
eb00824fbf
Improved decompiler's instruction formatting.
2021-01-12 02:21:08 +00:00
a559fa80a9
Added InstTarget and InstTargetFmt to format custom instructions with a target.
...
Removed `fmt::InstFmt::fmt_value` and `fmt::InstFmtWrapper`.
2021-01-12 02:13:00 +00:00
650d1272a4
Missing missing . in labels.
2021-01-12 01:40:07 +00:00
a892ad09f1
Removed pseudo::*Assign instructions.
2021-01-12 01:34:40 +00:00
27fc4e4a5a
Removed pseudo::jmp and made basic::{cond, jmp::reg} write the pseudo instrutions.
2021-01-12 01:30:30 +00:00
220d0068a6
Improved inst::iter.
...
The decompiler now successfully goes through functions, data and others.
2021-01-12 01:17:02 +00:00
267cfd1cd7
Finished the co-processor instructions.
2021-01-11 19:45:57 +00:00
ec0d1bcf0c
Added basic::co instructions (not finished yet).
...
Removed `InstFmt::mnemonic`.
2021-01-11 19:07:09 +00:00
9cc7d81e8e
Added pseudo::shift_assign instructions.
...
Fixed `pseudo::store` instruction being implemented wrong.
2021-01-11 17:47:52 +00:00
a00fd15d49
Added pseudo::{load, store} instructions.
...
Fixed `basic::{load, store}` instructions reading destination and source backwards.
2021-01-11 17:25:18 +00:00
cc44af744c
Fixed missing 0x when printing signed hex in some places.
2021-01-11 16:59:22 +00:00
e29c3ed4e0
Added pseudo::jmp.
...
Refactored `basic::{jmp, cond}`'s target calculation.
2021-01-11 16:58:20 +00:00
b72a857a8a
Added pseudo::move_reg instruction.
2021-01-11 16:25:59 +00:00
db2cac8840
Added pseudo::Nop instruction.
2021-01-11 15:58:42 +00:00
195e7d9f24
Added TryInto for all enum instructions.
...
Added `pseudo::load_imm` instrution.
Instructions are now only decoded if aligned to a word.
2021-01-11 15:39:12 +00:00
da41cb8eca
decompiler now just goes instruction by instruction.
2021-01-11 14:44:44 +00:00
8d08ed0d60
Directive now stores a reference to the string read.
...
`InstFmt` no longer requires the instruction bytes.
2021-01-11 14:41:42 +00:00
7fb0030128
Made Directive::Decode respect alignment.
...
Added several methods to `Pos` for alignment.
2021-01-11 14:20:20 +00:00
adf8538736
Added inst::Inst::decode and changed ParseIter to use it.
...
`Directive::decode` now only returns itself.
2021-01-11 14:05:10 +00:00
847e88d490
Added inst::InstSize.
...
Removed `Pos + i16` implementation.
Added `Pos + usize` implementation.
2021-01-11 13:45:16 +00:00
f0258052ba
Now allowing clippy::indexing_slicing globally in dcb-exe.
2021-01-11 13:03:20 +00:00
a40802a84c
Fixed load and store basic instruction being presented wrong.
2021-01-11 13:02:35 +00:00
affd7034e6
Added pseudo::Decodable trait for decoding pseudo instructions.
2021-01-10 15:01:16 +00:00
543283f04f
Added dcb_util::DisplayWrapper and now using it in dcb-exe.
2021-01-10 14:03:03 +00:00
c04eb2245a
Changed all Encodable::encode impl declarations to be consistent.
2021-01-09 15:57:11 +00:00
00bcbd1422
Revised inst::basic's documentation and added an extra indirection with basic::Raw.
2021-01-09 15:43:33 +00:00
88db3def6f
Removed the dcb-exe::exe::raw module (from last commit).
...
Moved `InstFmt` to it's own module.
2021-01-09 15:07:28 +00:00
c0b1ee4fc5
Revised documentation in dcb-exe::exe::inst.
2021-01-09 15:01:01 +00:00
764628e691
Revised dcb_exe::exe::pos's impls.
...
Ran `cargo fmt` on the whole project.
2021-01-09 14:37:15 +00:00
21a0d7a4cb
Revised documentation for dcb-exe::exe.
2021-01-09 14:19:44 +00:00
9dd35a19a7
Fixed test in dcb/src/lib.rs
2021-01-09 13:50:12 +00:00
2f4aea7eec
Revised documentation and lints for dcb-exe/lib.rs.
...
Fixed formatting in `mult::Inst`'s `InstFmt::fmt` impl.
2021-01-09 13:45:02 +00:00
c0b2fd8c62
Added FuncTable and Func back to dcb-exe.
...
Added an iterator over function, data and misc (`ExeItem`) for the executable.
2021-01-09 12:34:43 +00:00
854d90858e
Fixed basic::Inst not decoding everything correctly.
2021-01-08 17:43:06 +00:00
5ad6f6cb5e
Added basic::shift instruction.
2021-01-08 16:15:28 +00:00