Commit graph

517 commits

Author SHA1 Message Date
water111 5985eaa7ac
Merge pull request #96 from xTVaser/file-io
Amalgamate FileIO and remove duplicate Timer header
2020-10-25 12:10:20 -04:00
water 15a66d9c62 add types 2020-10-25 12:07:10 -04:00
Tyler Wilding 5a5d88eb17 Amalgamate FileIO and remove duplicate Timer header
Closes #8
2020-10-25 02:27:48 -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
water111 fc1a8f37c6
Partially Implement Decompiler Type Analysis (#90)
* implement basic framework for decompiler type analysis

* before type system changes

* add some decompiler stuff to the type system

* try algorithm on a few functions
2020-10-18 15:44:19 -04:00
water111 3e798cd3aa
Add features for gkernel 2 (#89)
* in progress

* format
2020-10-17 11:18:58 -04:00
water111 d5d0d7f924
Add compiler features for gkernel (#83)
* add some type stuff for gkernel

* more tweaks

* blah

* more little tweaks and more of gkernel

* add static structures with integer fields but not basics

* static structures

* update gkernel
2020-10-16 17:08:26 -04:00
water111 118a1b29e3
Merge pull request #84 from xTVaser/goalc/auto-inspect
Add auto-generated `inspect` methods to `deftypes`
2020-10-15 22:07:53 -04:00
Tyler Wilding b8a4a4e7fb Correct compiler error 2020-10-15 21:58:15 -04:00
Tyler Wilding 28d732737f More customized format depending on the field type 2020-10-15 21:25:35 -04:00
doctashay 9410e01aaf
Implement logging features for decompiler (#78)
* Begin spdlog integration for decompiler

* Replace old prints with spdlog equivalents

* clang-format

* Fixes

* Log output to /logs/decompiler.log.

The console now prints that the disassembly has begun and it may take a few minutes to complete. This will reduce the amount of verbose logging output directly to a console stream.

* Update .gitignore

Ignore decompiler output for now

* Resolve more issues

Fixed percentage printing and various other issues

* Fixed stuff I broke (sorry)

* Fix more broke stuff
2020-10-15 20:59:30 -04:00
Tyler Wilding c72ca18f00 Add auto-generated inspect methods to deftypes 2020-10-15 00:39:27 -04:00
water111 8d91b47d00
Print strings in assembly (#81)
* print strings in disasm

* format
2020-10-14 14:21:47 -04:00
water111 3616b790bd
Add more array stuff and clean up field access (#80)
* implement some array stuff and clean up field access

* update goal change log
2020-10-14 13:42:14 -04:00
water111 ef1e8b9072
Tweak logger settings to make logging happen in order (#73)
* tweak logger settings to make logging happen in order

* clang format
2020-10-11 19:55:29 -04:00
water b1759dbd13 Merge branch 'doctashay-logging2' 2020-10-11 19:12:14 -04:00
water 651579c4bb Merge branch 'logging' of https://github.com/doctashay/jak-project into doctashay-logging2 2020-10-11 19:07:50 -04:00
water111 1e1b5e7c00
Make decompiler more successful (#66)
* w/early-return-and-break

* more edge cases

* all instructions in non asm functions now convert to ir

* cleanup

* implement rarely used control flow in IR

* clang format
2020-10-11 18:27:44 -04:00
water111 30e0e4204b
Merge pull request #70 from xTVaser/ci/actions-improvements
Github Actions enhancements
2020-10-09 21:46:48 -04:00
Tyler Wilding 68d0bd2d7b Merge remote-tracking branch 'water111/master' into ci/actions-improvements 2020-10-09 21:40:40 -04:00
water111 119a975a48
Merge pull request #71 from water111/w/clean-up-warnings
Clean up some warnings and add some extra integer tests
2020-10-09 21:38:16 -04:00
Tyler Wilding eb7b52989b Update README with new badges 2020-10-09 21:38:13 -04:00
water f7abe9c5f8 clean up some warnings and add some extra integer tests 2020-10-09 21:28:41 -04:00
Tyler Wilding b39b6c8ce6 Unrelated: Add back pretty-print tests 2020-10-09 21:19:33 -04:00
Tyler Wilding 911a115c61 Merge remote-tracking branch 'water111/master' into ci/actions-improvements 2020-10-09 21:18:25 -04:00
Tyler Wilding d868b35c57 Disable ccache for now, causing coverage problems 2020-10-09 21:18:05 -04:00
water111 0a231afdbb
Merge pull request #67 from xTVaser/generative-tests
Create more general Test Framework and Organize the bulk of current tests
2020-10-09 21:11:34 -04:00
Tyler Wilding a5972e5111 Github Actions enhancements 2020-10-09 21:08:16 -04:00
Tyler Wilding 4429632618 Prevent overflow causing negative numbers to be positive 2020-10-09 20:45:55 -04:00
Tyler Wilding bf3344cdd3 Remove negative hex test, windows is too good 2020-10-09 20:33:35 -04:00
Tyler Wilding 6e1dea4a65 Disable -Wshadow, also flakey test, or linux issue? 2020-10-09 20:23:31 -04:00
Tyler Wilding c34c0a898d Use ubuntu 20.04 which has GCC 8 atleast 2020-10-09 20:15:44 -04:00
Tyler Wilding f712c615ce Fix remaining failing tests 2020-10-09 19:44:16 -04:00
Tyler Wilding 76bede157d Merge remote-tracking branch 'water111/master' into generative-tests 2020-10-09 13:31:08 -04:00
Tyler Wilding b99b63af65 lint: Clang format 2020-10-09 13:24:55 -04:00
Tyler Wilding 83f2751795 Make all tests hermetic, only the tests with kernel left 2020-10-09 13:23:41 -04:00
Shay 0f916ed81e More minor fixes
spdlog now builds as a library with nasm workaround
2020-10-08 22:39:12 -06:00
Shay 4ddacae897 Merge branch 'logging-test' into logging 2020-10-08 22:21:22 -06:00
doctashay e97098ce7d Fixes
It looks like spdlog is fully integrated as a git submodule now? Should be good to merge
2020-10-08 22:19:56 -06:00
doctashay 23d0880793 Git submodule stuff 2020-10-08 22:15:27 -06:00
water111 adc09d7c79
Merge pull request #69 from xTVaser/cmake-pprint-workaround
Fix CMake/NASM issue on windows caused by spdlog.  Temporarily workaround slow pprint test
2020-10-08 23:55:06 -04:00
Tyler Wilding 274418f12a Reduce time on windows pprint test until pretty-printer is improved 2020-10-08 23:48:36 -04:00
Tyler Wilding 1574c95e73 Workaround NASM bug on Windows/MSVC
https://gitlab.kitware.com/cmake/cmake/-/issues/19751
2020-10-08 23:48:07 -04:00
doctashay 4a443132ff Merge branch 'logging' of https://github.com/doctashay/jak-project into logging 2020-10-08 09:17:24 -06:00
doctashay 8d9b87cfed Cleanup PR 2020-10-08 09:16:34 -06:00
doctashay a2b744dfe0
Merge branch 'master' into logging 2020-10-08 09:08:13 -06:00
Tyler Wilding df6e6dd2a2 Create new categorized test classes, for the most part just a copy of current tests into new framework 2020-10-08 00:06:48 -04:00
Tyler Wilding 097a9157f5 Copy over LISP code 2020-10-08 00:05:01 -04:00