Tony Wasserka
0416950aaa
Merge pull request #4015 from Sonicadvance1/fix_bug
...
x32/Signals: Fixes bug in the sigqueue syscalls
2024-08-27 12:03:55 +02:00
Ryan Houdek
6e46383cdb
x32/Signals: Fixes bug in the sigqueue syscalls
...
In rt_sigqueueinfo and rt_tgsigqueueinfo we were failiny to pass along
the provided siginfo_t information to the syscall.
Fix that
2024-08-27 02:54:27 -07:00
Mai
f897579593
Merge pull request #4005 from Sonicadvance1/fault_safe_assert
...
SignalDelegator: Changes AFmt to ERROR_AND_DIE_FMT
2024-08-25 13:15:04 -04:00
Mai
2478abba29
Merge pull request #4008 from Sonicadvance1/fix_avx128_vfcmp
...
AVX128: Fixes 256-bit float compares
2024-08-25 12:37:04 -04:00
Mai
a4db585664
Merge pull request #4006 from Sonicadvance1/fix_avx128_convert
...
AVX128: Fixes incorrect size usage in AVX128_Vector_CVT_Int_To_Float
2024-08-25 12:34:24 -04:00
Ryan Houdek
8bf4a124c8
AVX128: Fixes 256-bit float compares
...
Just like the bug in #4006 , we were incorrectly passing a 256-bit
comparison in to the float compare IR operations. Once again it would
"safely" decompose in to 128-bit operations without issue.
PR #4007 added asserts to ensure that 256-bit operations aren't emitted
when the host CPU doesn't support 256-bit SVE and detected this.
2024-08-25 06:33:31 -07:00
Ryan Houdek
13c3b65732
unittests/asm: Adds test for previous bug fix
2024-08-25 05:22:30 -07:00
Ryan Houdek
7e6ba184f9
AVX128: Fixes incorrect size usage in AVX128_Vector_CVT_Int_To_Float
...
This handler was incorrectly using 256-bit IR operation sizes. Due to a
quirk with our IR handling, this would "safely" fall back to a 128-bit
operation and work "correctly".
The problem encountered is that since the IR operation is claiming to be
256-bit, when the value got spilled due to register pressure then a
true 256-bit store and load operation would be generated. This would
then emit an SVE load and store, with the expectation of 256-bit SVE
loadstores. This caused a SIGILL on Oryon since it doesn't support SVE,
but even would generate an invalid predicated loadstore on SVE 128-bit
hardware.
Fixes Aperture Desk Job in FEX.
2024-08-25 05:18:53 -07:00
Ryan Houdek
f6cb914a2a
SignalDelegator: Changes AFmt to ERROR_AND_DIE_FMT
...
To ensure that it actually dies after logging.
2024-08-25 04:27:59 -07:00
Mai
2829ad56a1
Merge pull request #3996 from Sonicadvance1/more_bind
...
OpcodeDispatcher: Convert more template handlers to Bind handlers
2024-08-23 18:27:59 -04:00
Ryan Houdek
fbf62f1296
Merge pull request #3998 from Sonicadvance1/move_midr_fetch
...
HostFeatures: Moves MIDR querying to the frontend
2024-08-23 15:19:18 -07:00
Ryan Houdek
e6aa268093
Merge pull request #4002 from bylaws/vct
...
OpcodeDispatcher: Allow x86 code to read CNTVCT on ARM64EC
2024-08-23 15:19:05 -07:00
Ryan Houdek
cc589ba7e6
Merge pull request #4001 from bylaws/sim
...
ARM64EC: Always use the CPU area context for BeginSimulation
2024-08-23 15:08:43 -07:00
Ryan Houdek
f009a00986
Merge pull request #4000 from bylaws/binfmt
...
CMake: Don't install binfmts for MinGW builds
2024-08-23 15:08:30 -07:00
Ryan Houdek
8617150a42
Merge pull request #3999 from Sonicadvance1/fix_defer_signal_mask
...
SignalDelegator: Make sure to defer a signal if the guest signal mask desires
2024-08-23 15:08:06 -07:00
Billy Laws
ef823ce82b
OpcodeDispatcher: Allow x86 code to read CNTVCT on ARM64EC
...
Required by newer insider preview versions, I noticed many crashes with
this exception number and QueryPeformanceCounter in the backtrace,
testing with XTA found it to not be passed through and instead write
the host CNTVCT (unscaled) into RAX. No other registers seem to be
affected.
2024-08-23 21:46:11 +00:00
Billy Laws
fc2917117e
ARM64EC: Always use the CPU area context for BeginSimulation
...
New wine tests suggest x0 holding the pointer to the correct context is
just a coincidence so avoid relying on it.
2024-08-23 21:43:09 +00:00
Billy Laws
0ea29dfbdf
CMake: Don't install binfmts for MinGW builds
2024-08-23 12:09:02 +00:00
Ryan Houdek
8b5d9d8fdf
FEXLinuxTests: Adds unit test to ensure FEX defers a signal until unmask
2024-08-23 02:32:35 -07:00
Ryan Houdek
0ec724cf1f
HostFeatures: Moves MIDR querying to the frontend
...
The MIDR querying is inherently OS specific and needs a bit of special
casing. Instead let the frontend inform FEXCore how many CPU cores there
are and their MIDRs instead.
This lets us keep the Linux specific code in the frontend.
2024-08-23 00:53:53 -07:00
Ryan Houdek
0dc0117e86
SignalDelegator: Make sure to defer a signal if the guest signal mask desires
...
Fairly trivial because we already supported deferring these signals. We
had just failed the final step of blocking the signal if we can't block
the signal (like with SIGSEGV, SIGBUS, etc).
Once the guest unblocks the signal mask with sigprocmask, the signal
will fire again.
Apparently older glibc relied on this behaviour for signal raising which
this fixes.
2024-08-22 19:48:23 -07:00
Ryan Houdek
1d00ad6030
OpcodeDispatcher: Convert VectorVariableBlend to Bind handler
2024-08-22 15:09:44 -07:00
Ryan Houdek
23a076c313
OpcodeDispatcher: Convert packed vector shifts to Bind handler
2024-08-22 15:07:09 -07:00
Ryan Houdek
57eacab654
OpcodeDispatcher: Convert VBROADCASTOp to Bind handler
2024-08-22 14:59:25 -07:00
Ryan Houdek
b4093a8888
OpcodeDispatcher: Convert packed HSub to Bind handler
2024-08-22 14:57:40 -07:00
Ryan Houdek
7c5a9b5d6a
OpcodeDispatcher: Convert AVXVectorVariableBlend to Bind handler
2024-08-22 14:55:34 -07:00
Ryan Houdek
12b3c82d83
OpcodeDispatcher: Convert PExtr to Bind handler
2024-08-22 14:54:26 -07:00
Ryan Houdek
66520bce0a
OpcodeDispatcher: Convert VPACK{U,S}S to Bind handler
2024-08-22 14:52:41 -07:00
Ryan Houdek
25cc2bdcb8
OpcodeDispatcher: Convert VPERMILImm to Bind handler
2024-08-22 14:51:02 -07:00
Ryan Houdek
f98b18800c
OpcodeDispatcher: Convert MOVMSK to Bind handler
2024-08-22 14:49:57 -07:00
Ryan Houdek
0dd687a7a1
OpcodeDispatcher: Convert SHUFOp to Bind handler
2024-08-22 14:47:30 -07:00
Ryan Houdek
1aff3acbb9
OpcodeDispatcher: Convert PSHUFW to Bind handler
2024-08-22 14:45:04 -07:00
Ryan Houdek
a6ab2ca30d
OpcodeDispatcher: Convert PUNPCKH to Bind handler
2024-08-22 14:42:24 -07:00
Ryan Houdek
ca43e2a61c
OpcodeDispatcher: Convert PUNPCKL to Bind handler
2024-08-22 14:39:45 -07:00
Mai
4f404160d0
Merge pull request #3995 from Sonicadvance1/missing_header
...
LinuxSyscalls: Adds missing header
2024-08-22 17:22:32 -04:00
Ryan Houdek
5edc69b692
LinuxSyscalls: Adds missing header
2024-08-22 14:02:17 -07:00
Ryan Houdek
b6cb897896
Merge pull request #3994 from bylaws/iofix
...
Windows: Fix some file operations on actual Windows
2024-08-22 14:01:56 -07:00
Ryan Houdek
47b3637452
Merge pull request #3993 from bylaws/flags
...
ARM64EC: Fix ContextFlag member tests
2024-08-22 14:01:43 -07:00
Ryan Houdek
5b65f30c8f
Merge pull request #3992 from Sonicadvance1/rootfs_fetcher_choose_ui
...
FEXRootFSFetcher: Allow UI override through options
2024-08-22 13:47:54 -07:00
Ryan Houdek
23572539f8
Merge pull request #3991 from Sonicadvance1/fix_feat_lrcpc_sigbus
...
Arm64: Fixes SIGBUS handler for FEAT_LRCPC
2024-08-22 13:47:39 -07:00
Alyssa Rosenzweig
43cd897cf4
Merge pull request #3988 from alyssarosenzweig/opt/idea
...
Optimize `adc x, 0`
2024-08-22 11:05:16 -04:00
Alyssa Rosenzweig
e593807856
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-08-22 10:51:06 -04:00
Alyssa Rosenzweig
ce8e6e5c0c
OpcodeDispatcher: optimize adc 0
...
clang generates this.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-08-22 10:51:06 -04:00
Alyssa Rosenzweig
5b9a7c7845
InstCountCI: add IDEA blocks
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-08-22 10:51:06 -04:00
Alyssa Rosenzweig
0e5f5a2db9
Merge pull request #3990 from alyssarosenzweig/opt/tst-al-1
...
Optimise `test al, 1`
2024-08-22 10:48:44 -04:00
Alyssa Rosenzweig
50a9cea16e
Merge pull request #3989 from alyssarosenzweig/ici/x8count
...
InstCountCI: include x86 instruction count
2024-08-22 10:44:44 -04:00
Billy Laws
6aa95d82f2
Windows: Query FileStandardInformation for getting file EOF info
...
FileEOFInformation is write-only on actual windows.
2024-08-22 14:34:45 +00:00
Billy Laws
7c34f449d1
Windows: Translate file open flags passed to NtCreateFile
2024-08-22 14:34:45 +00:00
Billy Laws
e9435203a0
Windows: Fix access() implementation
...
Had the result inverted.
2024-08-22 14:33:06 +00:00
Billy Laws
8d9ba0e102
ARM64EC: Fix ContextFlag member tests
...
There is a common arch bit that is included in each individual mask,
explicitly test for equality against the whole mask to avoid just
testing for this.
2024-08-22 14:31:11 +00:00