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 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
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