Mai
590422b295
Merge pull request #2641 from Sonicadvance1/remove_unittest_gen
...
FEXCore: Stop exposing the x86 table data symbols
2023-04-26 05:09:23 -04:00
Ryan Houdek
9d268df91f
Softfloat: Disable some duplicate BIGFLOAT handlers
...
Since mingw has its reduced precision has double, these handlers were
duplicated and causing compile failure.
2023-04-26 01:48:37 -07:00
Ryan Houdek
699541485d
Arm64: Disable ProcessorID and Break on mingw
...
Currently unsupported on mingw
2023-04-26 01:48:37 -07:00
Ryan Houdek
46a63186a2
FEXCore: Name libFEXCore correctly and use sync library
2023-04-26 01:48:37 -07:00
Ryan Houdek
90f347839d
InterruptableConditionVariable: Implement for mingw
2023-04-26 01:48:37 -07:00
Ryan Houdek
c9e7d9f331
FEXCore: Disable IRDumper on mingw
2023-04-26 01:48:37 -07:00
Ryan Houdek
8c3a3bfb7c
FEXCore: Resolve some header includes
...
Some aren't necessary anymore. Some need to not exist on mingw.
2023-04-26 01:48:37 -07:00
Ryan Houdek
9034946b43
Move UContext from FEXCore to frontend.
...
FEXCore no longer needs this since all the signal handling is done in
the frontend.
2023-04-26 01:48:37 -07:00
Ryan Houdek
056f44be0b
SignalDelegator: Moves all signal handling to the frontend
...
This is a very OS specific operation and it living in FEXCore doesn't
make much sense. This still requires some strong collaboration between
FEXCore and the frontend but it is now split between the locations.
There's still a bit more cleanup work that can be done after this is
merged, but we need to get this burning fire out of the way.
This is necessary for llvm-mingw, this requires all previous PRs to be
merged first.
After this is merged, most of the llvm-mingw work is complete, just some
minor cleanups.
To be merged first:
- #2602
- #2604
- #2605
- #2607
- #2610
- #2615
- #2619
- #2621
- #2622
- #2624
- #2625
- #2626
- #2627
- #2628
- #2629
2023-04-26 01:24:11 -07:00
Mai
b5420f5db3
Merge pull request #2629 from Sonicadvance1/fexcore_cmake_mingw
...
FEXCore: Fixup cmake file for mingw
2023-04-25 10:12:17 -04:00
Mai
c94268789b
Merge pull request #2619 from Sonicadvance1/fileloading_mingw
...
FileLoading: Add WIN32 specific loading path
2023-04-25 10:11:14 -04:00
Mai
af15277fc4
Merge pull request #2615 from Sonicadvance1/fhu_mingw
...
FHU/FS: Create WIN32 helpers for some functions.
2023-04-25 10:09:35 -04:00
Mai
86e09a00f0
Merge pull request #2610 from Sonicadvance1/mingw_virtual_alloc
...
AllocatorHooks: Adds some mingw allocator helpers
2023-04-25 10:08:44 -04:00
Lioncache
c94721a04b
OpcodeDispatcher: Handle VPMASKMOVD/VPMASKMOVQ
...
We can reuse the same helper we have for handling VMASKMOVPD and VMASKMOVPS,
though we need to move some handling around to account for the fact that
VPMASKMOVD and VPMASKMOVQ 'hijack' the REX.W bit to signify the element
size of the operation.
2023-04-24 10:50:11 -04:00
Ryan Houdek
c87f361bb5
FEXCore: Stop exposing the x86 table data symbols
...
This was only used for the unit test fuzzing framework. Which has been
removed and unused for pretty much its entire lifespan.
These can now be internal only.
2023-04-23 09:38:03 -07:00
Mai
0fa4390e47
Merge pull request #2622 from Sonicadvance1/dispatcher_signals
...
Dispatcher: Disable signal handling under mingw
2023-04-21 21:43:30 -04:00
Mai
7a774a8d80
Merge pull request #2624 from Sonicadvance1/fexcore_cpuid
...
FEXCore: Switch to xbyak for CPUID fetch helpers.
2023-04-21 21:42:54 -04:00
Mai
361e684c64
Merge pull request #2628 from Sonicadvance1/objectcache_mingw
...
Disable AOT and object cache under mingw
2023-04-21 21:42:25 -04:00
Mai
4c74913edf
Merge pull request #2627 from Sonicadvance1/disable_break_mingw
...
Disable Break/INT operations on mingw
2023-04-21 21:42:08 -04:00
Mai
059472fcef
Merge pull request #2621 from Sonicadvance1/object_cache_packed
...
ObjectCache: Ensure correctly packed config option
2023-04-21 21:41:34 -04:00
Mai
4a11111abd
Merge pull request #2626 from Sonicadvance1/thunks_mingw
...
Thunks: Disable under mingw
2023-04-21 21:40:40 -04:00
Mai
f673afc38f
Merge pull request #2625 from Sonicadvance1/gdbserver_mingw
...
GdbServer: Disable under mingw
2023-04-21 21:40:24 -04:00
Mai
1fad26d72f
Merge pull request #2613 from Sonicadvance1/cpuinfo_mingw
...
CPUInfo: Add mingw helper for CalculateNumberOfCPUs
2023-04-21 21:39:52 -04:00
Mai
2b5ddb6b93
Merge pull request #2607 from Sonicadvance1/mingw_softflow
...
llvm-mingw: Fix SoftFloat compiling
2023-04-21 21:38:27 -04:00
Mai
c140dd7da8
Merge pull request #2605 from Sonicadvance1/aligned_alloc
...
Allocator: Ensure uses of aligned allocations use aligned_free
2023-04-21 21:38:08 -04:00
Mai
da126141d3
Merge pull request #2604 from Sonicadvance1/move_config_paths
...
Config: Move path generation to the frontend
2023-04-21 21:37:23 -04:00
Mai
874ae5b0fc
Merge pull request #2602 from Sonicadvance1/move_thread_creation
...
Threads: Moves pthread logic to FEXLoader
2023-04-21 21:36:28 -04:00
Lioncache
651c6f8ddf
OpcodeDispatcher: Handle VCVTPS2PD/VCVTPD2PS
2023-04-18 10:29:57 -04:00
Lioncache
73ca4e5687
OpcodeDispatcher: Move vector float conversion to helper
...
Will be used for implementing the equivalent AVX instructions.
2023-04-18 10:07:30 -04:00
Lioncache
cb9cc74fcc
OpcodeDispatcher: Handle AVX variants of float-to-float conversions
...
Adds in the handling of destination type size differences with AVX.
Also fixes cases where the SSE operations would load 128-bit vectors
from meory, rather than only loading 64-bit vectors with VCVTPS2PD.
2023-04-18 09:52:28 -04:00
Lioncache
d1116456fc
OpcodeDispatcher: Handle VCVTSD2SS/VCVTSS2SD
2023-04-18 08:13:23 -04:00
Lioncache
84985952c9
OpcodeDispatcher: Factor out scalar floating-point conversion to helper
...
Will be used to implement the AVX variants of VCVTSD2SS and VCVTSS2SD
2023-04-18 07:16:37 -04:00
Mai
a351620c60
Merge pull request #2634 from Sonicadvance1/missing_avx
...
VEXTables: Adds a missing class of AVX instructions
2023-04-18 06:55:35 -04:00
Ryan Houdek
9117f7e724
VEXTables: Adds a missing class of AVX instructions
...
These are all AVX1, not sure how I missed this.
Sorry @lioncash, four more instructions.
2023-04-17 20:39:59 -07:00
Lioncache
8e391e7a61
Interpreter: Move PCMPESTRX fallback to VectorFallbacks
...
Now that OpHandlers isn't coupled to the F80 ops anymore, we can
move this over to its own file dedicated to vector fallbacks.
2023-04-17 22:57:09 -04:00
Lioncache
98fbc4a46d
Interpreter: Move OpHandler struct into its own header
...
We can also provide a general rundown for hooking up interpreter fallbacks here for the uninitiated.
2023-04-17 22:55:02 -04:00
Lioncache
8481aeccb5
Interpreter: Move F80Ops.h into Fallback directory
...
We can also rename it to F80Fallbacks.h to make the file purpose a little more explicit.
2023-04-17 22:54:58 -04:00
Lioncache
b1df63f425
Interpreter: Move fallbacks into new directory
...
Will be used to store fallbacks and separate the definition struct from the F80 fallbacks
2023-04-17 22:05:00 -04:00
Lioncache
39c73d975b
OpcodeDispatcher: Handle PCMPESTRI/VPCMPESTRI
2023-04-17 21:42:58 -04:00
Lioncache
30cb1aaaed
IR: Add VPCMPESTRX fallback
...
In order to implement the SSE4.2 string instructions in a reasonable
manner, we can make use of a fallback implementation for the time
being.
This implementation just returns the intermediate result and leaves it
up to the function making use of it to derive the final result from said
intermediate result. This is fine, considering we have the immediate
control byte that tells us exactly what is desired as far as output
formats go.
Given that the result of this IR op will never take up more than
16-bits, we store the flags we need to set in the upper 16 bits of the
result to avoid needing to implement multiple return values in the JIT.
Also, since the IR op just returns the intermediate result, this can be
used to implement all of the explicit string instructions with a single IR op.
The implementation is pretty heavily documented to help make heads or
tails of these monster instructions.
2023-04-17 21:39:32 -04:00
Ryan Houdek
cbf41448fc
Thunks: Disable under mingw
2023-04-17 03:10:04 -07:00
Ryan Houdek
47bdc9af12
Config: Move realpath usage to FHU
2023-04-17 03:05:25 -07:00
Ryan Houdek
0fad5b88c1
FEXCore: Fixup cmake file for mingw
...
- 64-bit allocator doesn't work under mingw atm.
- Can't link against libdl
- Can't have a SONAME because it is a PE, not a shared library.
2023-04-17 02:57:27 -07:00
Ryan Houdek
8c9fe0dd31
AOTIR: Disable loading and saving on mingw
2023-04-17 02:55:15 -07:00
Ryan Houdek
dda3afcfaf
ObjectCache: Disable job handling on mingw
...
This isn't wired up anyway, but this needs to be disabled for now.
2023-04-17 02:55:11 -07:00
Ryan Houdek
34ceefb2c3
JIT64: Disable Break op on mingw
...
No way to handle this currently.
2023-04-17 02:54:30 -07:00
Ryan Houdek
25ef63a069
OpcodeDispatcher: Disable INT instruction entirely under mingw
...
Not yet able to handle this there.
2023-04-17 02:54:25 -07:00
Ryan Houdek
99a9c88f3f
GdbServer: Disable under mingw
...
This needs to move to the frontend at some point.
2023-04-17 02:53:40 -07:00
Ryan Houdek
77f56199e8
Dispatcher: Disable signal handling under mingw
...
This needs some hefty reconstructing
2023-04-17 02:53:03 -07:00
Ryan Houdek
6c13b629af
FEXCore: Switch to xbyak for CPUID fetch helpers.
...
This will use the correct `__cpuid` define, either in cpuid.h or
self-defined depending on environment.
Otherwise we would need to define our own cpuid helpers to match the
difference between mingw and linux.
2023-04-17 02:52:17 -07:00