Ryan Houdek
5447ec3ec8
Merge pull request #884 from Sonicadvance1/fix_empty_string_crash
...
Fixes crash on empty path config string
2021-03-24 02:34:20 -07:00
Ryan Houdek
30e1f871ad
Fixes environment variable configuration from multiple layers
...
This was a missing feature that I had skipped previously.
Before this commit, each layer would overwrite all previous environment variables if they had anything defined.
After this commit, the layers will now merge in priority order.
Meaning if a higher priority layer has the same environment variable defined, it will overwrite that specific variable
Ending up with a superset of all the layer's environment variables now.
2021-03-23 22:01:09 -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
Ryan Houdek
e3380957ba
Fixes crash on empty path config string
...
If the config exists as an empty string then this would crash
2021-03-23 18:02:56 -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
fbc49c1648
Merge pull request #876 from Sonicadvance1/QOL_config
...
Implements a couple quality of life configuration option handling
2021-03-22 18:23:52 +02:00
Ryan Houdek
e5a9bd4d3e
Fixes incorrect result on cmpxchg reg, reg failure when regsize = 32bit
2021-03-22 09:03:48 -07:00
Ryan Houdek
ca24ea1d36
Fixes missing HandledLock on XCHG
2021-03-22 09:03:48 -07:00
Ryan Houdek
0a61741596
special case logging option stdout/stderr
2021-03-21 02:26:56 -07:00
Ryan Houdek
91a5a625ac
Implements a couple quality of life configuration option handling
...
This takes the changes from #829 and moves it to the correct location to be picked up from any loader.
This also fixes #873 .
Expands the config paths. Anything that has ~ or is relative will be converted to an absolute path.
2021-03-21 02:25:30 -07:00
Ryan Houdek
8c1f2eb0b3
Merge pull request #870 from FEX-Emu/skmp/lock-validation
...
OpDisp: Validate LOCK handling, add missing segment offsets
2021-03-20 15:53:06 -07:00
Stefanos Kornilios Mitsis Poiitidis
d120f12c93
X87: Init on X87FNSAVE, fix FNINIT
2021-03-19 17:04:51 +02:00
Stefanos Kornilios Mitsis Poiitidis
695322d446
OpDisp: Validate LOCK handling, add missing segment offsets
2021-03-19 16:32:29 +02:00
Stefanos Kornilios Mitsis Poiitidis
a7dc9d00d2
Merge pull request #864 from Sonicadvance1/cpuid_15h
...
Implements CPUID 15h
2021-03-19 10:02:02 +02:00
Ryan Houdek
c7f265158f
Implements CPUID 15h
...
ARMv8 allows you query the cycle counter register very from userspace which allows us to emulate this easily.
My IceLake device returns 1.5Ghz through this interface
My AMD Zen+ device doesn't support this but with measurements has 3Ghz TSC
My Snapdragon 865 device has a TSC frequency of 19.20Mhz
2021-03-18 01:42:44 -07:00
Ryan Houdek
fbf5325bdd
Enables Invariant TSC CPUID bit
...
I keep forgetting to enable this bit. Fixes #855
2021-03-18 00:15:48 -07:00
Stefanos Kornilios Mitsis Poiitidis
971740991b
RCLSE: Invalidate around OP_SYSCALLs, Syscalls might read the context and need the latest version of it
...
Fixes steam w/ all optimization passes enabled
2021-03-17 02:42:32 +02:00
Ryan Houdek
79e9477b14
Removes warnings from RAPass
2021-03-14 13:27:40 -07:00
Ryan Houdek
0b8f29000e
Removes warnings from ConstProp
2021-03-14 13:27:39 -07:00
Ryan Houdek
e530e3676f
Removes warnings from IRDumper
2021-03-14 13:27:39 -07:00
Ryan Houdek
0c5e5dbdf2
Removes warnings from OpcodeDispatcher
2021-03-14 13:27:39 -07:00
Ryan Houdek
d8591a8f14
Removes warnings from x86 JITCore
2021-03-14 13:27:39 -07:00
Ryan Houdek
941107120c
Removes warnings from x86 BranchOps
2021-03-14 13:27:39 -07:00
Ryan Houdek
ffc17c90c5
Removes warnings from InterpreterOps
2021-03-14 13:27:39 -07:00
Scott Mansell
5e1e09a43d
Fix review issues
2021-03-15 04:41:14 +13:00
Scott Mansell
42b186a76c
Don't generate a default vixl::codebuffer
2021-03-12 12:47:29 +13:00
Scott Mansell
bdca7109a4
Force XBYAK64
...
Because XBYAK's autoconfig doesn't quite do the right thing
2021-03-11 23:46:07 +13:00
Scott Mansell
074bedf25c
Automatically use correct ContextBackup type
2021-03-11 23:46:07 +13:00
Scott Mansell
bdb199b6d6
Unify all four dispatchers
2021-03-11 23:46:07 +13:00
Stefanos Kornilios Mitsis Poiitidis
e9afabc4cb
Merge pull request #827 from FEX-Emu/skmp/thunks-json
...
Thunks: Add Thunk json, thunk guest folder
2021-03-11 11:05:23 +02:00
Ryan Houdek
c73d2b2bca
Merge pull request #843 from Sonicadvance1/locked_not
...
Adds support for locked NOT
2021-03-11 00:47:01 -08:00
Ryan Houdek
8a7caa82b2
Adds support for locked NOT
...
This was trivial
2021-03-11 00:38:12 -08:00
Ryan Houdek
96f2a461f8
Adds support for locked ADC and SBB
...
These were fairly straightforward
2021-03-11 00:22:35 -08:00
Ryan Houdek
6b4ccc46a8
Merge pull request #838 from Sonicadvance1/fix_cmpxchg_32bit_reg
...
Fixes an edge case of 32bit cmpxchg <reg>, <reg>
2021-03-10 21:34:24 -08:00
Ryan Houdek
e264194453
Fixes an edge case of 32bit cmpxchg <reg>, <reg>
...
The comparison was using the wrong values which means this cmpxchg would fail
2021-03-10 17:47:54 -08:00
Ryan Houdek
10fbf60259
Converts the printf usages in FEXCore to LogManager
...
Now that we can safely handle long strings these will now work
2021-03-10 16:38:46 -08:00
Stefanos Kornilios Mitsis Poiitidis
f0d3004363
Thunks: Add Thunk json, thunk guest folder
2021-03-10 15:51:34 +02:00
Ryan Houdek
a9d3851684
Disables RCPC on ARM64 JIT
...
This is currently bugged on Snapdragon 865.
Seems to only affect its prime core. Smells like errata.
2021-03-10 02:13:16 -08:00
Ryan Houdek
e3d6db2eb5
Merge pull request #823 from FEX-Emu/skmp/fix-secondaryalu-atomics
...
OpDisp: Add atomic logic for SecondaryALUOp
2021-03-09 18:15:18 -08:00
Stefanos Kornilios Mitsis Poiitidis
d930de30ef
OpDisp: Add atomic logic for SecondaryALUOp
2021-03-09 18:32:13 +02:00
Scott Mansell
b36378369a
Merge pull request #822 from FEX-Emu/skmp/fix-scm-bug
...
ConstProp: Restrict imm code motion around selects to matching sizes, fixes dav1d
2021-03-09 22:12:50 +13:00
Stefanos Kornilios Mitsis Poiitidis
cbf4c9a687
ConstProp: Restrict imm code motion around selects to matching sizes, fixes dav1d
2021-03-09 11:06:16 +02:00
Scott Mansell
afda855caf
disptacher fixes/cleanups
2021-03-09 20:28:53 +13:00
Scott Mansell
6ed36e3304
Refactor syscalls to take Frame
...
The vast majoirty of syscalls don't need anything in thread or frame.
So lets save an indirection for all those syscalls.
Most of the syscalls which do need Thread (or CTX via
Thread are in Thread.cpp or Memory.cpp
These have all been modifiy to fetch Thread from Frame
2021-03-09 20:28:50 +13:00
Scott Mansell
35c01038ba
Seperate per-thread and per-frame state
2021-03-09 20:27:44 +13:00
Scott Mansell
43a087d554
Allow both interpeter dispatchers to be built
...
This commit doesn't include cmakefile changes to actually do this.
2021-03-09 20:25:14 +13:00
Ryan Houdek
a1fed323df
Merge pull request #820 from Sonicadvance1/remove_config_duplication
...
Deduplicates some configuration data
2021-03-08 23:20:04 -08:00