Ryan Houdek
199cfd76d8
Refactor IR and other changes that are hard to split
...
I had to change how blocks are represented to make it easier to parse
This required a fairly substantial refactor that makes it so blocks are
represented differently and we can walk them sequentially.
This will make future analysis easier to deal with.
Had to rewrite the passes and core's parsing of the IR afterwards.
Moved RA in to a optimization pass to be shared between the JIT backends
This works because x86-64 and AArch64 RA can be identical.
Still doesn't support PHI nodes or spilling correctly, this is the first
step in the process of getting there.
2020-03-06 07:55:13 +02:00
Ryan Houdek
6ac9f93d0d
Update vixl submodule
2020-03-06 07:54:33 +02:00
Ryan Houdek
2975161e89
Cleanup the Frontend x86 decoder
...
Makes it easier to follow the source
2020-03-06 07:54:32 +02:00
Ryan Houdek
71a9713970
Add some stracing to the syscall emulation
2020-03-06 07:54:32 +02:00
Ryan Houdek
55b4eb8689
Defined a few more Linux syscalls
2020-03-06 07:54:32 +02:00
Ryan Houdek
c2e8c8d430
Minor cleanup in BlockCache
2020-03-06 07:54:31 +02:00
Ryan Houdek
47d91e05f0
Add ioctl to filemanagement
2020-03-06 07:54:31 +02:00
Ryan Houdek
e59a6fcd5d
Add cmake message about which JIT we are using
2020-03-06 07:54:30 +02:00
Ryan Houdek
0e35fddac6
Fixed shadowed variable warning
2020-03-06 07:54:29 +02:00
Ryan Houdek
185f6c78a9
Cleans up X86Tables and removes a bunch of templates and lambdas
...
Drops compile time dramatically
2020-03-06 07:52:38 +02:00
Ryan Houdek
e78ad71f4f
Fixes IR definition file getting rebuilt every time ninja is ran
...
Speeds up rebuild time significantly
2020-03-06 07:52:37 +02:00
Ryan Houdek
6dd6f83c30
[X86Tables] Fixes and implements five instruction's flags
2020-03-06 07:52:36 +02:00
Ryan Houdek
925ce8b35e
[CPUBackend] Add custom dispatch virtual functions to be implemented
2020-03-06 07:52:36 +02:00
Ryan Houdek
0d20ec0f2c
[MemoryMapper] Adds debug only GetPointer with size check.
2020-03-06 07:52:35 +02:00
Ryan Houdek
92d4aaf2e2
Partial FXSave/FXRStor instruction implementations.
2020-03-06 07:52:35 +02:00
Ryan Houdek
3e4743512d
Stub FXSave and FXRStor instructions. Necessary for launching dynamic apps from ld.so
2020-03-06 07:52:34 +02:00
Ryan Houdek
febd707634
Removes some debug logging in the file manager and stops explicitly avoiding the ld.so.cache
2020-03-06 07:52:33 +02:00
Ryan Houdek
46f983fbb6
Minor fix to SHL op to not update flags if the shift amount was zero.
2020-03-06 07:52:32 +02:00
Ryan Houdek
f503bd573f
Fix CBW/CWDE/CDQE instruction storage
2020-03-06 07:52:28 +02:00
Ryan Houdek
ab63fdc6d5
Adds some missing flags on the SETcc ops
2020-03-06 07:51:55 +02:00
Ryan Houdek
c65f148fa8
Update git submodules to point to the correct vixl repo
2020-03-06 07:51:42 +02:00
Ryan Houdek
065e72141a
Reenable optimization passes
...
Keep validation pass disabled for now
2020-03-06 07:51:08 +02:00
Ryan Houdek
f7834cb32c
Let the IRCompaction pass DCE dead ops
2020-03-06 07:50:24 +02:00
Ryan Houdek
8c8be231d8
Cleanup some ugly usage of OrderedNode's NodeOffset
...
ID() gives us the clean ID, no need to calculate it manually
2020-03-06 07:50:15 +02:00
Ryan Houdek
40cad15da9
Cleanup old IR emitter functions
...
Argumentless IR emitter functions were prone to generating invalid code.
Remove them from the python emitter and change the branch instructions
that were using them to a new version instead.
Adds NumUse tracking as well.
2020-03-06 07:48:41 +02:00
Ryan Houdek
7252050e42
Initial commit
2020-03-06 07:48:39 +02:00
Stefanos Kornilios Mitsis Poiitidis
a468d10d56
SonicUtils: Move to External/SonicUtils
2020-03-06 07:24:46 +02:00
Ryan Houdek
2e8fda02dd
Downgrade some asserts to debug messages instead
2020-03-03 02:24:58 -08:00
Ryan Houdek
33daca99e2
Adjust the project to be able to be installed
...
Cleans up file locations
2019-11-14 23:10:13 -08:00
Ryan Houdek
43ec043478
Fixes PML4 calculation to not be completely broken
2019-11-05 06:02:38 -08:00
Ryan Houdek
1d5e79744d
Adds a bunch of changes for ELF shared library support
...
Isn't complete but it is getting there
2019-10-09 17:28:35 -07:00
Ryan Houdek
5efe93fac9
Some changes
2019-09-07 19:23:03 -07:00
Ryan Houdek
d68f54542d
Disable LogManager's assert function when in a release build
2019-07-07 22:18:46 -07:00
Ryan Houdek
f078b299a0
Improve VM utility code
2019-07-07 22:18:26 -07:00
Ryan Houdek
6a2f79fa2c
Remove printf that was left in
2019-05-30 05:04:47 -07:00
Ryan Houdek
63f375d410
Add an Event helper class
2019-05-30 05:01:44 -07:00
Ryan Houdek
00407d0454
Implement an x86-64 KVM interface library
...
It isn't all encompassing but it is good for an initial implementation
2019-05-30 05:00:41 -07:00
Ryan Houdek
9f5009e0ae
Clean up the ELFLoader and LogManager
2019-05-30 04:52:02 -07:00
Ryan Houdek
c96e1c02d5
Minor changes
2018-11-28 07:03:26 -08:00
Ryan Houdek
dce985f859
Initial Commit
2018-11-15 18:05:16 -08:00