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
Ryan Houdek
0bcd1c7df5
Merge pull request #816 from Sonicadvance1/cpuid_80000005
...
Implements CPUID 0x8000'0005 for L1 cacheline information
2021-03-08 23:15:03 -08: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
98cb54e3e4
Merge pull request #812 from phire/both_sides
...
Allow both ARM64 and X86_64 jits to be compiled at the same time
2021-03-09 14:59:11 +13:00
Scott Mansell
cb17127ccb
Remove last traces of vixl simulator mode
2021-03-08 16:30:25 +13:00
Scott Mansell
93b6dbdc2b
Fix Arm64JitCore instantiation on x86
2021-03-08 16:30:25 +13:00
Scott Mansell
bea0adc3d1
Allow both jitcores to be enabled simultaneously
2021-03-08 16:30:25 +13:00
Scott Mansell
9cf7545f8d
Abstract mcontext out of JITs
...
This will help with unification of common code later
2021-03-08 16:30:25 +13:00
Ryan Houdek
c657165e56
Implements CPUID 0x8000'0005 for L1 cacheline information
...
@skmp commented about this in the L2 cacheline information PR.
Quickly implement it since it also has cacheline information.
Fairly trivial since every piece of information is just some 8bit variables.
2021-03-06 08:32:47 -08:00
Ryan Houdek
05ae7d3c5e
Merge pull request #814 from Sonicadvance1/cacheline_cpuid
...
Implements CPUID 0x8000'0006 for cacheline information
2021-03-06 08:23:03 -08:00
Ryan Houdek
f94529ebb2
Implements CPUID 0x8000'0006 for cacheline information
...
This exposes some cache information including cacheline information.
Fills out this data structure as well just incase we hit another cacheline size bug
2021-03-06 07:30:25 -08:00
Ryan Houdek
1adbf66fee
Implements MOVNTDQA
...
Found this when running Steamlink under FEX on my laptop.
Turns out the Iris video driver now uses this unconditionally in a couple of locations.
Makes sense there since all the Iris targets are expected to support SSE4.1 atm.
2021-03-06 06:23:18 -08: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
ec95610587
X64_64 JIt: Remove -fno-operator-names
...
Some IDEs didn't recognize this flag and threw
phantom errors when these files were open.
Lets lean towards a smoother developer experience
2021-03-03 15:47:58 +13: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
aecea294d5
Merge pull request #792 from Sonicadvance1/implemented_unaligned_memory_ops
...
Implements unaligned atomic memory ops for ARMv8.1+
2021-02-26 12:50:06 +02:00
Ryan Houdek
6c469c21db
Fixes Zext and flags behaviour of CMPXCHG to register
2021-02-23 23:21:28 -08:00
Ryan Houdek
9798522bc5
Fixes Zext behaviour of CMPXCHG to memory
2021-02-23 23:21:05 -08:00
Ryan Houdek
373f4275f6
Fixes CMPXCHG flags being incorrect aside from ZF
...
Almost everything only checks ZF but we had the arguments reversed for
the rest of the comparison flag results.
2021-02-23 22:01:52 -08:00
Scott Mansell
6fee5b9ca2
Merge pull request #789 from FEX-Emu/skmp/add-cacheinfo-cpuid
...
CPUID: Add cache information, function 0x2
2021-02-24 03:06:20 +13:00
Stefanos Kornilios Mitsis Poiitidis
6d0d3eaf04
AOTIR: Review feedback
2021-02-23 12:23:56 +02:00
Stefanos Kornilios Mitsis Poiitidis
075cd423ed
AOTIR: Review feedback
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
8e06966ddc
AOTIR: Make OP_REMOVECODEENTRY relocatable
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
bdcf3ff606
AOTIR: Merge IRLists, RALists and DebugDataLists to LocalIRCache; cleanups and fixups
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
b29121c71a
AOTIR: Rename AOTCache to AOTIRCache
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
a5ee4bdf3c
AOTIR: Fix double free issues
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
56d10dcbbb
IR: Make OP_THUNK use an inline sha256 hash of the thunk name, update thunk scripts
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
1f919949cc
JIT: Fix arm64 build
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
63507f5ece
IR: Fix int64_t parsing
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
dbc8b8e8e9
AOTIR: Append optimization flags to fileid
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
681deca4eb
IR: Make entrypoint implicit, Add InlineEntrypointOffset, make ValidateCode Entrypoint-relative
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
f2f62c5f2c
AOTIR: Implement EntrypointOffset for aarch64
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
71dceb5339
Fix relocation support for FinishOp
2021-02-23 12:08:57 +02:00
Stefanos Kornilios Mitsis Poiitidis
be40d1604a
Improve aotir format
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