Ryan Houdek
e62cb417c2
Merge pull request #1437 from Sonicadvance1/disable_flake_gvisor
...
gvisor: Disables flaky test
2021-12-09 12:58:29 -08:00
Ryan Houdek
df486c0786
gvisor: Disables flaky test
2021-12-09 12:37:58 -08:00
Ryan Houdek
9d43904792
Merge pull request #1436 from lioncash/context-const
...
Context: Take some arguments as pointer-to-const
2021-12-09 12:23:34 -08:00
Ryan Houdek
5654f9a030
Merge pull request #1435 from Sonicadvance1/fix_vixl_assertions
...
Arm64: Fixes vixl assertions around ubfm usage
2021-12-09 11:54:41 -08:00
Ryan Houdek
84905d2856
unittests: Adds 32-bit inline syscall test
...
Triggers the ubfm bug on AArch64.
Uses a fairly benign syscall that gets inlined
2021-12-09 11:34:35 -08:00
Ryan Houdek
92cb9d477e
Arm64: Fixes vixl assertions around ubfm usage
...
vixl has an assert check to ensure the register sizes are the same for
ubfm.
32-bit Inline syscalls hit this for both arguments and return value.
VCastFromGPR would have hit this but there aren't any x86 instructions
that move 8-bit and 16-bit values in to a vector register.
2021-12-09 11:34:20 -08:00
lioncash
7ed6007252
Context: std::move functions in signal registration functions
...
Prevents potential reallocations, given we're using std::function here.
2021-12-09 14:31:47 -05:00
Ryan Houdek
b6499ac724
Merge pull request #1434 from lioncash/syscallthread
...
{x32, x64}/Thread: Make use of .data() instead of .at(0)
2021-12-09 11:28:39 -08:00
lioncash
c73991f467
Context: Take some arguments as pointer-to-const
...
Several API functions act as state querying functions. These can take
some parameters by const to communicate that we don't intend to modify
the respective passed in instance.
2021-12-09 14:26:35 -05:00
lioncash
0bf0fe4779
{x32, x64}/Thread: Make use of .data() instead of .at(0)
...
Follows the previous PRs of using .data() instead of .at(0) to retrieve
the buffer pointers.
2021-12-09 14:14:40 -05:00
Ryan Houdek
097f48f3ff
Merge pull request #1433 from lioncash/syscallmsg
...
x32/Socket: Resolve sign comparison mismatch cases
2021-12-09 11:09:07 -08:00
Ryan Houdek
75e5df545a
Merge pull request #1432 from lioncash/syscall-warn
...
LinuxSyscalls: Enable warnings
2021-12-09 10:51:21 -08:00
lioncash
171d5f7263
x32/Socket: Use .data() instead of .at(0) for pointer retrieval
...
.at(0) can blow up in the case we receive a message from user code with msg_iovlen=0
.data() will simply return a pointer to the empty buffer and we can
proceed with forwarding the call to the syscall.
2021-12-09 13:49:15 -05:00
lioncash
970067d19b
x32/Socket: Resolve sign comparison mismatch cases
2021-12-09 13:43:26 -05:00
lioncash
c26ff60949
LinuxSyscalls: Enable warnings
...
Enables some basic warnings that we have enabled for FEXCore in order to
prevent some small things from slipping through.
2021-12-09 12:58:54 -05:00
lioncash
04d830ed39
LinuxSyscalls: Minor tidy up of CMakeLists
2021-12-09 12:46:39 -05:00
Ryan Houdek
b9c49027c7
Merge pull request #1409 from Sonicadvance1/reentrantmutex
...
Adds a new ReentrantMutex to use for FEXCore
2021-12-08 14:00:12 -08:00
Ryan Houdek
9860e8b71b
Merge pull request #1430 from lioncash/net
...
NetStream: Move NetBuf definition into cpp file
2021-12-08 13:10:06 -08:00
lioncash
a1e94a9863
NetStream: Move NetBuf definition into cpp file
...
Keeps the NetBuf class completely internal and also lessens the header
dependencies for NetStream.
2021-12-08 10:41:55 -05:00
lioncash
2945c13dcb
NetStream: Mark virtual functions as override
...
Makes it explicit that we're overriding the interface of the class being
derived from.
2021-12-08 10:33:18 -05:00
lioncash
4f68821aef
NetStream: Mark constructors as explicit
...
Prevents implicit conversion of ints to NetStreams.
2021-12-08 10:30:38 -05:00
Ryan Houdek
13087f8425
Merge pull request #1426 from Sonicadvance1/fcmp_unittests
...
Arm64: Fixes MapSelectCC FGT flag
2021-12-08 05:26:15 -08:00
Ryan Houdek
fd0424768b
Merge pull request #1427 from Sonicadvance1/enable_unaligned_atomic_tests
...
unittests: Enables remaining unaligned atomic tests on ARMv8.0
2021-12-08 05:26:03 -08:00
Ryan Houdek
5c4112f103
Merge pull request #1428 from Sonicadvance1/fix_known_failures
...
unittests: Fixes known failures
2021-12-08 05:25:50 -08:00
Ryan Houdek
e8670bbab2
Merge pull request #1425 from Sonicadvance1/x86tables_unknown
...
X86Tables: Build Unknown op definition tables at compile time
2021-12-08 00:22:57 -08:00
Ryan Houdek
13b14b857b
unittests: Fixes known failures
...
These were just incorrect results and I had failed to fix them.
2021-12-07 22:06:36 -08:00
Ryan Houdek
48c7ff2a23
unittests: Enables remaining unaligned atomic tests on ARMv8.0
2021-12-07 21:54:03 -08:00
Ryan Houdek
77a032a286
unittests: Adds tests for handling cmp merging
...
As a continuation to #1404 these unit tests were needing to be added.
This tests both select and conditional branch merging for integer ops
and float ops.
This is what discovered the issue fixed in f2de640395
2021-12-07 18:45:54 -08:00
Ryan Houdek
f2de640395
Arm64: Fixes MapSelectCC FGT flag
...
As a continuation to #1404 , this was mapped to the incorrect Arm64 flags
2021-12-07 18:43:50 -08:00
Ryan Houdek
9a642158e0
Workaround fmt not handling nullptr strings
...
Simple ternary check each time a name is used
2021-12-07 12:23:56 -08:00
Ryan Houdek
dc44caa178
Github: Adds the new APITests to the github workflow
2021-12-07 11:55:26 -08:00
Ryan Houdek
081a003c6c
unittests: Adds a new catch2 test for testing the InterruptableConditionVariable
2021-12-07 11:55:26 -08:00
Ryan Houdek
4c5fc6e813
FEXCore: Uses the InterruptableConditionVariable for StartRunning event
...
This can be used with the gdbstub and on pause could cause longjumps
out of the event.
Resolves the hang on InternalThreadState destruction.
2021-12-07 11:55:26 -08:00
Ryan Houdek
253cdb552d
FEXCore/Utils: Adds InterruptableConditionVariable class
...
Mutex destruction is not safe in the face of longjump and signals.
Adds a new class that is very simple and will still work in this
instance.
2021-12-07 11:55:26 -08:00
Ryan Houdek
6404aba6e2
X86Tables: Build Unknown op definition tables at compile time
...
It doesn't make any sense anymore to have specific instruction names
set for UND versus a nullptr string anymore.
Was useful when we could use it to determine the difference between
undefined from the start versus set in the tables but with unknown
decoding. Which is an edge case.
Now instead just zero initialize the data, which means it is an unknown
type and nullptr name. Which works for use.
Improves initialization time of the InitializeInfoTables function from
423 microseconds to 37 microseconds.
2021-12-06 18:57:02 -08:00
Ryan Houdek
c3a6890a40
CMake: Adds Catch build when tests are enabled
2021-12-06 18:27:12 -08:00
Tony Wasserka
07be5a0bae
Add Catch2 submodule
2021-12-06 18:27:11 -08:00
Ryan Houdek
d0943322b8
Docs: Update for release FEX-2112
FEX-2112
2021-12-05 17:44:04 -08:00
Ryan Houdek
db0740becc
Merge pull request #1421 from lioncash/symbols
...
JitSymbols: Make use of fmt
2021-12-03 00:41:05 -08:00
lioncash
ec8f077e60
JitSymbols: Take std::string_view instead of std::string
...
Now that we're using fmt, we can make the API itself non-allocating and
allow passing any kind of character buffer to it.
2021-12-03 02:49:30 -05:00
lioncash
2b190f1713
JitSymbols: Make HostAddr const
...
We can seamlessly format const pointers, so we can allow this in the
interface.
2021-12-03 02:49:30 -05:00
lioncash
69413d51bf
JitSymbols: Make use of fmt
...
Makes the constructed strings a little quicker to read.
2021-12-03 02:49:26 -05:00
Ryan Houdek
8c38f936da
Merge pull request #1420 from lioncash/const
...
IR: Make some interface functions accept pointers to const
2021-12-02 21:14:05 -08:00
lioncash
e3fbe48f7c
JitSymbols: Make use of unique_ptr
...
Ensures that the FILE pointer will always be handled.
2021-12-02 23:58:28 -05:00
lioncash
c1acd9ad59
IR: Mark relevant API functions as [[nodiscard]]
2021-12-02 23:48:53 -05:00
lioncash
381d07707c
IntrusiveIRList: Mark APIs [[nodiscard]] where applicable
...
Allows us to be more aggressively warned by the compiler in cases it's
definitely a bug to ignore the returned value.
2021-12-02 23:38:34 -05:00
lioncash
a07e77b028
IntrusiveIRList: Remove some redundant reinterpret_casts
...
GetListData() and GetData() already return uintptr_t values, so we don't
need to cast these anymore.
2021-12-02 23:32:40 -05:00
lioncash
6b5ccb8244
IR: Make some interface functions accept pointers to const
...
Some interface functions are just querying state, so we can allow them
being used with const qualified data.
2021-12-02 23:32:36 -05:00
Ryan Houdek
597e4e1d57
Merge pull request #1419 from lioncash/ra-cast
...
RegisterAllocationPass: Resolve sign comparison mismatch in CalculateNodeInterference()
2021-12-02 20:22:08 -08:00
lioncash
cdab71e612
RegisterAllocationPass: Resolve sign comparison mismatch in CalculateNodeInterference()
...
GetSSACount() returns a size_t, rather than a signed value.
2021-12-02 18:13:01 -05:00