Tony Wasserka
599f8f99ed
Thunks/gen: Add support for thunking APIs that return host function pointers
...
Interface definitions must enable this functionality by enclosing functions
that may be called through function pointers in a namespace annotated with
`fexgen::indirect_guest_calls`. The guest thunk must further link any host
function pointers to a guest-side instance of CallHostThunkFromRuntimePointer.
2022-06-24 11:56:36 +02:00
Ryan Houdek
e4d659a619
Merge pull request #1797 from FEX-Emu/skmp/remove-used-irs
...
IR: Remove GuestCallDirect, GuestCallIndirect
2022-06-23 10:45:01 -07:00
Stefanos Kornilios Misis Poiitidis
9ce94266e1
IR: Remove GuestCallDirect, GuestCallIndirect
2022-06-23 19:46:25 +03:00
Ryan Houdek
5a19425b28
Merge pull request #1792 from Sonicadvance1/fexserver
...
FEXServer: Adds new FEXServer service
2022-06-23 09:25:29 -07:00
Tony Wasserka
f27830bf41
Fix inconsistent allocation schemes used for RegisterAllocationData
2022-06-23 17:16:44 +02:00
Ryan Houdek
5fe6afc270
FEXServer: Adds new FEXServer service
...
This is a relatively invasive change since multiple things needed to
happen at once.
* Socket based logging is removed
* Logging has been replaced to only support stdout, stderr, and server
* Server is now default and replaces what FEXLogServer did
* Server logging now uses a pipe instead of a socket
* Can be faster than stderr and stdout since the application doesn't
need to wait on terminal output
* FEXMountDaemon has been removed
* Functionality has been merged in to FEXServer
* FEXServer is always executed on FEX initialization time
* Similar in behaviour to Wine's wineserver
* Can explicitly start this before using FEX for logging purposes
* Stays around until all instances of FEX exit
* Will stick around for a short amount of time in case of spurious
execution
* FEXServer will soon be extended to do more than logging and squashfs
mounting
* FEX rootfs scripts will need to be updated to support this path
* Just means rbinding the /tmp folder and forcing a FEXServer instance
to be alive
* Pressure-vessel works fine in this case since FEXServer will already
be running
* It already rbinds the host /tmp folder which is why this works
2022-06-23 07:51:56 -07:00
Stefanos Kornilios Misis Poiitidis
835155021d
Dispatchers: Use thread local emitters for backend callbacks
2022-06-23 13:33:56 +03:00
Stefanos Kornilios Misis Poiitidis
e2c5c2292d
Dispatchers: Use thread local emitters for backend callbacks
2022-06-23 13:20:03 +03:00
Stefanos Kornilios Mitsis Poiitidis
072690a191
Merge pull request #1782 from FEX-Emu/skmp/ipr-unified-dispatch
...
Backends: Unified dispatch, interface rework, cleanups
2022-06-23 07:03:14 +00:00
Stefanos Kornilios Misis Poiitidis
4dbcd34548
Backends: Rework some of the interfaces, unified backend dispatch
2022-06-22 22:24:42 +03:00
lioncash
58ae49372c
CoreState: Add register size constants
...
Gets rid of some magic numbers and reduces the number of things that
need to manually change (e.g. when supporting AVX and needing to
increase the xmm size).
2022-06-17 10:55:07 -04:00
Ryan Houdek
05d15fa052
AOTIR: Fix RAData free
...
This thing is allocated with malloc so it needs to be free'd with free.
This was poisoning asan runs.
2022-06-16 17:01:06 -07:00
Stefanos Kornilios Mitsis Poiitidis
0a62a4c571
Merge pull request #1775 from FEX-Emu/skmp/dispatcher-per-context
...
Make Dispatcher per Context from per Thread, Simplify TestHarnessRunner
2022-06-16 21:08:32 +00:00
Stefanos Kornilios Misis Poiitidis
525266e482
Core: Move common signal handling setup to context
2022-06-16 19:41:42 +00:00
Stefanos Kornilios Misis Poiitidis
503881f5df
Jit/Arm64: Fix ubuntu 20.04 include
2022-06-16 19:41:42 +00:00
Stefanos Kornilios Misis Poiitidis
04fd4f2bb4
Arm64Dispatcher: Add missing ExitFunctionLinker Pointer
2022-06-16 19:41:42 +00:00
Stefanos Kornilios Misis Poiitidis
472ce7c1e4
Context: Add DipsatcherConfig to class, minor header massaging
2022-06-16 19:41:42 +00:00
Stefanos Kornilios Misis Poiitidis
39f3406fba
Backends+Context: Make Dispatcher per Context from per Thread
2022-06-16 19:41:42 +00:00
Ryan Houdek
19b0a9cd7d
Merge pull request #1779 from lioncash/irname
...
Arm64/JIT: Use IR names in opcode implementations
2022-06-16 12:37:18 -07:00
Stefanos Kornilios Mitsis Poiitidis
eac579f714
Merge pull request #1778 from FEX-Emu/skmp/fix-thread-creation-race
...
Context: Fix CreateThread partial initialization issue
2022-06-16 18:17:34 +00:00
Stefanos Kornilios Mitsis Poiitidis
b0a31f7105
Merge pull request #1770 from FEX-Emu/skmp/custom-ir-handlers-2
...
Context: Decouple from CodeLoader, introduce generic CustomIREntrypoints
2022-06-16 18:04:18 +00:00
Stefanos Kornilios Misis Poiitidis
29163cfd07
Context: Fix CreateThread partial initialization issue
2022-06-16 17:51:49 +00:00
Stefanos Kornilios Mitsis Poiitidis
f05b24636f
OpDisp: Re add ShouldDump
2022-06-16 17:38:44 +00:00
lioncash
39466a3a8f
Arm64/VectorOps: Move arguments over to IR names
2022-06-16 12:03:33 -04:00
lioncash
bccf18f46c
Arm64/MoveOps: Move arguments over to IR names
2022-06-16 12:03:26 -04:00
lioncash
1109126e35
Arm64/MiscOps: Move arguments over to IR names
2022-06-16 12:03:18 -04:00
lioncash
98dd40c3a8
Arm64/MemoryOps: Move arguments over to IR names
2022-06-16 12:03:12 -04:00
lioncash
b1cfb104ff
Arm64/FlagOps: Move arguments over to IR names
2022-06-16 12:03:02 -04:00
lioncash
c339cfe184
Arm64/EncryptionOps: Move arguments over to IR names
2022-06-16 12:02:53 -04:00
lioncash
ca8e6a83e1
Arm64/ConversionOps: Move arguments over to IR names
2022-06-16 12:02:45 -04:00
lioncash
760217ab29
Arm64/BranchOps: Move arguments over to IR names
2022-06-16 12:02:38 -04:00
lioncash
ee9361bf41
Arm64/ALUOps: Move arguments over to IR names
...
Makes it a little easier to read.
2022-06-16 12:02:28 -04:00
Stefanos Kornilios Misis Poiitidis
18074307f6
Core: Add Creator, Data to CustomIRHandlers, return them + lock on Add
2022-06-15 01:48:32 +03:00
Ryan Houdek
63b70ff3d4
Merge pull request #1776 from lioncash/vixl-pcl
...
Arm64/EncryptionOps: Fix register specifiers in PCLMUL movs
2022-06-14 15:46:40 -07:00
lioncash
d5c039cdc7
Arm64/EncryptionOps: Fix register specifiers in PCLMUL movs
...
Prevents an assertion from firing in vixl, since the destination needs
to be a scalar
2022-06-14 10:15:27 -04:00
lioncash
08730c817a
X86Dispatcher: Qualify external includes
...
Qualifies external includes with <> instead of quotes
2022-06-13 10:55:44 -04:00
lioncash
34e086eec2
Arm64Dispatcher: Qualify external includes
...
Qualifies external includes with <> instead of quotes
2022-06-13 10:54:49 -04:00
lioncash
83c8a9b675
ArchHelpers/Arm64: Qualify external includes
...
Qualifies external includes with <> instead of quotes.
2022-06-13 10:52:39 -04:00
lioncash
a3db629fd6
Arm64Emitter: Qualify external includes
...
Qualifies external includes with <> instead of quotes
2022-06-13 10:50:03 -04:00
lioncash
64b3cef126
ARM64/JITClass: include dependencies
...
Includes dependencies directly used by the class. Also qualifies the
vixl includes with <> instead of quotes.
2022-06-13 10:43:13 -04:00
Stefanos Kornilios Misis Poiitidis
7100a2eaee
Context: Decouple from CodeLoader, introduce generic CustomIRHandlers
2022-06-13 11:07:16 +03:00
Stefanos Kornilios Mitsis Poiitidis
ffcde1823b
Merge pull request #1769 from FEX-Emu/skmp/interlocked-invalidate-2
...
Invalidations: Move invalidation locks to Context
2022-06-13 11:06:34 +03:00
Ryan Houdek
790bd9747f
Merge pull request #1756 from FEX-Emu/skmp/ipr-own-irlists
...
IPR: Store copy of IRLists, Dispatcher cleanups
2022-06-11 12:15:18 -07:00
Stefanos Kornilios Misis Poiitidis
83aa8731d1
Invalidations: Move invalidation locks to Context, extend InvalidateGuestCodeRange with optional callback
2022-06-11 17:15:41 +03:00
Stefanos Kornilios Misis Poiitidis
cc90fa5773
LookupCache: Review feedback & cleanups
2022-06-11 13:17:49 +03:00
Stefanos Kornilios Mitsis Poiitidis and Tony Wasserka
30ebc6c938
Update External/FEXCore/Source/Interface/Core/LookupCache.h
...
Co-authored-by: Tony Wasserka <4840017+neobrain@users.noreply.github.com >
2022-06-11 12:52:37 +03:00
Stefanos Kornilios Misis Poiitidis
a6e34d301e
Backends: Move and use INITIAL_CODE_SIZE, MAX_CODE_SIZE consts
2022-06-10 10:39:43 +03:00
Stefanos Kornilios Misis Poiitidis
d169c3ed4a
Context: Remove unused param from ClearCodeCache
2022-06-10 10:39:43 +03:00
Stefanos Kornilios Misis Poiitidis
563d11a702
IPR: Actually works now
2022-06-10 10:39:43 +03:00
Stefanos Kornilios Misis Poiitidis
31e2ba4696
IPR: Fix the build
2022-06-10 10:39:43 +03:00