Lioncash
ef7aff796f
General: Resolve -Wignored-qualifiers warnings
...
Removes const qualifiers that don't do anything to the interface.
2021-06-16 21:51:45 -04:00
Lioncash
100bc4c833
Context: Move GPR size retrieval to its own function
...
This is repeated in quite a few spots, so we can place it in a utility
function and just call it instead.
2021-06-16 16:14:26 -04:00
Ryan Houdek
599b579192
Adds a ShutdownStaticTables context function
...
Due to a mixture of allocators this needs to be shutdown in the correct location.
A little bit dirty but is necessary without a full refactor
2021-06-09 18:00:54 -07:00
Ryan Houdek
dfc454873c
Moves AOTIR cache queue object to be inside the context
...
This fixes a crash that occurs due to mixing memory allocators.
This PR has tickled the allocation just enough that it broke
2021-06-08 02:44:40 -07:00
Lioncash
341b811642
Utils: Add CompilerDefs.h for compiler-specifics
...
Puts a layer of separation around compiler specifics (and also makes
them nicer to write).
2021-06-05 13:55:54 -04:00
Lioncash
1936ebc59c
General: Add missing const specifiers where applicable
...
Minor change that adds missing const specifiers to getters that don't
modify internal class state.
2021-06-03 20:24:27 -04:00
Stefanos Kornilios Mitsis Poiitidis
d70c91ddc6
AOTIR: Multi-threaded AOTGen
2021-05-19 14:19:55 +03:00
Stefanos Kornilios Mitsis Poiitidis
df8f1850ae
AOTIR: .aotir files are now stream-written
2021-05-11 14:37:12 +03:00
Stefanos Kornilios Mitsis Poiitidis
ee8f8ed176
Improve error handling
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
244ef94e9b
AOTIR: Generate list of files with code, add Scripts/FEXUpdateAOTIRCache.sh to generate all files
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
a85ef061d1
AOITR: Add AOTIRGenerate fo FEXLoader option that does generation
2021-05-01 09:40:50 +03:00
Stefanos Kornilios Mitsis Poiitidis
0897fc4a0a
pretrans wip
2021-05-01 09:40:49 +03:00
Stefanos Kornilios Mitsis Poiitidis
32b4b02302
AOTIR: mmap based loading
2021-04-28 13:08:43 +03:00
Stefanos Kornilios Mitsis Poiitidis
80493487db
ELF Loading: Cleanups all around
2021-04-14 10:59:23 +03:00
Stefanos Kornilios Mitsis Poiitidis
59ce750af6
Elf: Add ELFCodeLoader2, with simplified loading logic
2021-04-13 15:59:36 +03:00
Ryan Houdek
21a364c2ad
Switches FEXCore over to pthreads implementation
...
This defaults to a pthread implementation but it can be switched over to a custom thread
handler if the frontend desires.
2021-04-01 00:31:45 -07:00
Lioncache
b81ea43601
Context: Make use of std::optional with GetFilenameHash()
...
Same behavior, minus the need for an out parameter. While we're at it,
we can tidy up some of the file handling code.
2021-03-29 12:17:32 -04:00
Ryan Houdek
15dd70487f
Removes legacy difference between FEX config env variable and enum names
2021-03-29 00:26:11 -07:00
Ryan Houdek
a50689aa8b
Merge pull request #885 from Sonicadvance1/cpuid_leaf
...
Adds support for CPUID leafs
2021-03-23 20:55:33 -07:00
Scott Mansell
6a8f68022f
Join threads after fork.
...
Also, add some comments to document things and
rename function to be clear about it's purpose.
2021-03-24 15:41:09 +13:00
Ryan Houdek
43ddba4e82
Adds support for CPUID leafs
...
Leafs come from ECX but only some CPUID functions support this.
This adds the initial infrastructure but doesn't yet add support for the CPUID functions to consume the leaf.
2021-03-23 18:13:14 -07:00
Scott Mansell
21687f4dc5
Also destroy the parent thread
2021-03-24 03:14:23 +13:00
Scott Mansell
41a1a9d400
Cleanup threads when they exit
2021-03-24 03:14:23 +13:00
Stefanos Kornilios Mitsis Poiitidis
f0d3004363
Thunks: Add Thunk json, thunk guest folder
2021-03-10 15:51:34 +02:00
Scott Mansell
35c01038ba
Seperate per-thread and per-frame state
2021-03-09 20:27:44 +13:00
Ryan Houdek
a3ba1ae199
Deduplicates some configuration data
...
Configuration mapping was duplicated between three different tables.
Additionally default configuration values were strewn about. Making it confusing as to what the default value would end up being
Adds a new ConfigValues.inl header that defines a few things right next to each other.
Defines the enum name as usual.
Defines the JSON config option name.
Defines the Environment config option name
Defines the default value that the configuration should be
2021-03-08 22:53:41 -08:00
Scott Mansell
bea0adc3d1
Allow both jitcores to be enabled simultaneously
2021-03-08 16:30:25 +13:00
Stefanos Kornilios Mitsis Poiitidis
3978097f15
Merge pull request #705 from FEX-Emu/skmp/mmap-cache-flushing
...
Flush IR/Code cache on mmap, mmunmap & mprot
2021-03-03 12:59:29 +02:00
Stefanos Kornilios Mitsis Poiitidis
613e5b66ba
SMC: Expand --smc-checks options to 'none', 'mman', 'full'
2021-03-03 12:49:23 +02:00
Scott Mansell
f5ac5d1667
Add missing unordered_map include
...
It's really unhelpful that libstdc++ includes this by default
2021-03-03 14:06:16 +13:00
Stefanos Kornilios Mitsis Poiitidis
e92578817d
SMC: Flush IR/Code cache on mmap, mmunmap & mprot
2021-02-26 13:22:05 +02:00
Stefanos Kornilios Mitsis Poiitidis
b29121c71a
AOTIR: Rename AOTCache to AOTIRCache
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
b3d12fbb7b
AOTIR: Cleanup interface
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
fafc987eab
AOTIR: Rename Generate to Capture
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
d825ed2b03
AOTIR: Reduce map lookup
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
3e1e093b24
AOTIR: Store in ~/.fex-emu/aotir, per so
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
47d4481a75
AOTIR: Support relocations via new ir op
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
fc30efe040
AOTIR: Add hashing of code bytes
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
57680a8614
AOTIR: Add --aotir-generate and --aotir-load to FEXLoader & Config
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
816c4656df
IR: Add AOT Cache
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
9ecde7a0b8
Interpreter: Move execution to IntepreterOps::ExecuteIR, single core refactor
2021-01-29 15:17:37 +02:00
Stefanos Kornilios Mitsis Poiitidis
972219043d
Core: Refactor compilation driver, lifetime of objects
2021-01-29 10:42:55 +02:00
Stefanos Kornilios Mitsis Poiitidis
791aa4c32c
LookupCache: Add a third level cache that will always resolve all known blocks
2021-01-29 01:53:12 +02:00
Stefanos Kornilios Mitsis Poiitidis
3bd8731b26
IR: Add CONFIG_VALIDATE_IR_PARSER, enable it on TestHarnessRunner
2021-01-21 21:38:41 +02:00
Ryan Houdek
8d81a925ee
Allows JITSymbols to see central dispatcher
...
Will let us see in perf how much time is spent there
2021-01-14 13:05:24 -08:00
Ryan Houdek
63cc8c67f2
Ensure idle wait ref counter is 1 on fork
...
Once we fork, we no longer have any threads to track in the process.
Ensures we don't spin forever on forked process
2021-01-10 02:09:37 -08:00
duck
f9cd0f0179
Have tests that throw a non-HLT SIGSEGV fail
...
Patch moves HandleSIGSEGV in HostFactory.cpp to a non-frontend host signal handler, then registers its own frontend signal handler to catch unhandled segfaults.
2021-01-06 05:07:47 -05:00
Ryan Houdek
37983006f0
Moves FEXCore's SignalDelegator and SyscallHandler to the frontend
...
Sadly these things can't be split without breaking functionality so it
turns in to a bit of a mess.
SyscallHandler is very much something that is a Linux only construct and
shouldn't be in FEXCore itself. Lets the frontend register a
Syscallhandler with FEXCore. FEXCore itself is then aware of the current
syscall ABI and handles the ABI in an optimal fashion.
So it is not a 100% clean break otherwise we would lose performance.
The SignalDelegator then needs to move to the frontend since the
SyscallHandler requires it for signal based syscalls.
The CPU backend signal handling still needs to happen in FEXCore because
it is a very tight coupling with the CPU backend.
Once we need to support more Signal handling we can give the backends
cleaner support to select which specific OS handler to handle.
2020-12-13 22:38:04 -08:00
Ryan Houdek
36b24ad141
Removes all uses of non-unified memory and SHM regions
...
Let's just delete the whole thing!
2020-12-10 02:09:52 -08:00
Stefanos Kornilios Mitsis Poiitidis
bc5b235b7c
CompileService: Fix DebugData
2020-12-03 18:58:58 +02:00