Ryan Houdek
aac4e25ca4
Merge pull request #2549 from Sonicadvance1/glibc_remaining_allocations
...
Move FEX away from the remaining glibc allocations that we can
2023-04-01 09:46:29 -07:00
Ryan Houdek
546a1edb55
CodeReview
2023-04-01 09:27:01 -07:00
Tony Wasserka
21838fe03f
Merge pull request #2574 from neobrain/feature_thunk_wayland
...
Add support for thunking Wayland
2023-04-01 17:15:49 +02:00
Tony Wasserka
99ba648a71
Thunks: Fix thunking libraries with "-" in their name
...
The LOAD_LIB and EXPORTS macros behave slightly differently in this regard:
* Use LOAD_LIB(libwayland-client) in Guest.cpp (library name with dash)
* Use EXPORTS(libwayland_client) in Host.cpp (library name with underscore)
2023-04-01 16:52:49 +02:00
Ryan Houdek
97daec3dba
Review comments
2023-03-31 06:03:06 -07:00
Ryan Houdek
2990a9d820
FaultingAllocator: Review comments
2023-03-30 16:28:34 -07:00
Ryan Houdek
53bbbd5a4f
Review code
2023-03-30 16:28:34 -07:00
Ryan Houdek
047dddb023
Rebase patching
2023-03-30 16:28:34 -07:00
Ryan Houdek
4f66ff6ec4
Paths: Remove unique_ptr usage
2023-03-30 16:28:34 -07:00
Ryan Houdek
067f807405
InternalThreadState: Convert tsl to fextl
2023-03-30 16:28:34 -07:00
Ryan Houdek
463b4b748c
fextl: Add fextl::fmt::print
2023-03-30 16:28:34 -07:00
Ryan Houdek
3eae668cec
X86Jit: Fix xbyak allocating through glibc
2023-03-30 16:28:34 -07:00
Ryan Houdek
fc8bf9f0f6
Config: Remove static which is allocated
2023-03-30 16:28:34 -07:00
Ryan Houdek
3cfc1de410
Common: Convert cpp-optparse over to fextl and use.
2023-03-30 16:28:34 -07:00
Ryan Houdek
a14353bc3c
FEXLoader: Convert remaining usages away from glibc
2023-03-30 16:28:34 -07:00
Ryan Houdek
629e547e5f
AllocatorOverride: Remove AFmt, it can try allocating memory and infinite loop.
2023-03-30 16:28:34 -07:00
Ryan Houdek
bbd0d26c16
Telemetry: Convert to FHU to remove glibc
2023-03-30 16:28:34 -07:00
Ryan Houdek
1eac7e7105
AOTIR: Convert to FHU to remove glibc
2023-03-30 16:28:34 -07:00
Ryan Houdek
1f9458a3c3
Config: Convert to FHU to remove glibc
2023-03-30 16:28:34 -07:00
Ryan Houdek
a3be4b77fa
Paths: Convert to FHU to remove glibc
2023-03-30 16:28:33 -07:00
Ryan Houdek
b2ec28503d
LookupCache: Move over to fextl::pmr
2023-03-30 16:28:33 -07:00
Ryan Houdek
170c9ee9e4
LookupCache: Switch to fextl
2023-03-30 16:28:33 -07:00
Ryan Houdek
1eb36b8b31
Convert a ton of things over to fextl
2023-03-30 16:28:33 -07:00
Ryan Houdek
465ecd9b19
Mark code regions that require glibc memory allocations.
...
This ensures that when we enable glibc fault testing these sections
won't break CI.
2023-03-30 16:28:33 -07:00
Mai
df354e37dd
Merge pull request #2578 from Sonicadvance1/support_salc
...
OpcodeDispatcher: Implement support for 32-bit SALC instruction
2023-03-30 18:12:15 -04:00
Ryan Houdek
43e6d398b6
X86Dispatcher: Move xbyak to custom types
2023-03-30 08:49:26 -07:00
Ryan Houdek
0d7c856775
Update xbyak
2023-03-30 08:49:26 -07:00
Ryan Houdek
141dddc83e
CMake: Adds glibc allocator fault option
...
This will be used for CI to ensure FEX doesn't use the glibc allocator
2023-03-30 08:49:26 -07:00
Ryan Houdek
64aa3bfabe
Switch FEX to fextl::fmt
2023-03-30 08:49:26 -07:00
Ryan Houdek
f02a111d33
fextl: add memory for unique_ptr and make_unique
2023-03-30 08:49:26 -07:00
Ryan Houdek
79f7baffe3
fextl: Add pmr default resource
2023-03-30 08:49:26 -07:00
Ryan Houdek
7150c532f3
fextl: add robin_map
2023-03-30 08:49:26 -07:00
Ryan Houdek
e48fb1850e
fextl: add unordered_multimap
2023-03-30 08:49:26 -07:00
Mai
88dba60bee
Merge pull request #2579 from Sonicadvance1/invalid_instruction_log
...
Core: Add a new log message for unsupported instruction
2023-03-29 22:52:08 -04:00
Ryan Houdek
d615ae9c6a
Core: Add a new log message for unsupported instruction
...
The previous log in the frontend is super useful when an instruction
decoding wasn't supported.
Now that most of AVX is covered, a game will crash on SIGILL (and
usually catch it) and close without any indication.
Now if the instruction is decoded but it is invalid for the
configuration, still output a message as a good indicator that the game
is using instructions that the host doesn't support.
Will let us still pick up on games crashing due to lack of SVE very
easily.
2023-03-29 14:38:16 -07:00
Ryan Houdek
7629edcf61
OpcodeDispatcher: Implement support for 32-bit SALC instruction
...
This is an undocumented but supported instruction. It behaves just like
an `sbb al, al` but doesn't set flags and is one byte shorter.
The end result is that al is set to 0xFF or 0 depending on if CF is set
or not.
2023-03-29 14:34:51 -07:00
Lioncache
73d250c555
ARMEmitter: Handle SVE2 integer add/subtract wide category
2023-03-29 17:02:18 -04:00
Lioncache
337f8b06a3
ARMEmitter: Convert SVE2 integer multiply long to wide helper
...
Unifies the emitted ops under the same underlying emitter function.
2023-03-29 16:52:37 -04:00
Lioncache
87fa545bd0
ARMEmitter: Convert SVE2 integer add/subtract long to wide helper
...
The generic helper will be used to implement the remaining unimplemented
category from this group
2023-03-29 16:52:34 -04:00
Ryan Houdek
7747ac8de8
Merge pull request #2576 from lioncash/mul
...
ARMEmitter: Handle SVE Integer Multiply-Add - Unpredicated group
2023-03-29 13:14:29 -07:00
Lioncache
deb1c9e933
ARMEmitter: Handle SVE mixed sign dot product category
2023-03-29 15:43:07 -04:00
Lioncache
672a88395d
ARMEmitter: Handle SVE2 saturating multiply-add high category
2023-03-29 15:38:38 -04:00
Lioncache
88524ce718
ARMEmitter: Handle SVE2 saturating multiply-add long category
2023-03-29 15:33:49 -04:00
Lioncache
bb153054f9
ARMEmitter: Handle SVE2 integer multiply-add long category
2023-03-29 15:28:32 -04:00
Lioncache
22a7a49042
ARMEmitter: Handle SVE2 complex integer multiply-add
2023-03-29 15:19:09 -04:00
Lioncache
9876f3eb5c
ARMEmitter: Handle SVE2 saturating multiply-add interleaved long category
2023-03-29 15:08:30 -04:00
Lioncache
b9e4ce4029
ARMEmitter: Handle SVE integer dot product (unpredicated) category
2023-03-29 14:55:06 -04:00
Lioncache
0c048772e0
ARMEmitter: Handle CDOT (vectors)
2023-03-29 14:54:35 -04:00
Lioncache
830c1884d1
OpcodeDispatcher: Handle store variants of VMASKMOVPD/VMASKMOVPS
...
And with that, we support all of the AVX1-only instructions.
The remaining instructions for full AVX1 support is now just the SSE4.2
string instructions.
2023-03-29 14:03:23 -04:00
Lioncache
5abf9de8a5
IR: Add VStoreVectorMasked IR op
...
Will be used to implement the store variants of VPMASKMOV and
VMASKMOVP{D, S}
2023-03-29 14:03:20 -04:00