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
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
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
Tyler Wilding
e63abb0ea1
Improved test namings for multi-operations, added new ones, still a few failures ( #190 )
...
* Improved test namings for multi-operations, added new ones, still a few failures
* Review - Modifications to get all tests passing
2021-01-10 15:46:46 -05:00
water111
cd9a9af6dd
fix register info duplication ( #191 )
2021-01-10 11:08:03 -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
Tyler Wilding
69f7f46477
Add Address Sanitizer support to MSVC and CMake ( #182 )
...
* msvc: Add Address Sanitizer
https://devblogs.microsoft.com/cppblog/addresssanitizer-asan-for-windows-with-msvc/
* cmake: Add Address Sanitizer
* docs: Update ReadME
* see if we can replicate the test failure
* windows fixes maybe
* cmake: Compile with gcc and clang (only coverage on
* hacky try again
* clean up
* fix clang issues
* linting
Co-authored-by: water <awaterford111445@gmail.com>
2021-01-04 23:32:51 -05:00
water111
feead303aa
better array indexing ( #176 )
2020-12-31 22:15:17 -05:00
water111
c8d382b35c
[Compiler] Improve spills and register backups ( #175 )
...
* xmm spill
* improve getting stack variables
* improve symbol getting
* update changelog
2020-12-31 15:59:11 -05:00
water111
a80b331c27
[Compiler] In-progress support for vector float (AVX) ( #171 )
...
* begin work on vf support
* split reg kind into reg hw kind and class, use class for ireg
* try test
* clang format
* add some more ops and some example functions
* better lvf on statics
* add documentation
2020-12-30 15:33:51 -05:00
water111
4d713d5c8c
[Runtime] misc fixes to runtime and listener ( #170 )
...
* misc runtime fixes
* clang format
2020-12-28 18:37:05 -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
6bf9d97c51
[Decompiler] Improve reverse field lookup ( #167 )
...
* start on new reverse lookup
* use new reverse lookup
2020-12-25 15:04:03 -05:00
water111
3355df809a
Add boxed array type ( #163 )
...
* add array
* support static arrays
2020-12-19 21:05:18 -05:00
water111
11a82bbf08
[Compiler] Add static data features ( #162 )
...
* support static pairs
* also support strings
* reorganize static stuff
* add test
* support inlined fields
* add missing type check
2020-12-19 15:21:29 -05:00
water111
ba919a069c
Add another kernel test, fix small bugs ( #156 )
...
* temp
* run function in process test
* windows debug
* debug
* update
* update
* again
* update
* fix same bug in debugger
2020-12-10 20:26:40 -05:00
water111
e05f3ceefc
Implement gkernel
: Part 2 ( #155 )
...
* update
* small fixes
* deactivate
* simple kernel test
2020-12-08 21:41:36 -05:00
water111
d86964985a
Improve Register Allocator ( #154 )
...
* before adding IRegSet stuff
* use bitsets for live analysis
* speed up
* add stack structures
* organize new better
2020-12-06 15:42:26 -05:00
water111
06918e1fea
Implement gkernel
: Part 1 ( #150 )
...
* start gkernel implementation
* progress
* more of kernel
* swap to new dispatcher, will it work on windows
* update
2020-12-05 17:09:46 -05:00
water111
90e5c023f1
Basic Inline Assembly ( #149 )
...
* basic inline assembly support
* fix rlet
* clean up detail in IR and update documentation
2020-12-04 12:57:10 -05:00
water111
ea479bee98
Add enums and some cleanup ( #148 )
...
* support enums
* better compiler warnings
* tweaks to build with clang
2020-12-02 19:51:42 -05:00
water111
71dda76e2b
Add some compiler features and documentation ( #147 )
...
* update doc
* add disassemble and type checking
* improve compiler error messages
2020-12-01 21:39:46 -05:00
water111
21fbdce7aa
[Compiler] Bitfield Types ( #146 )
...
* add the ability to define and read bitfield types
* new set
* add bitfield setting
* add static bitfields
2020-11-29 18:01:30 -05:00
water
e93b54347f
add float min max to the compiler
2020-11-29 10:46:14 -05:00
water
dc32b59217
update
2020-11-28 20:53:13 -05:00
water
5b4b5c238e
update
2020-11-28 19:59:23 -05:00
water111
09142d1712
Support "game count" and v4 objects ( #140 )
...
* generate object, but not supported in linker yet
* add link and tests
* update types
2020-11-24 20:48:38 -05:00
water
eb30fc88b0
fix compiler bugs
2020-11-22 20:10:33 -05:00
water111
19b8bb81c9
Add the STR RPC to overlord and game code ( #134 )
...
* work in progress streaming rpc, simple test is working
* actually add the test
* debug windows failure
* windows fix maybe
* windows 2
* use str-load-status
* update types
2020-11-22 12:59:55 -05:00
water111
460ec874bb
Add support for stack integers ( #135 )
...
* add support for stack integers
* update documentation
* revise value type stack variables
2020-11-22 12:22:19 -05:00
water111
660ef41136
Update documentation and clean up ( #129 )
...
* cleanup
* clean up file layout
2020-11-21 12:52:38 -05:00
water111
29e4ff9e51
remove match param ( #127 )
2020-11-20 20:17:37 -05:00
water111
953c1512db
Process Text Files in Decompiler ( #122 )
...
* begin support for v2
* export game text
* generate text files
* working text load
* fix windows
* add test and clean up game tests a bit
* load the right file
* add separate program to launch the data compiler
* add offline test script
2020-11-19 21:22:16 -05:00
water111
ae053870c3
support escaping any character ( #125 )
2020-11-17 15:25:48 -05:00
water111
951f31878e
[Source Line Debugger] Tracking objects and IR ( #115 )
...
* track where segments are when debugging
* missing windows include
* figure out what function we're in
* addr to IR is working
2020-11-13 22:33:57 -05:00
water111
71a894c393
move GOAL stack to GOAL memory ( #114 )
...
* move GOAL code stack to GOAL memory
* fix win arg reg and check rsp in debugger
* fix windows maybe and fix some incorrect logging formatters
2020-11-06 21:42:05 -05:00
water111
c09541fa98
Add some debugger memory utilities ( #109 )
...
* add some memory utilities
* run waitpid in a separate thread and support very simple breakpoints
* fix breakpoints
* add missing windows stub function
* fix error message on exit
2020-11-06 13:59:39 -05:00
water111
566dc6070f
add zydis library and a simple test ( #108 )
2020-10-31 14:31:13 -04:00
water111
0451a06d76
Set up the compiler to ptrace the runtime ( #107 )
...
* set up the compiler to ptrace the runtime
* clang format
* move debugger state to a separate Debugger class
* support registers and break and continue
* documentation and fix windows
* make listener part of compiler, not a separate library
* implement memory read and write
* fix for windows
2020-10-31 14:07:43 -04: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
water111
dfe129373a
fix float loads, add dgo loading to game test ( #101 )
...
* fix float loads, add dgo loading to game test
* build and load dgos in order
2020-10-25 20:30:25 -04:00
water111
b56025412b
Recognize auto-generated inspect methods and create deftype
s 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
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
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
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
Tyler Wilding
68d0bd2d7b
Merge remote-tracking branch 'water111/master' into ci/actions-improvements
2020-10-09 21:40:40 -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
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
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
Tyler Wilding
274418f12a
Reduce time on windows pprint test until pretty-printer is improved
2020-10-08 23:48:36 -04: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
water111
b102d22dd9
Replace Form
with goos::Object
( #64 )
...
* add pretty printing to goos form
* temp
* fix format
* fix format
* fix windows build
* again
* windows
* Revert "windows"
This reverts commit b7d448e733
.
* windows again
* give up and just add a getter function
2020-10-04 17:08:10 -04:00
Tyler Wilding
663453769c
Final polish on the integer tests, time to start converting the rest
2020-10-03 18:32:01 -04:00
Tyler Wilding
282e53f1be
Concept is working, just needs some polish and can start translating the tests
2020-09-26 18:48:40 -04:00
water111
c9b53d51ff
Compiler Cleanup (Part 2) ( #56 )
...
* check on windows
* fix windows build
* version test
* clean up - will it work on windows
* fix formatting
2020-09-25 21:11:27 -04:00
water111
2d11e44eaf
Compiler Cleanup and Documentation ( #54 )
...
* start cleanup
* fix typos
* fix syntax highlighting in doc
* lots of documentation updates
* clean and add tests
* more documentation and more error messages
* more document and try building kernel differently
2020-09-24 17:19:23 -04:00
water111
27b865c0df
Add methods and pointers ( #53 )
...
* method calls and sorting
* add more tests and fix some alias stuff
2020-09-19 16:50:42 -04:00
water111
cee6c21603
Add basic features for types and objects ( #52 )
...
* started adding simple functions in gcommon
* more tests and features
* more tests, debug windows
* debug prints for windows
* back up some regs for windows
* remove debugging prints
2020-09-19 13:22:14 -04:00
water111
c7c342ce7e
Add defmethod and some uses of the deref operator ( #51 )
...
* add tests for various xmms
* use unaligned stores and loads to back up and restore xmm128s and also fix argument spilling bug
* add deftype
* add deref and fix some method _type_ things
2020-09-18 22:02:27 -04:00
water111
abcd444a3b
Add deftype ( #48 )
...
* initial deftype implementation
* fix library setup for windows
* implement deftype
* fix memory bug
* fix formatting
2020-09-17 21:47:52 -04:00
water
ca3acdb5ec
add format order test and fix reg order for windows
2020-09-15 18:49:55 -04:00
water
aadc274a89
Remove bad format test
2020-09-14 20:35:31 -04:00
water
8308bfb451
Merge branch 'master' of https://github.com/water111/jak-project into w/math_5
2020-09-14 20:31:46 -04:00
water
a47620fd6d
add more math
2020-09-14 20:24:05 -04:00
Tyler Wilding
9737dfad34
Add #pragma once to all headers
...
Resolves #19
2020-09-13 21:36:35 -04:00
water
9ec9b5a22a
add conditional stuff
2020-09-13 17:34:02 -04:00
water
e7f8620c92
add floats and inline stuff
2020-09-13 10:44:12 -04:00
water111
90a7e9b4b9
Add addition and subtraction for integers, build macros, dgo building, and build/load test ( #35 )
...
* see if math works on windows
* add dgo
* windows debug
* windows debug 2
* one more debug try
* add extra debug print and change logic for slashes
* update
* again
* try again
* remove build game
* remove build game
* add back build-game
* remove runtime from test
* test
* reduce number of files
* go to c++ 14
* big stacks
* increase stack size again
* clean up cmake files
2020-09-12 20:41:12 -04:00
water111
d56540f8c0
Add lambda and static objects ( #30 )
...
* add some more tests for let
* support static strings
* add function calling
* add prints for windows debgu
* one test only
* try swapping r14 and r15 in windows
* swap back
* disable defun for now
* fix massive bug
* fix formatting
2020-09-12 13:11:42 -04:00
water111
de5aa7e5e4
Move duplicated utilities to the common util folder and remove NEXT_DIR
( #29 )
...
* move things to the common library and remove next_dir
* fix for windows
* one last windows fix
* last fix for real this time
* debug listener test
* fix listener threading bug
2020-09-10 20:03:31 -04:00
blahpy
89e8ec40ed
Merge branch 'master' into master
2020-09-11 09:18:12 +12:00
water111
01883da47e
Fix Listener Socket Timeout on Windows ( #28 )
...
* try checking for timeouts differently on windows
* hopefully this test fails on windows
* hopefully this test passes on windows
* remove debug prints
* remove commented otu code
2020-09-09 20:14:13 -04:00
blahpy
efe94dca79
Format using clang-format
2020-09-10 10:35:29 +12:00
blahpy
9f1d6792e2
Fix errors in common_util
2020-09-09 18:41:45 +12:00
blahpy
eb886d0c45
Upload new files
2020-09-09 16:54:16 +12:00
water
24e79f66bc
try increasing timeouts and decreasing test iterations to make test shorter
2020-09-08 21:26:09 -04:00
water
d52ec34a22
Merge branch 'master' of https://github.com/water111/jak-project into w/ir
2020-09-08 21:05:22 -04:00
water111
e756e3559c
Merge pull request #15 from xTVaser/ci/codecov
...
Add Coveralls.io
2020-09-08 21:04:30 -04:00
water
551d989732
so close
2020-09-08 20:01:46 -04:00
water
f0328dcc92
Merge branch 'master' of https://github.com/water111/jak-project into w/ir
2020-09-08 19:39:39 -04:00
water
c9e99b8ebe
add a separate cmake configuration for code coverage builds
2020-09-08 19:15:38 -04:00
Tyler Wilding
fff501d786
Corrections to fix linux, and further cleanup
2020-09-08 19:15:14 -04:00
Tyler Wilding
570d64c6a3
Add coverage badge
2020-09-08 16:08:52 -04:00
Tyler Wilding
8f1ddca825
Add Coveralls.io
2020-09-08 15:47:25 -04:00
Tyler Wilding
871f1b43b0
Remove the problematic Multiple Deci tests
2020-09-08 14:12:04 -04:00
Tyler Wilding
84e0bee6f4
Use shim in Listener/Deci2Server
2020-09-07 19:59:44 -04:00
water
1394cf13cd
17 of 124 compiler tests passing
2020-09-07 19:17:48 -04:00
water
ee4eb9f128
add some basic symbol stuff
2020-09-07 13:28:16 -04:00
water
d49b01e310
working return integer tests as part of gtest
2020-09-06 16:58:25 -04:00
water111
2075dd66b6
Add ObjectGenerator and Register Allocator ( #10 )
...
* start the ObjectFileGenerator
* finish v3 generation
* add analysis for register allocator
* add register allocator
* fix const
* fix build
* fix formatting for clang-format
* attempt to fix windows build
* windows 2
* windows 3
* windows 4
* windows 5
* windows 6
2020-09-05 16:37:37 -04:00
Tyler Wilding
dcde103c26
Address compiler and test failures
2020-09-03 23:56:35 -04:00
Tyler Wilding
ef09eb12c8
Add a bunch of #ifdefs to keep things working as expected on linux
2020-09-03 22:24:50 -04:00
Tyler Wilding
f68f220e5b
Merge remote-tracking branch 'water111/master' into windows-nodeci
2020-09-03 20:16:28 -04:00
Tyler Wilding
f231fc9be1
Merge branch 'windows-nodeci-before-merge' into windows-nodeci
2020-09-03 20:06:14 -04:00
water
ba37e241ce
all basic integer and floating point instructions are implemented
2020-09-02 17:34:33 -04:00
water
4723153a4b
more progress on emitter integers
2020-09-02 16:24:13 -04:00
doctaweed
8680e8ecb0
Update CMakeLists.txt
2020-09-01 17:37:02 -06:00
water
bea7167fbb
add rip addressing
2020-08-30 20:39:39 -04:00
water
92e1c0b496
more loads and stores
2020-08-30 10:56:42 -04:00
water
5100aa6a30
add some stores
2020-08-29 22:41:46 -04:00
water
a2e04508f6
add all loads
2020-08-29 21:04:21 -04:00
water
bf7a496bb0
implement some loads and stores
2020-08-29 19:13:29 -04:00
Tyler Wilding
b2a6364533
Comment out only remaining broken test
2020-08-29 17:11:49 -04:00
doctaweed
b9216e9a91
Gtest Fixes
...
All 16 tests in test_reader.cpp pass as expected now
2020-08-29 15:10:46 -06:00
doctaweed
ded5e3e4c0
Gtest fixes
2020-08-29 14:15:58 -06:00
Tyler Wilding
a87060320a
Cleaned up some unneeded changes
2020-08-29 15:11:16 -04:00
Tyler Wilding
14c1b8be74
working my way through the tests
2020-08-29 14:52:45 -04:00
Tyler Wilding
d38ec3f44c
Add some premade launch configs, and fix google test
2020-08-29 00:01:55 -04:00
water
2ac07ae6bd
start docs
2020-08-28 20:16:30 -04:00
water
485f4aa1f5
one more print spam fix
2020-08-28 14:33:08 -04:00
water
bdde6d933c
update doc and finish lca implementation
2020-08-28 14:29:38 -04:00
water
75f63d8ff3
add typecheck and tests
2020-08-27 16:47:54 -04:00
water
a32e6288ac
Merge branch 'master' of https://github.com/water111/jak-project into w/type-system
2020-08-26 23:29:23 -04:00
water
d2992ba4fe
type system method tests
2020-08-26 23:07:55 -04:00
Tyler Wilding
51c23aaede
A whole bunch of cmake fixes
2020-08-26 22:23:16 -04:00
Tyler Wilding
e6e96400c8
commit doctor's latest changes
2020-08-26 21:02:24 -04:00
Tyler Wilding
3c4fcbdd34
clang-format all the things
2020-08-26 01:21:33 -04:00
Tyler Wilding
50814f8529
Add Github Actions and cleanup most test spam
2020-08-26 01:19:54 -04:00
water
7b641170bf
begin work on new type system
2020-08-24 00:06:07 -04:00
water
fab35c46bd
add old goal tests, just as a reference
2020-08-22 22:32:18 -04:00
water
acf086a3d2
check in existing work
2020-08-22 22:30:12 -04:00