Ryan Houdek
afa869e1f2
Adds Config.h generated file
...
Gives us the install path and FEXInterpreter locations
2021-03-23 19:12:18 -07:00
Stefanos Kornilios Mitsis Poiitidis
e9ea4cbb76
FEXCore: Move to Externals/FEXCore
2020-03-06 09:07:37 +02:00
Ryan Houdek
ec5f3a6854
Fixes LEA instruction
...
LEA changes behaviour based on the ordering of the prefixes on the
instruction
eg:
66 48 8d 3d ffffffff: lea rdi, [rip - 1]
48 66 8d 3d ffffffff: lea di, [rip - 1]
So we need to know the order of a few of the prefixes.
In the future this should probably be switched to a three deep stack to
have the ordering but for now this'll do
2020-03-06 07:56:17 +02:00
Ryan Houdek
692a93c604
Adds an optional SetMemoryBase CodeLoader function
...
This is necessary for the code loader to know where the memory base is
for unified memory
2020-03-06 07:56:16 +02:00
Ryan Houdek
0eb5e2b332
Adds unified memory option without supporting it yet
...
This allows you to set the option from the frontend but it doesn't yet
do anything.
2020-03-06 07:56:16 +02:00
Ryan Houdek
ed12a8a242
Fixes x86 instruction decoding.
...
In the case of modrm + immediate then the immediate would end up
overwriting Src1 due to the the order of the decoding.
Changes Src1 and Src2 to an array and use a variable to index the array.
Causes a bit of code churn but fixes instruction decoding and allows
easier expansion in the future for instructions that have more sources
like AVX
2020-03-06 07:56:15 +02:00
Ryan Houdek
472ec5f5cf
Adds 11 new emulated syscalls
2020-03-06 07:56:15 +02:00
Ryan Houdek
10878aae45
Don't force ThreadState to be packed
2020-03-06 07:56:08 +02:00
Scott Mansell
7f840aa3e9
Basic FADD implementation
...
Only handles addition of two positive numbers
2020-03-06 07:56:07 +02:00
Ryan Houdek
6ee7d493f3
Adds the ability to set a rootfs overlay path
2020-03-06 07:56:07 +02:00
Scott Mansell
1dee7cb037
Append x87 flags to cpustate flags[]
2020-03-06 07:56:06 +02:00
Scott Mansell
7ec68ce815
Fix decoding legacy 66 0F XX insturctions.
2020-03-06 07:56:03 +02:00
Ryan Houdek
1b4e9434e4
Add accurate std output option
...
This gives us accurate stdout and stderr output.
Useful for terminal applications that take advantage of ncurses or
similar
2020-03-06 07:56:02 +02:00
Scott Mansell
2babc1292c
GdbServer: Breakpoint intergation
2020-03-06 07:56:01 +02:00
Scott Mansell
e050eace1d
Refactor context start/pause/step interface
2020-03-06 07:56:01 +02:00
Scott Mansell
545b542f9b
GdbServer: Implement xml target for register order
...
We can now simply memcpy much of memory state.
2020-03-06 07:56:01 +02:00
Ryan Houdek
7a4d0fbfd3
Fixes bug in 64bit def mod instructions that are in 16bit mode
...
These would have been forced to 64bit when they would have wanted to be
operating in 16bit mode.
Fixes that.
2020-03-06 07:55:59 +02:00
Ryan Houdek
bc294164e3
Updates project to allow it to be installed
...
Installs as both a static library and a shared library
2020-03-06 07:55:59 +02:00
Ryan Houdek
939e210a68
Updates SonicUtils
...
Makes changes to match latest changes
2020-03-06 07:55:54 +02:00
Ryan Houdek
7e685f3d89
Adds missing vector include to CodeLoader
2020-03-06 07:55:46 +02:00
Ryan Houdek
e510b9e82b
Remove LogManager reference from public FEXCore header
2020-03-06 07:55:46 +02:00
Ryan Houdek
b58b5687e0
Fixes AArch64 custom ASM dispatcher
2020-03-06 07:55:46 +02:00
Ryan Houdek
5db8de625a
Adds a few new instructions to the X86Tables
...
I managed to hit these when messing with Multiblock.
2020-03-06 07:55:37 +02:00
Ryan Houdek
7da7880a41
Splits X86Table definitions in to multiple files
...
Allows YouCompleteMe to handle these files and makes recompiling less of
a pain when one line is changed.
2020-03-06 07:55:36 +02:00
Ryan Houdek
f27f9485f6
Changes IR::CondJump's condition to dump textually.
2020-03-06 07:55:33 +02:00
Ryan Houdek
6d92146578
Flesh out X86Tables some more
...
Adds an EVEX table and throws some ops in to an unimplemented function.
This is necessary for multiblock in the future where it will see
unsupported instructions but not actually execute them.
2020-03-06 07:55:18 +02:00
Ryan Houdek
3f0d020899
Add support for an Invalid NodeWrapperIterator
2020-03-06 07:55:17 +02:00
Ryan Houdek
db5467211c
Fixes the AArch64 JIT
...
Moves it to the new IR iterating style.
Forgot to clear icache after generation.
Fixes overly aggressive struct packing causing a fault
2020-03-06 07:55:16 +02:00
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
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
925ce8b35e
[CPUBackend] Add custom dispatch virtual functions to be implemented
2020-03-06 07:52:36 +02:00
Ryan Houdek
92d4aaf2e2
Partial FXSave/FXRStor instruction implementations.
2020-03-06 07:52:35 +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
33daca99e2
Adjust the project to be able to be installed
...
Cleans up file locations
2019-11-14 23:10:13 -08:00