Commit graph

87 commits

Author SHA1 Message Date
Mr-Wiseguy
ab80ff962e Make mod tool emit relocs and patch binary for non-relocatable symbol references as needed 2024-08-17 16:57:17 -04:00
Mr-Wiseguy
a7a4134123 WIP elf to mod tool, currently working without relocations or API exports/imports 2024-08-17 16:57:17 -04:00
Mr-Wiseguy
d8dcb43d5a Move elf parsing into a separate library 2024-08-17 16:57:17 -04:00
Mr-Wiseguy
04daa21908 Refactor elf parsing into static Context method for reusability 2024-08-17 16:57:17 -04:00
Mr-Wiseguy
ff7aae11df Restructure mod symbols to make replacements global instead of per-section 2024-08-17 16:57:17 -04:00
Mr-Wiseguy
a88bc6e16a Implement mod symbol parsing 2024-08-17 16:57:15 -04:00
Mr-Wiseguy
07f2569647 Remove some unused code and document which Context fields are actually required for recompilation 2024-08-17 16:56:17 -04:00
Mr-Wiseguy
ff5797a2aa Changed recomp port naming to N64Recomp 2024-08-17 16:56:15 -04:00
Mr-Wiseguy
9b0a349a5e Moved parts of recomp_port.h into new internal headers in src folder 2024-08-17 16:39:55 -04:00
Mr-Wiseguy
bb2fc8c67b Removed unnecessary config input to recompilation functions 2024-08-17 16:33:51 -04:00
Mr-Wiseguy
ddb8a08482 Move recompiler core logic into a core library and make the existing CLI consume the core library 2024-08-17 16:28:34 -04:00
Mr-Wiseguy
bce3baa99a Fix mov.d using the wrong input operand 2024-08-17 16:28:34 -04:00
Mr-Wiseguy
4fd4d6a883 Created Generator interface, separated operation types and tables and C generation code into new files 2024-08-17 16:28:31 -04:00
Mr-Wiseguy
bd44f0bb59 Added store instruction operation table 2024-08-17 16:27:01 -04:00
Mr-Wiseguy
812cc442d0 Finished moving float arithmetic instructions to operation tables 2024-08-17 16:27:01 -04:00
Mr-Wiseguy
9b1137eb6a Added CHECK_FR generation to binary operation processing, moved float comparison instructions to binary op table 2024-08-17 16:27:01 -04:00
Mr-Wiseguy
90a77a0e6e Add operands for other uses of float registers 2024-08-17 16:27:00 -04:00
Mr-Wiseguy
2997975199 Fixed likely swap on bgezal, fixed extra indent branch close and missing
indent on branch statement
2024-08-17 16:27:00 -04:00
Mr-Wiseguy
fb5af956b1 Added and implemented conditional branch instruction table 2024-08-17 16:26:59 -04:00
Mr-Wiseguy
024ba3959f More binary op types, moved binary expression string generation into separate function 2024-08-17 14:16:00 -04:00
Mr-Wiseguy
239a637e29 Initial implementation of unary operation table 2024-08-17 14:12:55 -04:00
Mr-Wiseguy
7268649c44 Initial implementation of binary operation table 2024-08-17 14:10:23 -04:00
Wiseguy
f8d439aeee
Add option to output multiple functions per file, defaults to 50 (#88) 2024-08-15 00:17:09 -04:00
Mr-Wiseguy
424a509b22 Allow zero-sized symbols in a specific range for patches, fixed cases where errors didn't terminate the recompiler 2024-08-15 00:00:25 -04:00
Mr-Wiseguy
4161ef68cc Made recompilation header include configurable 2024-08-15 00:00:25 -04:00
Mr-Wiseguy
dfd90057c9 Rewrote jal resolution to improve handling for overlapping overlays 2024-08-15 00:00:25 -04:00
Wiseguy
ba4aede49c
Add symbol reference file mechanism for elf recompilation (#82)
* Consolidate context dumping toggle into a single bool, begin work on data symbol context dumping
* Added data symbol context dumping
* Fix mthi/mtlo implementation
* Add option to control unpaired LO16 warnings
2024-07-02 21:42:22 -04:00
Anghelo Carvajal
16819a0515
Add libgultra_d functions to ignored_funcs (#60) 2024-06-21 08:38:15 -04:00
Scott Brenner
ecc9dc49e5
Bump actions/checkout to v4 (#76) 2024-06-10 12:31:50 +02:00
dcvz
ca096fd078 CI: Fix Windows CI after image updates 2024-06-07 10:42:47 +02:00
David Chavez
2a2df89349
Remove disable_warnings header include (#75) 2024-06-05 00:02:37 +02:00
David Chavez
8dfed04919
Update headers to use new namespace in N64ModernRuntime (#74) 2024-06-03 21:46:42 +02:00
Gilles Siberlin
6eb7d5bd3e
Implement hook insertion (#73)
* Implement function hook insertion

* Fix recompiled code indentation

* Add _matherr to renamed_funcs

* Replace after_vram by before_vram

* Emit dummy value if relocatable_sections_ordered is empty
2024-05-31 23:31:50 -04:00
David Chavez
5c687ee962
CI: Add Linux arm64 (#69) 2024-05-31 22:48:42 +02:00
Anghelo Carvajal
94b59d56f7
Mask the lower 3 bits of the de RSP operand (#55) 2024-05-17 22:38:19 -04:00
Mr-Wiseguy
e0e52d1fc3
Symbol file toml update (#52)
* Symbol input file mechanism

* Migration to new toml lib

---------

Co-authored-by: dcvz <david@dcvz.io>
2024-05-16 22:33:08 -04:00
Anghelo Carvajal
26c5c2cbb8
Implement tail calls in the middle of functions and allow recomping libgcc math routines (#43) 2024-05-14 18:56:23 -04:00
Anghelo Carvajal
5d46de6de0
Add more renamed_funcs (#35) 2024-05-14 15:06:47 -04:00
Tharo
d4fab15fcc
RSPRecomp: Add some features to help debug unhandled indirect jump targets (file+line of instruction and register dump) (#33) 2024-05-13 21:00:00 -04:00
David Chavez
706e7c5069
Add Initializers for Structs - Fix issue with Apple Clang (#31)
Fixes #30 also adds CI
2024-05-13 20:55:43 -04:00
Anghelo Carvajal
d7b223fde5
Implement bgezal/bgezall (#23) 2024-05-12 22:07:46 -04:00
Mr-Wiseguy
3ab0edf18a Changed RSPRecomp to take a toml config file instead of using hardcoded options 2024-05-12 20:30:02 -04:00
Tharo
dbf0e623c8
Implement doubleword multiply and divide, and conversions between doubleword and single/double precision floats (#16) 2024-05-11 14:08:15 -04:00
Mr-Wiseguy
5838e4223a Add license and readme 2024-05-10 17:19:30 -04:00
Mr-Wiseguy
0f813247a1 Added CMake build system, fixed warnings on clang, removed VS solution/projects 2024-04-20 21:05:50 -04:00
Mr-Wiseguy
32841e85b4 Changed RSP recompiler to emit different macros for loads and stores to handle unaligned access 2024-04-20 20:02:28 -04:00
Mr-Wiseguy
47c9033b61 Improved reloc pairing 2024-04-20 20:00:48 -04:00
Mr-Wiseguy
50d55bd171 Added manual sections input option, fixed bug with multiplications and added mthi/lo instructions 2024-04-20 20:00:29 -04:00
Mr-Wiseguy
72fe4ed79c Added some missing float comparison instructions and fixed functions incorrectly getting detected as the entrypoint 2024-03-11 00:15:31 -04:00
Mr-Wiseguy
9a4f650c9b Fixed relocatable section file path error using the wrong value, added an include for funcs.h to single-file output mode 2023-11-24 15:11:36 -05:00