Commit Graph

410 Commits

Author SHA1 Message Date
3eed1e930a Moved known/foreign data/func loading into the executable.
Slightly revised the data / func table interface.
2021-04-29 16:36:27 +01:00
4b559b7ce1 Added some more documentation to psx header. 2021-04-29 15:38:26 +01:00
3485d10e21 Removed unnecessary features flags. 2021-04-29 15:20:28 +01:00
c211a2fc86 Revised some names in parse::line and added some unit tests. 2021-04-29 12:06:25 +01:00
b572f1d922 Removed existing Addr{Hi, Lo} and renamed AddrSigned{Hi, Lo} to Addr{Hi, Lo}, as all addresses are siged when obtaining their lo and hi. 2021-04-28 20:13:04 +01:00
bff47fad58 Switched all current @addr_ to @signed_addr_, as they all use addiu, thus they are addresses. 2021-04-28 20:05:07 +01:00
a98c971306 Added some more overrides. 2021-04-28 20:03:58 +01:00
64c7d09b4b Added AddrSignedLo and AddrSignedHi label functions. 2021-04-28 19:40:37 +01:00
c10b9b0b5f Added warning on heuristic functions during argument override. 2021-04-28 19:40:04 +01:00
a5beaa479d Turned all heuristically found data locations used in the overrides to known data. 2021-04-28 16:48:34 +01:00
b152773621 Implemented validation for argument overrides. 2021-04-28 16:12:14 +01:00
cd6f64cb34 Updated parse::line to support label functions.
Fixed single-argument "nop" not being parsed.
2021-04-28 15:25:56 +01:00
926e2669f7 Renamed ParsingIter to DecodeIter. 2021-04-28 13:15:26 +01:00
cb07f9cd60 Added better instruction argument override.
Added more instruction argument overrides.
2021-04-27 19:58:41 +01:00
e5fae97779 `Added overriding for certain positions. 2021-04-27 19:15:04 +01:00
23c98ecd47 nop now doesn't have any arguments if only 1 nop exists.
Renamed and added some data / functions.
2021-04-27 17:48:06 +01:00
e2761ac842 Removed old line and renamed line2 to line. 2021-04-27 16:43:12 +01:00
f7c8572dd9 Added line2 for parsing. 2021-04-27 16:40:59 +01:00
f76179929f Now wrapping long comments. 2021-04-26 18:14:13 +01:00
53963b5a7e Switched to a 120 max width. 2021-04-26 18:07:33 +01:00
443c6f6c38 Fixed jalr not supporting parsing single argument.
Fixed `[ls]wc{n}` not supporting non-offset register arguments.
Fixed `li` prefering unsigned values.
`pseudo::{load, store}` now use their unique mnemonics to avoid collision with basic instructions.
`ParseCtx:arg_pos` now supports label offsets.
Added `Inst::write` to write instructions.
Added `Pos + i64` impl.
Brought back and fixed `dcb-compiler`.
Fixed current function labels not having a leading `.`.
2021-04-26 17:58:05 +01:00
be3a9d6ec0 main Inst, pseudo::Inst and Directive are now Parsable. 2021-04-26 16:32:19 +01:00
9b79f3b5c9 Added lifetime to Parsable trait. 2021-04-26 16:05:07 +01:00
f54325bafe Removed InstFmt, InstTargetFmt and InstTarget. 2021-04-26 15:39:27 +01:00
8d027e580f dcb-decompiler now uses the new instruction display trait.
`DisplayCtx` now supports custom label types.
`Directive::Dw` now returns a target instead of literal.
Main `Inst` now implements `InstDisplay`.
2021-04-26 15:25:41 +01:00
c066f3f2f8 Implemented InstDisplay for pseudo instructions and directives.
Added a lifetime and string variant for `InstFmtArg`.
Added a lifetime to `InstDisplay`.
Added `InstFmtArg::write` to write an argument.
2021-04-26 14:55:46 +01:00
d0bd0d22b3 Added InstDisplay for better instruction formatting. 2021-04-26 14:24:43 +01:00
3c7bed14e6 Store instructions now don't print a register offset if the offset is 0. 2021-04-26 12:24:42 +01:00
8c24f616e2 Renamed Encodable to Encode and Decodable to Decode.
Added `TryEncode` for fallible encodings.
2021-04-26 12:21:00 +01:00
2ebc4eca28 Removed Decodable::Raw now that they're all u32. 2021-04-26 12:09:51 +01:00
049ba7665e Moved Parsable, ParseError and ParseCtx to parse. 2021-04-26 12:07:16 +01:00
88cb7ed679 Moved line parsing into it's own module and renamed it's types to be preprended with Line. 2021-04-26 11:53:26 +01:00
17dfe03800 Added basic::Parsable for parsable basic instructions. 2021-04-26 11:45:22 +01:00
2e44a3e382 clippy::map_err_ignore is now allowed. 2021-04-25 09:46:24 +01:00
1cc35f830d Temporarily removed dcb-compiler while parsing is re-done.
Renamed some types in `inst::parse`.
2021-04-25 09:33:50 +01:00
bb7e0d40af Removed all Raw from inst::basic. Instructions are now decoded directly by their raw form.
`slti` and `sltiu` cannot be shortened anymore.
2021-04-25 09:24:17 +01:00
e6f09fa31c Started work on documenting all instructions. 2021-04-25 07:20:47 +01:00
47454a636d Added ModifiesReg for basic instructions. 2021-04-25 06:59:42 +01:00
8bba037a35 Started work on dcb-mkiso-bin. 2021-04-24 09:18:13 +01:00
b7dd263b37 Added some more documentation on file alphabet root, . and ... 2021-04-24 09:07:28 +01:00
35caa3ad3f Added dcb-uniso-bin to extract all files within the iso in a .bin file. 2021-04-24 09:06:57 +01:00
edbea08b4b DirEntry::read_dir now ignores . and ... 2021-04-24 08:25:30 +01:00
10257747e0 StrAlphabet may now be compared to [u8] and [u8; N]. 2021-04-24 08:22:40 +01:00
c8218c0ca2 Added FilesystemReader::primary_volume_descriptor to expose the primary volume descriptor. 2021-04-24 08:14:17 +01:00
5002933ffb Implemented DecDateTime::to_bytes. 2021-04-24 08:13:44 +01:00
8389195b67 Added StrArrAlphabet::as_bytes_arr. 2021-04-24 08:13:25 +01:00
a3fdbe5f7b Added without_version to iso9660 file strings to get the filename without anything else. 2021-04-24 07:42:29 +01:00
bf5e43a163 Undid reading of form 2 sectors, as it seems to be broken. 2021-04-24 07:42:09 +01:00
a67f67bb04 Now writing edc to sectors. 2021-04-24 07:08:50 +01:00
e91f348ca7 Started work on sector ecc. 2021-04-24 07:00:21 +01:00