Ryan Houdek
6e52a16ef3
Merge pull request #2633 from lioncash/reorg
...
Interpreter: Separate fallback OpHandler from F80 fallbacks
2023-04-17 20:26:30 -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
Ryan Houdek
a12802e74c
Merge pull request #2632 from lioncash/string
...
OpcodeDispatcher: Handle PCMPESTRI/VPCMPESTRI
2023-04-17 18:55:24 -07: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
fb93fa573c
FHU: Implements a couple of helpers for mingw
...
tgkill as a stub because that cna't be handled.
2023-04-17 02:56:07 -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
Ryan Houdek
3ebe9f7b04
CPUInfo: Add mingw helper for CalculateNumberOfCPUs
2023-04-16 17:30:30 -07:00
Ryan Houdek
1979273ce5
FHU/FS: Create WIN32 helpers for some functions.
...
These use std::filesystem and should be moved over to WIN32 specific
code.
Added comments to explain that these are currently placeholders and
since we don't do mingw+glibc fault testing these won't get picked up
anyway.
2023-04-16 00:36:20 -07:00
Ryan Houdek
005389f8c1
llvm-mingw: Fix SoftFloat compiling
2023-04-16 00:30:28 -07:00
Mai
a33443db62
Merge pull request #2611 from Sonicadvance1/arm64_mingw
...
ARM64Dispatcher: Fix compiling with mingw
2023-04-16 03:30:09 -04:00
Mai
68599bf124
Merge pull request #2618 from Sonicadvance1/corestate_mingw
...
CoreState: Fix SynchronousFaultData padding type
2023-04-16 03:26:32 -04:00
Mai
d7f9c7ece2
Merge pull request #2614 from Sonicadvance1/disable_frontend_mingw
...
mingw: Disable compiling Common/Linux/Tools
2023-04-16 03:25:47 -04:00
Mai
4bffdc6345
Merge pull request #2612 from Sonicadvance1/frontend_mingw
...
Frontend: Remove errant header
2023-04-16 03:25:03 -04:00
Mai
892c07a5ed
Merge pull request #2603 from Sonicadvance1/mingw_no_fexloader
...
FEXLoader: Don't build with mingw
2023-04-16 03:24:36 -04:00
Mai
780491d61b
Merge pull request #2606 from Sonicadvance1/disable_timerfd_test
...
gvisor: Disable timerfd test
2023-04-16 03:23:49 -04:00
Mai
cbe55b0765
Merge pull request #2616 from Sonicadvance1/telemetry_mingw
...
Telemetry: Disable on WIN32
2023-04-16 03:23:20 -04:00
Mai
2ff5096103
Merge pull request #2617 from Sonicadvance1/netstream_mingw
...
Netstream: Disable on WIN32
2023-04-16 03:23:06 -04:00
Mai
797737a84d
Merge pull request #2609 from Sonicadvance1/mingw_threadname
...
Threads: Adds SetThreadName helper
2023-04-16 03:22:46 -04:00
Mai
cfc1aa593b
Merge pull request #2620 from Sonicadvance1/ra_helper
...
RA: Use FindFirstSetBit helper
2023-04-16 03:20:09 -04:00
Mai
fbc5d583a2
Merge pull request #2608 from Sonicadvance1/cpuid_mingw
...
CPUID: Fix std::min type cast
2023-04-16 03:19:48 -04:00
Ryan Houdek
6b964f70e0
CPUID: Fix std::min type cast
2023-04-16 00:09:36 -07:00
Ryan Houdek
78844ee975
ObjectCache: Ensure correctly packed config option
2023-04-15 18:41:57 -07:00
Ryan Houdek
51afcb7143
RA: Use FindFirstSetBit helper
2023-04-15 18:41:35 -07:00
Ryan Houdek
5258b1972b
FileLoading: Add WIN32 specific loading path
2023-04-15 18:41:11 -07:00
Ryan Houdek
c6616d64d8
CoreState: Fix SynchronousFaultData padding type
2023-04-15 18:40:34 -07:00
Ryan Houdek
d9b9ce804b
Netstream: Disable on WIN32
2023-04-15 18:40:11 -07:00
Ryan Houdek
132aa7e4d3
Telemetry: Disable on WIN32
2023-04-15 18:39:44 -07:00
Ryan Houdek
0419d065b5
mingw: Disable compiling Common/Linux/Tools
2023-04-15 18:38:40 -07:00
Ryan Houdek
fc00a31aee
Frontend: Remove errant header
2023-04-15 18:37:53 -07:00
Ryan Houdek
1de84110e8
ARM64Dispatcher: Fix compiling with mingw
2023-04-15 18:37:31 -07:00
Ryan Houdek
1962f036e1
ObjectCacheService: Use ThreadName helper
2023-04-15 18:21:42 -07:00
Ryan Houdek
879a081556
Threads: Adds SetThreadName helper
2023-04-15 18:21:42 -07:00
Ryan Houdek
105060363f
FEXCore: Move mmap allocators over to VirtualAlloc
2023-04-15 18:07:54 -07:00
Ryan Houdek
bbb3a6439f
AllocatorHooks: Adds some mingw allocator helpers
2023-04-15 18:07:49 -07:00
Ryan Houdek
40b67462b7
Allocator: Ensure uses of aligned allocations use aligned_free
...
This will be used by mingw.
2023-04-15 15:25:17 -07:00
Ryan Houdek
d853de39ff
Config: Move path generation to the frontend
...
This lets all the path generation for the config to be in the frontend.
This then informs FEXCore where things should live.
This is for llvm-mingw. While paths aren't quite generated correctly,
this gets the code closer to compiling.
2023-04-15 15:25:01 -07:00
Ryan Houdek
401d89ee40
FEXLoader: Don't build with mingw
...
FEXLoader won't ever work in this configuration. This was a mistake to
enable.
2023-04-15 15:24:46 -07:00