Scott Mansell
92a64aad2e
Update DeadFlagStoreElimiateion pass
2020-09-11 21:50:30 +12:00
Scott Mansell
0a78651cce
Fix ListBegin usages that got missed.
...
There are still a few in interpeter and IR compaction
which are harder to fix.
2020-09-11 21:50:30 +12:00
Scott Mansell
d515753b38
Remove remaing traces of NodeWrapperIterator
2020-09-11 21:50:30 +12:00
Scott Mansell
70b3456536
Swich register allocator to new scheme.
2020-09-11 21:50:30 +12:00
Scott Mansell
e756b46189
Allow AllNodes to iterate in reverse
...
We replace Dummy with the old unused BeginBlock
and pointing it at block header like EndBlock
2020-09-11 21:50:30 +12:00
Scott Mansell
3c6dbd0ade
Change iterator type of IR.at
...
And switch over more passes to use the new interfaces.
2020-09-11 21:50:30 +12:00
Scott Mansell
6b26290b42
Switch most passes to use the new interface.
2020-09-11 21:50:27 +12:00
Scott Mansell
df6618a4d2
New replace node functions
...
Probally doesn't build
2020-09-11 21:48:03 +12:00
Scott Mansell
4ad4f28a75
Add Code and All Code iterators
2020-09-11 21:48:03 +12:00
Scott Mansell
599231c180
IRListView: Add GetOp<T>
2020-09-11 21:48:03 +12:00
Scott Mansell
36afd5b1c6
Block Iterator: Use structured bindings
2020-09-11 21:48:03 +12:00
Scott Mansell
446b261f24
Iterator for blocks
2020-09-11 21:48:03 +12:00
Scott Mansell
316a2f8d96
IRValidation: Add arg liveness, numUses checks
2020-09-11 21:48:03 +12:00
Stefanos Kornilios Mitsis Poiitidis
ad13c82918
Merge pull request #371 from Sonicadvance1/sigaction_gt64
...
Don't allow an application to try and set a signal past 64
2020-09-11 10:45:00 +03:00
Stefanos Kornilios Mitsis Poiitidis
87dbefd0a3
Merge pull request #367 from Sonicadvance1/sigsuspend
...
Implements sigsuspend
2020-09-11 10:43:50 +03:00
Ryan Houdek
a9210be252
Merge pull request #370 from phire/reentrant_interpeter
...
Make Interpreter Reentrant; alloca SSAs on Stack
2020-09-11 00:38:48 -07:00
Ryan Houdek
e08972b06a
Don't allow an application to try and set a signal past 64
...
We only have 64, this is invalid!
2020-09-11 00:35:39 -07:00
Scott Mansell
abd98be5f1
Make Interpreter Reentrant; alloca SSAs on Stack
2020-09-11 19:31:31 +12:00
Ryan Houdek
1309b4a0c5
Merge pull request #363 from Sonicadvance1/fix_thread_fork_shutdown
...
Ensures a process that has forked won't shutdown the other process
2020-09-11 00:05:22 -07:00
Stefanos Kornilios Mitsis Poiitidis
76691d8fab
Merge pull request #353 from FEX-Emu/skmp/sdl2-for-csgo
...
Thunks: Improve SDL2 so that CSGO creates the window and GL context
2020-09-11 09:30:00 +03:00
Stefanos Kornilios Mitsis Poiitidis
f11b1a5c4b
Merge pull request #360 from Sonicadvance1/memory_syscalls
...
Implements two more memory syscalls
2020-09-11 09:22:21 +03:00
Stefanos Kornilios Mitsis Poiitidis
27dbc66e2e
Merge pull request #361 from Sonicadvance1/cvtpd2dq
...
Implements missing CVTPD2DQ
2020-09-11 09:20:48 +03:00
Stefanos Kornilios Mitsis Poiitidis
197dac076e
Merge pull request #369 from Sonicadvance1/getsetcap
...
Implements capget and capset syscalls
2020-09-11 09:19:10 +03:00
Ryan Houdek
fb6e3535d8
Implements capget and capset syscalls
...
These are safe to pass through to the host, there isn't any system data
handled here.
Some game I was testing used these
2020-09-10 22:30:51 -07:00
Ryan Houdek
a3ee4dff45
Implements sigsuspend
...
This helps out Mono's garbage collector specifically. There is a minor
race that can currently occur with signal 63 but that technically should
only occur on a pause or stop condition.
Might need to change this behaviour if it becomes a problem
2020-09-10 21:50:29 -07:00
Ryan Houdek
8aeb6718ac
Merge pull request #362 from Sonicadvance1/fix_guest_signal_dfl
...
Fixes guest default signal handling and pending signals
2020-09-10 19:00:29 -07:00
Ryan Houdek
095e3ee0f6
Merge pull request #359 from Sonicadvance1/fix_getpriority
...
Fixes getpriority syscall
2020-09-10 18:53:33 -07:00
Ryan Houdek
98aef5ee19
Merge pull request #355 from Sonicadvance1/initial_32bit_unittest
...
Adds initial 32bit unit tests
2020-09-10 18:50:06 -07:00
Ryan Houdek
0df06960e1
Ensures a process that has forked won't shutdown the other process
...
Since we track the PID and TID of the threads for signaling purposes, we
had the problem that if a process forked and the child then shuts down.
It was still tracking the parent thread as executing, thus it would send
it a tgkill to shut it down.
This was unintended behaviour and is now stopped
2020-09-10 18:21:16 -07:00
Ryan Houdek
4f593f8e88
Updates POSIX unit tests results
...
These have changed behaviour due to the new changes
2020-09-10 18:16:24 -07:00
Ryan Houdek
290e2b55c4
Fixes guest default signal handling and pending signals
...
glibc raise() actually disables all signals, raises the signal that the
user wants, then reenables the previous signal mask.
On the reenabling of the previous signal mask, that is when the pending
signal fires.
This needs to be accurately handled, so check for pending signals
getting unmasked in sigprocmask
This also then needs to be further fixed to handle default signal
handling, where if a signal was sent that is default ignored (NOT set to
ignore!) then it would just exit the application before.
Now something likg SIGCHLD with the default handler (aka ignore) won't
kill the process
2020-09-10 18:16:24 -07:00
Ryan Houdek
5a240c3586
Implements CVTPD2DQ unit test
2020-09-10 16:50:47 -07:00
Ryan Houdek
7a80f2bcbb
Implements missing CVTPD2DQ
...
Without impementing MXCSR still, this matches the already implemented
CVTTPD2DQ
2020-09-10 16:50:05 -07:00
Ryan Houdek
07cb2c5ca2
Merge pull request #337 from FEX-Emu/skmp/dead-flags-mb
...
IR: Add DeadFlagStoreElimination
2020-09-10 16:43:52 -07:00
Ryan Houdek
f61a2a74c1
Merge pull request #350 from FEX-Emu/skmp/fix-loopcc
...
loopOp: Constant takes size in bits, not bytes
2020-09-10 16:43:31 -07:00
Ryan Houdek
fb459701f4
Implements two more memory syscalls
...
These don't really do much in a coherent and UMA situation, but some
games are hitting them, so may as well as implement them
2020-09-10 16:38:37 -07:00
Ryan Houdek
d39fe11427
Fixes getpriority syscall
...
Just use the syscall directly rather than call through the glibc
interface.
The getpriority syscall biases the return value so it never returns a
negative, while the glibc interface returns [-20,19), so you need to do
some errno juggling for the -1 return.
Just use the syscall directly instead
Fixes some game complaining heavily when getpriority results were wrong
2020-09-10 16:34:20 -07:00
Ryan Houdek
c4799404e4
Adds initial 32bit unit tests
...
This is a very small change, but it gets us starting to test 32bit
2020-09-07 22:32:17 -07:00
Ryan Houdek
5b0386ad83
Ensures the RIP only gets stored as 32bit in 32bit mode
2020-09-07 00:04:30 -07:00
Stefanos Kornilios Mitsis Poiitidis
9423bab83c
Merge pull request #352 from FEX-Emu/skmp/disable-bfe-identity
...
IR/ConstProp: Disable BFE identity as it breaks cs:go
2020-09-07 01:57:56 +03:00
Stefanos Kornilios Mitsis Poiitidis
508d7eed6a
Thunks: Improve SDL2 so that CSGO creates the window and GL context
2020-09-07 01:16:44 +03:00
Stefanos Kornilios Mitsis Poiitidis
0adb874755
IR/ConstProp: Disable BFE identity as it breaks cs:go
2020-09-07 00:58:29 +03:00
Stefanos Kornilios Mitsis Poiitidis
e2fc0f03c9
loopOp: Constant takes size in bits, not bytes
2020-09-07 00:51:38 +03:00
Ryan Houdek
4b17521ab9
Merge pull request #343 from Sonicadvance1/cpuid_improvements
...
Has /proc/cpuinfo generated from CPUID
2020-09-06 12:40:03 -07:00
Ryan Houdek
6e28fd68c3
Merge pull request #344 from Sonicadvance1/rcpc
...
Adds support for RCPC load instructions
2020-09-06 12:31:28 -07:00
Stefanos Kornilios Mitsis Poiitidis
54bf7a095a
Merge pull request #349 from Sonicadvance1/fix_altstack_disable
...
Fixes guest disabling sigaltstack.
2020-09-06 17:40:26 +03:00
Stefanos Kornilios Mitsis Poiitidis
f719f0e646
Merge pull request #347 from Sonicadvance1/tso_option
...
Adds option to disable TSO
2020-09-06 17:39:21 +03:00
Stefanos Kornilios Mitsis Poiitidis
89abb9ea8e
Merge pull request #346 from Sonicadvance1/clean_build_folder
...
Has the github action clean its build folder
2020-09-06 17:39:12 +03:00
Ryan Houdek
50227ba379
Fixes guest disabling sigaltstack.
...
Previously we never checked for SS_DISABLE.
We were also only ever checking for ss_sp being a valid memory range
when we should have been checking for the absense of SS_DISABLE.
Fixes #326
2020-09-05 21:59:52 -07:00
Ryan Houdek
61072ba37e
Has /proc/cpuinfo generated from CPUID
...
Instead of having this file mostly just copy and pasted, it'll now be
generated.
We end up losing a lot of supported flags with this change, which is for
the best since we wouldn't have actually supported those things.
2020-09-05 16:59:10 -07:00