water111
84c0522102
[decompiler] Add pass to generate a symbol definition map file ( #546 )
...
* add symbol order file
* class to struct fix for windows
2021-05-31 10:43:25 -04:00
water111
0f0902eabf
add config option for changing cond splitting behavior ( #522 )
2021-05-24 19:52:19 -04:00
water111
d719bf5677
[decompiler] support break ( #516 )
...
* support break
* finish implementation of break, decomp method 19 of res
2021-05-23 20:16:34 -04:00
water111
8d4b644a14
fix cond with else that is empty bug ( #470 )
2021-05-12 15:54:33 -04:00
water111
0599d144f8
[decompiler] Clean up config more ( #458 )
...
* remove global config
* fix dir
2021-05-11 20:49:54 -04:00
water111
433993074a
Clean up some errors/crashes in decompiler ( #452 )
...
* fix offline tests, clean up some warnings
* clean up warnings during decomp
* fix remaining crash issues
2021-05-11 16:43:13 -04:00
ManDude
fef9b139d7
Force-enable assert on release mode Windows build ( #440 )
2021-05-10 23:03:56 -04:00
water111
fa122356ec
[Decompiler] Fixes for dma-disasm ( #377 )
...
* small tweaks
* fix up some more dma stuff
2021-04-23 20:29:15 -04:00
water111
64c35ca453
[Decompiler] Stack Variables ( #338 )
...
* clean up type analysis
* get everything set up
* basic stack variables working
* partial load fix
* most of matrix
* add offline tests
2021-03-27 15:18:59 -04:00
water111
7fac11ddf5
Support 128-bit variables ( #336 )
...
* wip 128 bit support
* add a few more files to offline test
2021-03-25 16:02:48 -04:00
water111
99683c0dac
[decompiler] Add tests and fixes for vector-h and math ( #333 )
...
* before messing with ssa stuff
* fix ash
* bounding box
2021-03-24 19:16:31 -04:00
water111
9ffc6014e1
fix printing and add gstate ( #330 )
2021-03-22 20:04:00 -04:00
water111
e93d97dd07
[decompiler] gkernel offline test ( #321 )
...
* working on pointer math
* bug fixes
* gkernel passing with no anon functions
* update tests
2021-03-14 16:11:42 -04:00
water111
814480f9e5
[Decompiler] Replace type hint system and improve variable types. ( #320 )
...
* get gkernel and gkernel-h at least somewhat working in the offline tests
* strip comments from json
* switch hints to casts. online tests passing, offline passing up to gkernel
* variable retyping is added
* fix up casts in lets
* update
2021-03-13 16:10:39 -05:00
water111
9074a35b9b
[Decompiler] Fix printing of lets ( #314 )
...
* fix let prints and windows warnings
* missing include for windows
* windows again
2021-03-07 12:01:59 -05:00
water111
413c1f5c74
[Decompiler] Add offline tests ( #303 )
...
* add offline test for gcommon as an example.
* fix test
* unused var
2021-03-03 15:42:55 -05:00
water111
8775840265
[Decomp] Decompile engine math library types ( #272 )
...
* decompile some stuff
* fix typo
* playing around with trigonometry
* more progress on trig
* more trig
* comments and small fixes
* finish trig
2021-02-20 11:42:46 -05:00
water111
f1a93886e7
[Decomp] Decompile gstring ( #267 )
...
* decompile gstring
* update
* Update code_status.md
* Update code_status.md
* decompile gstate
* add test for states, hope it passes
* also test throw and catch xmms
* update doc
2021-02-16 20:37:48 -05:00
water111
aa9bcd07f4
[Decompiler] Flag uses of vf registers for values outside of functions ( #263 )
...
* clean up warning system
* add bad dependency warning
* add q and acc
2021-02-15 11:55:10 -05:00
water111
f8b63a3f92
[Decompiler] Put likely delay slots in their own block ( #237 )
...
* first part of fix
* atomic op conversion fix
* update tests
* oops
2021-02-06 17:04:03 -05:00
water111
a870bb53e4
[Decompiler] Expression 5 ( #218 )
...
* new method of inline-array-class
* up to new array
* wip side effect stuff
* prepare for pop barrier stuff
* add pop barrier
* add local vars hack to compiler
* fix bug, make sort work
* add test for array
* bug fixes
* another bug fix
* refactoring env variable print for casts
* more tweaks
* updates
* final cleanup
* codacy fixes
2021-02-01 20:41:37 -05:00
water111
b35beab372
[Decompiler] Add more expressions (Part 4) ( #215 )
...
* ref
* more
* one more
* up to insert cons
* recognize new
* fix memory bug!
* some mods to pair fields
2021-01-27 13:47:54 -05:00
water111
b59e33c005
[Decompiler] Expressions (Part 3) ( #213 )
...
* before inserting bonus instruction
* first part of refactor for return values
* find parent method working
2021-01-25 22:08:58 -05:00
water111
2f722e6379
[Decompiler] Expression Building ( #211 )
...
* up to ash
* add more expressions
* fix some return variable usage nonsense
* bfloat print working
* basic-type working
* type working, fix decompiler on all files
* clang format
2021-01-24 16:39:15 -05:00
water111
27f0a7ca44
[Decompiler] Begin expression conversion, rearrange tests ( #209 )
...
* refactor tests and analysis passes
* identity test working
* combine test categories with only a few cases
* more fixes
2021-01-23 16:32:56 -05:00
water111
4a97e15b40
[Decompiler] Remove most IR1 Analysis ( #207 )
...
* temp
* remove some of ir1
2021-01-22 22:03:58 -05:00
water
56d4ed1228
add stacking framework
2021-01-22 20:50:37 -05:00
water111
679b17ae6f
[Decompiler] Get used variables, handle function calls better, and minor cleanup ( #205 )
...
* small fixes, implement getting used variables
* improve printing of variables
* missing include
2021-01-19 21:45:17 -05:00
water111
40d328f4eb
[Decompiler] Test framework for decompiler regression tests and gcommon tests ( #200 )
...
* test framework for pre-expression compact stuff
* check ordering
* more tests
* final tests gcommon
2021-01-18 13:33:32 -05:00
water111
d6bbca5620
[Decompiler] IR2 form implementation ( #197 )
...
* begin ir2 form implementation
* temp
* small fixes
* fix test
2021-01-17 18:08:18 -05:00
water111
8f86f0f00e
add register usage pass ( #194 )
2021-01-12 19:20:08 -05:00
water111
fe693b5da2
[Decompiler] Implement IR2 Type Analysis Pass ( #193 )
...
* type analysis setup
* more framework
* update printing
* wip
* add type analysis pass
* fix tests
2021-01-10 20:46:49 -05:00
water111
2901f4a99e
[Decompiler] Write IR2 to file and implement some Atomic Op conversions ( #187 )
2021-01-09 20:01:48 -05:00
water111
5093b97cda
[Decompiler - New IR] Add AtomicOp ( #181 )
...
* wip decompiler ir
* add AtomicOp stuff
* fix windows build and warnings
* add instruction parser
* include
* make minilzo shared
* odr fix
* a
* fix merge conflicts
* move decompiler into namespace
* update the code coverage to include the decompiler
* add demo test
* add register use test to example test
2021-01-06 20:04:15 -05:00
water111
3331e9cd00
Replace spdlog ( #185 )
...
* remove spdlog
* clang format and fix windows
* add format shared
* windows sucks
2021-01-06 12:16:39 -05:00
water111
7af6dce1b2
[Decompiler] WIP Expression Stacking ( #178 )
...
* wip
* fix the stupid if thing
* update
* fix
* fix some ordering issues
2021-01-02 18:24:45 -05:00
water111
c811778d00
[Compiler] Add reset-here option to colored and constrained rlet vars ( #169 )
...
* add reset-here to clear coloring at entry to rlet
* update doc
2020-12-27 14:21:48 -05:00
water111
25301a8bbc
[Decompiler, Game] Run type prop on gstring ( #168 )
...
* run type prop on gstring
* add types-h
* new settings
* cmake switch
* down to 4 failing functions
* clang format
2020-12-26 11:09:59 -05:00
water111
cae3871730
[Decompiler] Experimental Expression Stack ( #157 )
...
* begin framework for expressions
* more
* clean up warnings
* small fixes
* update
* wip type prop improvements
* see if nasm works
* fix format strings
2020-12-17 15:48:07 -05:00
water111
9b32835faa
Type Prop - Second Attempt ( #142 )
...
* setup and run on identity
* temp
* temp2
* temp
* update
* mroe
* successful in gcommon
2020-11-28 15:35:38 -05:00
water
fb13f223fd
remove old bad type analysis code
2020-11-27 16:46:25 -05:00
water
921ae50669
add more utils
2020-11-27 16:38:36 -05:00
water
4fb8381105
add reginfo to basic ops
2020-11-27 14:46:55 -05:00
water
a9cfa19f92
add IR atomic interface and switch all basic ops to these
2020-11-26 22:16:59 -05:00
water111
a45d180f2c
Try to speed up the build ( #106 )
...
* first attempt
* attempt 2
* windows and formatting fix
2020-10-29 21:27:52 -04:00
water
a198196842
more types
2020-10-25 13:21:27 -04:00
water
15a66d9c62
add types
2020-10-25 12:07:10 -04:00
water111
b56025412b
Recognize auto-generated inspect methods and create deftypes from them ( #95 )
...
- Recognize new type definitions/parents/type flags in the decompiler
- Analyze autogenerated inspect methods and dump guesses at fields to a file
- Utility functions for accessing static data by label
- Better ordering in the decompiler to go through functions in the order they appeared in the source
- Added a decent number of types to `all-types.gc` based on the new field analyzer
- Correct a few `int`/`integer` mistakes in `gcommon.gc` (this should really be a warning)
- Correct a few type issues in `gcommon` and `gkernel-h`
- Option in the decompiler to be strict about `define-extern` redefining a type of a symbol
- Add a test to check consistency in types between `all-types.gc` (used by decompiler) and `goal_src` (used by the compiler)
2020-10-24 22:51:40 -04:00
water111
b561cdfade
Make decompiler naming consistent ( #94 )
...
* use a fixed object file naming by default, option to allow new map file creation
* fix prints
* fixing up edge cases
* update json config
2020-10-24 14:27:50 -04:00
water111
0bc2466f86
Add prototype decompiler GUI ( #93 )
...
* json output for basic ops
* add prototype gui
* add some more fields and layout the gui a little bit nicer
2020-10-23 17:20:04 -04:00