Ryan Houdek
cd9ffd2045
Merge pull request #3536 from alyssarosenzweig/ra/rcl-rcr
...
OpcodeDispatcher: eliminate xblock liveness for rcl/rcr
2024-04-01 11:44:37 -07:00
Alyssa Rosenzweig
b1ddd8cd3b
Merge pull request #3541 from alyssarosenzweig/opt/clc
...
optimize clc
2024-04-01 13:51:10 -04:00
Alyssa Rosenzweig
f2d001e721
Merge pull request #3543 from alyssarosenzweig/ra/dead-code
...
RA: drop dead block interference code
2024-04-01 13:51:00 -04:00
Ryan Houdek
e2a095372e
Merge pull request #3534 from Sonicadvance1/move_ir_defines
...
FEXCore: Move nearly all IR definitions to internal
2024-04-01 10:00:20 -07:00
Ryan Houdek
5c29c9d464
Merge pull request #3527 from Sonicadvance1/move_type_defines
...
Moves FHU TypeDefines to FEXCore includes
2024-04-01 08:57:22 -07:00
Ryan Houdek
3bed305660
Merge pull request #3526 from Sonicadvance1/move_codeloader
...
FEXCore: Moves CodeLoader to frontend
2024-04-01 07:52:02 -07:00
Ryan Houdek
f6639c3594
Merge pull request #3525 from Sonicadvance1/move_cpubackend
...
FEXCore: Moves CPUBackend definition internal
2024-04-01 06:47:34 -07:00
Alyssa Rosenzweig
ca1ec232c9
RA: drop dead block interference code
...
Unused, and new RA won't use it either. Torch it.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-31 20:51:11 -04:00
Alyssa Rosenzweig
b64a594b16
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-31 20:01:44 -04:00
Alyssa Rosenzweig
4452f0acba
ConstProp: optimize rmif with 0 for clc
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-31 20:01:44 -04:00
Alyssa Rosenzweig
67baff8a57
Merge pull request #3537 from Sonicadvance1/remove_vla_ra
...
RA: Removes VLA usage
2024-03-31 14:44:37 -04:00
Ryan Houdek
fedc24be1e
RA: Removes VLA usage
...
Just like #3508 , clang-18 complains about VLA usage.
This vector is relatively small, only around 18 elements but is
semi-dynamic depending on arch and if FEXCore is targeting Linux or
Win32.
2024-03-30 16:50:04 -07:00
Alyssa Rosenzweig
2a625a467b
Merge pull request #3530 from alyssarosenzweig/opt/cmpxchg-flags2
...
Optimize cmpxchg with flagm
2024-03-30 15:22:40 -04:00
Alyssa Rosenzweig
9bca052146
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 14:12:59 -04:00
Alyssa Rosenzweig
706065b0e2
OpcodeDispatcher: accelerate cmpxchg with flagm
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 14:12:59 -04:00
Alyssa Rosenzweig
9fd32f07cb
JIT: preserve nzcv for the slow atomic path
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 14:12:59 -04:00
Alyssa Rosenzweig
deba6a1b76
JIT: add comment about unaligned backpatching
...
save future me some grief.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 14:12:59 -04:00
Alyssa Rosenzweig
6866c3d0ac
InstCountCI: add dead cmpxchg case
...
not super optimizable but worth tracking.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 14:12:59 -04:00
Alyssa Rosenzweig
d25ace43aa
Merge pull request #3528 from alyssarosenzweig/ra/xsave-xrstor
...
Eliminate crossblock liveness in xsave/xrstor
2024-03-30 14:11:25 -04:00
Alyssa Rosenzweig
d3b2ddf641
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 13:42:41 -04:00
Alyssa Rosenzweig
9010b3c117
OpcodeDispatcher: use neg trick for rcl smaller
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 13:42:41 -04:00
Alyssa Rosenzweig
b0e001b660
OpcodeDispatcher: elim xblock live for smaller rcl
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 13:42:41 -04:00
Alyssa Rosenzweig
eadacbd67b
OpcodeDispatcher: elim xblock live with smaller rcr
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 13:42:03 -04:00
Alyssa Rosenzweig
7de29749be
OpcodeDispatcher: eliminate xblock live for rcl
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 13:42:03 -04:00
Alyssa Rosenzweig
1f3843ccad
OpcodeDispatcher: eliminate xblock live for rcr
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 13:42:03 -04:00
Alyssa Rosenzweig
bc76df9901
OpcodeDispatcher: add non-flag calc version of ShiftVariable
...
more correct for rcl, etc
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 13:42:03 -04:00
Alyssa Rosenzweig
6e92cc454d
ConstProp: constant fold Neg
...
will come up with rotate in the next patch
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-30 13:42:03 -04:00
Ryan Houdek
ed3af580c5
FEXCore: Move nearly all IR definitions to internal
...
It has been a long time coming that FEX no longer needed to leak IR
implementation details to the frontend, this was legacy due to IR CI and
various other problems.
Now that the last bits of IR leaking has been removed, move everything
that we can internally to the implementation.
We still have a couple of minor details in the exposed IR.h to the
frontend, but these are limited to a few enums and some thunking struct
information rather than all the implementation details.
No functional change with this, just moving headers around.
2024-03-29 17:20:18 -07:00
Mai
2ad170b7d7
Merge pull request #3533 from Sonicadvance1/remove_debugstore
...
FEXCore: Remove DebugStore map
2024-03-29 20:19:47 -04:00
Ryan Houdek
8564290f76
FEXCore: Remove DebugStore map
...
This hasn't been used and is blocking refactoring more code.
2024-03-29 14:58:44 -07:00
Alyssa Rosenzweig
1d96631af7
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-29 09:58:03 -04:00
Alyssa Rosenzweig
c513b9685d
OpcodeDispatcher: eliminate crossblock liveness in xsave/xrstor
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-29 09:57:16 -04:00
Ryan Houdek
d11a36eaea
Moves FHU TypeDefines to FEXCore includes
...
FEXCore includes was including an FHU header which would result in
compilation failure for external projects trying to link to libFEXCore.
Moves it over to fix this, it was the only FHU usage in FEXCore/include
NFC
2024-03-29 02:54:54 -07:00
Ryan Houdek
f46e88ebdb
FEXCore: Moves CPUBackend definition internal
...
This is no longer necessary to be part of the public API. Moves the
header internally.
Needed to pass through `IsAddressInCodeBuffer` from CPUBackend through
the Context object, but otherwise no functional change.
2024-03-29 02:27:29 -07:00
Ryan Houdek
20eb338644
FEXCore: Moves CodeLoader to frontend
...
FEXCore no longer has a need for this since a bunch of related code was
already moved to the frontend. Move the CodeLoader now.
2024-03-29 02:24:53 -07:00
Ryan Houdek
aa26b6288e
Merge pull request #3522 from alyssarosenzweig/ra/cmpxchg8
...
OpcodeDispatcher: eliminate branch in cmpxchg pair
2024-03-27 21:56:19 -07:00
Mai
3d31291c3d
Merge pull request #3510 from Sonicadvance1/fix_pthread_memleak
...
Linux/Threads: Fixes a stack memory leak for pthreads
2024-03-27 21:38:44 -04:00
Ryan Houdek
624bc3fce5
Merge pull request #3520 from Sonicadvance1/sleep_process
...
FEXLoader: Add a way to sleep a process on startup
2024-03-27 18:35:06 -07:00
Alyssa Rosenzweig
d1722ab119
InstCountCI: Update
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-27 12:40:27 -04:00
Alyssa Rosenzweig
61758ea47d
OpcodeDispatcher: eliminate branch in cmpxchg pair
...
In the old case:
* if we take the branch, 1 instruction
* if we don't take the branch, 3 instruction
* branch predictor fun
* 3 instructions of icache pressure
In the new case:
* unconditionally 2 instructions
* no branch predictor dependence
* 2 instructions of icache pressure
This should not be non-neglibly worse, and it simplifies things for RA.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2024-03-27 12:40:06 -04:00
Ryan Houdek
7b74ca1931
Merge pull request #3514 from alyssarosenzweig/opt/demon
...
rewrite Demon Addition Adjust (DAA) and other demonic opcodes
2024-03-26 23:24:00 -07:00
Ryan Houdek
24fd28ed9e
Merge pull request #3511 from Sonicadvance1/more_tso_levers
...
FEXCore: Adds more TSO control levers
2024-03-26 23:23:41 -07:00
Ryan Houdek
970d5d5b13
Merge pull request #3509 from Sonicadvance1/allow_telemetry_redirect
...
Telemetry: Allow redirecting directory that data is written to
2024-03-26 23:23:05 -07:00
Ryan Houdek
79454ed8a6
Merge pull request #3507 from Sonicadvance1/fd_tracking_check
...
FEXLoader: Add some debug-only tracking for FEX owned FDs
2024-03-26 23:22:29 -07:00
Ryan Houdek
7f90ca53f7
Merge pull request #3505 from Sonicadvance1/telemetry_noncanonical
...
Telemetry: Adds tracker for non-canonical memory access crash
2024-03-26 23:21:32 -07:00
Mai
542f454630
Merge pull request #3517 from Sonicadvance1/remove_mman
...
FEXCore: Removes vestigial mman SMC checking
2024-03-26 23:28:05 -04:00
Ryan Houdek
4ea6305940
Merge pull request #3521 from neobrain/fix_libfwd_vkcreateinstance
...
Library Forwarding/vulkan: Fix query of vkCreateInstance function pointer
2024-03-26 08:59:23 -07:00
Tony Wasserka
4d8ffa2abb
Library Forwarding/vulkan: Fix query of vkCreateInstance function pointer
...
The Vulkan specification states that querying "global commands" like
vkCreateInstance with a non-NULL instance is undefined behavior. Indeed, some
implementations will return null pointers in such cases.
Instead, we can drop the query from DoSetupWithInstance altogether, since
the library initializer will load the function pointer using dlsym instead.
Fixes #3519 .
2024-03-26 16:25:51 +01:00
Ryan Houdek
ade0c46845
FEXLoader: Add a way to sleep a process on startup
...
I find myself reimplementing this nearly monthly. Actually codify it so
I can stop reimplementing it.
2024-03-26 07:48:09 -07:00
Ryan Houdek
1450c92b60
Merge pull request #3518 from pmatos/20MFix
...
Put <20M in double quotes to avoid truncate error
2024-03-26 05:10:45 -07:00