Ryan Houdek
f7a076e00c
FEXCore: Removes ExitReason from InternalThreadState
...
FEXCore hasn't been returning anything other than EXIT_SHUTDOWN for a
long time, so this ended up just moving data around for no reason.
This isn't going to be used for further GdbServer work anyway, so just
completely remove it.
2024-11-29 09:25:44 -08:00
Ryan Houdek
9f681f9e41
FEXCore: Moves ThreadWaiting to the frontend
...
Only in one location does the frontend actually care about this, the
backend doesn't care at all.
2024-11-29 09:10:36 -08:00
LC
b2e61c37be
Merge pull request #4170 from Sonicadvance1/gdbserver_work
...
GdbServer: Minor work
2024-11-29 08:24:43 -05:00
Ryan Houdek
969cae581c
FEXCore: Constify CTX ptr in InternalThreadState
...
The CTX pointer in the InternalThreadState object will not and must not
change, since it is associated with that CTX object.
Contify it to codify it.
2024-11-28 15:57:36 -08:00
Ryan Houdek
56c6b0d2cb
Merge pull request #4175 from Sonicadvance1/gdbserver_remove_earlyexit
...
FEXCore: Removes EarlyExit running event
2024-11-28 15:53:17 -08:00
Ryan Houdek
38c834e731
FEXCore: Removes global StartPaused check for gdb
...
This doesn't behave properly anymore now that thread management was
moved to the frontend.
2024-11-28 15:32:50 -08:00
Ryan Houdek
3ecc66fbcf
FEXCore: Moves TLS initialization for Alloc::OSAllocator
...
Alloc::OSAllocator uses a TLS variable of the thread object so it can
use a forkable mutex plus a deferring signal section. This was setup
when the FEXCore "ExecutionThread" function is called, which is a bit
awkward and is an artifact from when the thread creation was mixed
between the frontend and the backend.
Instead let the frontend inform the backend when to install the TLS
variable.
This is one step required to make GdbServer work correctly again since
the thread initialization and pausing is awkward today.
2024-11-28 02:46:06 -08:00
Ryan Houdek
718221be71
FEXCore: Removes EarlyExit running event
...
This was working around an edge case in the GdbServer where a thread was
getting created while the process was shutting down. This edge case is
getting removed so get rid of it.
2024-11-28 00:46:42 -08:00
Alyssa Rosenzweig
d19473160d
OpcodeDispatcher: drop InvalidateDeferredFlags
...
it is now useless.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-11-26 09:02:01 -05:00
Alyssa Rosenzweig
aeb2c98cbf
OpcodeDispatcher: drop PossiblySetNZCV
...
this is a pain to track and, it turns out, buys us virtually nothing on flagm
systems. rip it out.
this fixes a bug with failing to set in all the right places.
on non-flagm systems there's a slight instcountci impact, but that is mostly
mitigated by the earlier patches in the series. so overall a wash there but
worth it for making the codebase easier
to reason about.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-11-26 08:59:19 -05:00
Alyssa Rosenzweig
2350ae5a07
OpcodeDispatcher: optimize BTC on !flagm
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-11-26 08:59:19 -05:00
Alyssa Rosenzweig
6076d1747e
OpcodeDispatcher: use NZV invalidate CF set for BT
...
this is similar perf on flagm and better on not flagm.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-11-26 08:59:19 -05:00
Alyssa Rosenzweig
f4ce6fb621
OpcodeDispatcher: optimize AAS/AAD flag
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
2024-11-26 08:59:19 -05:00
Ryan Houdek
9b6cc8f7e0
IR: Convert OpSize over to enum class
...
NFC
Do the final mopping up to convert the OpSize enum to an enum class!
2024-10-29 16:52:16 -07:00
Ryan Houdek
82f936cb6d
IR: Converts base IR operations to store OpSize sizes
...
NFC
Finally converts the IR operations themselves to store the OpSize for
the IR operation size and element sizes.
This also finally, FINALLY, converts that remaining `_Constant` helper
to stop using a size field that is specified in bits rather than bytes
like all the other IR op handlers. That thing was so confusing and now
it's gone.
2024-10-28 21:26:59 -07:00
Ryan Houdek
460a21625e
JIT: Remove implicit OpSize conversions
...
NFC
2024-10-28 19:48:40 -07:00
Ryan Houdek
034b62292b
Passes/x86StackOptimization: Fixes implicit conversion of OpSize
2024-10-28 19:26:02 -07:00
Ryan Houdek
7b615a07d0
OpcodeDispatcher: Various missed OpSize implicit cast fixes
...
NFC
Probably more of these around, just tracking the few I found.
2024-10-28 19:18:36 -07:00
LC
704841f004
Merge pull request #4144 from Sonicadvance1/iropsize_addrsize
...
OpcodeDispatcher: Convert address size helpers to use OpSize
2024-10-28 22:12:40 -04:00
Ryan Houdek
f74f276d64
OpcodeDispatcher: Convert address size helpers to use OpSize
...
NFC
2024-10-28 19:02:34 -07:00
Ryan Houdek
4b10cbdafd
OpcodeDispatcher: Convert flags helpers over to OpSize
...
NFC
Plus the tertiary bits that require changing to support it.
2024-10-28 18:56:42 -07:00
LC
04c701e912
Merge pull request #4142 from Sonicadvance1/irsize_loadstoregpr
...
OpcodeDispatcher: Convert {Load,Store}GPRRegister to OpSize
2024-10-28 21:04:01 -04:00
Ryan Houdek
5ed82fa0f6
OpcodeDispatcher: Convert {Load,Store}GPRRegister to OpSize
...
Trivial but quite a few places pass in a raw integer
NFC
2024-10-28 16:35:23 -07:00
Ryan Houdek
6cca007817
IR: Fix some missing OpSize conversions
...
Missed these in the previous PR.
2024-10-28 16:25:36 -07:00
Ryan Houdek
65ddae1b71
IR: Change F80VBSLStack to use IR::OpSize
2024-10-28 02:25:17 -07:00
Ryan Houdek
063f524084
IR: Change F80CVTToInt to use IR::OpSize
2024-10-28 02:24:25 -07:00
Ryan Houdek
2dd0a82059
IR: Change F80CVTTo to use IR::OpSize
2024-10-28 02:23:47 -07:00
Ryan Houdek
b810070e9f
IR: Change F80CVTInt to use IR::OpSize
2024-10-28 02:07:20 -07:00
Ryan Houdek
4c7ac17f7d
IR: Change F80CVT to use IR::OpSize
2024-10-28 02:06:48 -07:00
Ryan Houdek
84767c8b20
IR: Change PushStack to use IR::OpSize
2024-10-28 02:05:35 -07:00
Ryan Houdek
eccfb53bd5
IR: Change StoreStackMemory to use IR::OpSize
2024-10-28 02:01:47 -07:00
Ryan Houdek
f4e930262f
IR: Change PCLMUL to use IR::OpSize
2024-10-28 01:50:24 -07:00
Ryan Houdek
d26d9e7e03
IR: Change CRC32 to use IR::OpSize
2024-10-28 01:50:24 -07:00
Ryan Houdek
51c1998d70
IR: Change VAESDecLast to use IR::OpSize
2024-10-28 01:50:24 -07:00
Ryan Houdek
87f818249d
IR: Change VAESDec to use IR::OpSize
2024-10-28 01:50:23 -07:00
Ryan Houdek
d81f92f5e2
IR: Change VAESEncLast to use IR::OpSize
2024-10-28 01:50:23 -07:00
Ryan Houdek
29ffe02afe
IR: Change VAESEnc to use IR::OpSize
2024-10-28 01:50:23 -07:00
Ryan Houdek
dfe4076fe4
IR: Change Vector_F64ToI32 to use IR::OpSize
2024-10-28 01:50:23 -07:00
Ryan Houdek
44f9df062e
IR: Change Vector_FToI to use IR::OpSize
2024-10-28 01:50:23 -07:00
Ryan Houdek
6f98ef8cbb
IR: Change VFCVTN2 to use IR::OpSize
2024-10-28 01:50:23 -07:00
Ryan Houdek
d54888a4c6
IR: Change VFCVTL2 to use IR::OpSize
2024-10-28 01:50:23 -07:00
Ryan Houdek
38c58706da
IR: Change Vector_FToF to use IR::OpSize
2024-10-28 01:50:23 -07:00
Ryan Houdek
8ad9286bd4
IR: Change Vector_FToZS to use IR::OpSize
2024-10-28 01:29:32 -07:00
Ryan Houdek
03bc962564
IR: Change Vector_FToS to use IR::OpSize
2024-10-28 01:28:56 -07:00
Ryan Houdek
947b7ae6fe
IR: Change Vector_SToF to use IR::OpSize
2024-10-28 01:23:20 -07:00
Ryan Houdek
30317ac979
IR: Change Float_FToF to use IR::OpSize
2024-10-28 01:22:45 -07:00
Ryan Houdek
4544e7c1af
IR: Change Float_FromGPR_S to use IR::OpSize
2024-10-28 01:21:48 -07:00
Ryan Houdek
34050431ff
IR: Change VDupFromGPR to use IR::OpSize
2024-10-28 01:20:06 -07:00
Ryan Houdek
65439956bf
IR: Change VCastFromGPR to use IR::OpSize
2024-10-28 01:18:21 -07:00
Ryan Houdek
a6cbce4fd7
IR: Change VFNMLS to use IR::OpSize
2024-10-28 01:16:11 -07:00