water111
425cc6794c
[Compiler] Bug fixes ( #230 )
...
* fix method name and use-after-free during compile error
* doc fix
2021-02-03 11:07:47 -05:00
water111
bbe5a10d76
fix stuck inline test ( #229 )
2021-02-03 08:36:22 -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
3ea8cbea6f
misc small improvements ( #217 )
2021-01-27 15:39:50 -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
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