LC
56dd470528
x87StackOptimizationPass: Remove unnecesary return in Run()
...
It's a void function, so we don't need this at the end
2026-07-23 02:21:26 -04:00
LC
6741f53d87
x87StackOptimizationPass: Mark getValidMask()/getInvalidMask() as const
...
These don't modify instance state.
2026-07-23 02:18:33 -04:00
LC
19550c5417
x87StackOptimizationPass: Pass by const reference in setTop()
...
Avoids redundant copies. Just a minor codegen saving.
2026-07-23 02:17:02 -04:00
LC
a652a5811b
Merge pull request #5777 from Sonicadvance1/191
...
FEXCore: Split out CodeBuffer management to its own file
2026-07-21 07:31:13 -04:00
Ryan Houdek
d2c92808f5
FEXCore: Split out CodeBuffer management to its own file
...
NFC
- Renames CodeBufferManager to SharedCodeBufferManager to be more
explicit about it being shared between threads
- Renames `CodeBuffers` to `SharedCodeBuffers` to make it more explicit
about sharing these buffers between threads.
- Separates the Manager to its own file so it is distinct from the rest
of the CPUBackend code
Makes it easier to parse ownership and lifetime semantics of these
buffers.
2026-07-20 18:09:29 -07:00
LC
2464633431
Merge pull request #5776 from Sonicadvance1/190
...
JIT: Remove JIT detection string
2026-07-20 21:07:23 -04:00
LC
15e76e88b4
Merge pull request #5775 from Sonicadvance1/189
...
JIT: Rename temporary CPU buffer allocator
2026-07-20 20:50:56 -04:00
Ryan Houdek
fe1ac1bc1d
JIT: Remove JIT detection string
...
Now that we have VMA region naming enabled on JIT buffers, this is no
longer used. Confirming a region is a JIT buffer is now just a case of
comparing the name that shows up in `/procfs/maps` rather than dumping
the first bytes of an unknown region.
2026-07-20 17:44:15 -07:00
Ryan Houdek
9edd27b214
JIT: Rename temporary CPU buffer allocator
...
`TempAllocator` was a bit too opaque as to what the allocator was for,
so I kept needing to lookup its usage every couple of months. Rename it
to `TempCodeBufferAllocator` so I can remember that it is a temporary
allocator for the staging JIT code buffer more easily.
NFC
2026-07-20 17:32:03 -07:00
Ryan Houdek
eb7e02ea1d
Merge pull request #5772 from lioncash/pass
...
PassManager: Simplify initialization interface
2026-07-19 16:28:07 -07:00
LC
53befc68c9
PassManager: Ensure GetPass() only queries the underlying pass mappings
...
Previously this would create an entry in the map if it didn't exist.
2026-07-21 12:10:26 -04:00
LC
19f95d89ec
PassManager: Add basic documentation
2026-07-21 12:10:26 -04:00
LC
ecb9b3b7f8
PassManager: Constrain GetPass() template to Pass-derived objects
...
Makes the particular conversion types constrained to catch any trivial
misuses.
2026-07-21 12:10:26 -04:00
LC
d619e36523
PassManager: Pass string by const reference where applicable
...
Gets rid of potential extraneous copies. We also add handling for cases
where two passes with the same name are unintentionally added.
Previously we'd blindly overwrite the mapping.
2026-07-21 12:09:16 -04:00
LC
fa80d11960
PassManager: Remove SyscallHandler member
...
This isn't used anymore, so we can get rid of it to further simplify
initialization.
2026-07-21 11:28:12 -04:00
LC
2893d2b64f
PassManager: Simplify pass initialization
...
We don't conditionally add any passes, so we can simplify the interface
so that we just add all existing passes at once. Makes the core
initialization process a little more straightforward.
2026-07-21 11:28:09 -04:00
Ryan Houdek
99b8df4e6f
Merge pull request #5773 from lioncash/fdres
...
ThreadManager: Fix error return values in FrontendAllocateSlots()
2026-07-19 16:14:50 -07:00
LC
331655182d
ThreadManager: Fix error return values in FrontendAllocateSlots()
...
If ftruncate or the mmap ever fail for whatever reason, then we need to
return the current size, rather than the new size.
2026-07-21 15:12:41 -04:00
Ryan Houdek
ec95330dcd
Merge pull request #5765 from lioncash/signal
...
SignalDelegator: Group members together
2026-07-19 16:13:26 -07:00
LC
3959863462
SignalDelegator: Group members together
...
Hides all public members and situates all of them together to make for
an easier overview.
2026-07-19 21:10:35 -04:00
LC
c00b2c9584
Merge pull request #5774 from Sonicadvance1/93
...
gitlab: Fixes CI
2026-07-19 18:43:37 -04:00
Ryan Houdek
6c354f3987
gitlab: Fixes CI
2026-07-19 12:23:46 -07:00
Ryan Houdek
3bd4d244a4
Merge pull request #5771 from lioncash/fmt
...
Externals: Update fmt to 12.2.0
2026-07-19 11:50:58 -07:00
LC
9888de25fe
Externals: Update fmt to 12.2.0
...
Keeps fmt up to date.
2026-07-21 09:32:23 -04:00
Ryan Houdek
58c247b30c
Merge pull request #5770 from lioncash/cast
...
CPUBackend: Remove unnecessary reinterpret_casts
2026-07-19 00:57:29 -07:00
LC
22bd10f3b1
CPUBackend: Remove unnecessary reinterpret_casts
...
This both take a void*, so the casting is unnecessary to begin with,
since this would occur anyway without it. We can also avoid a
duplication to reduce line noise.
2026-07-21 08:22:17 -04:00
Ryan Houdek
f374b4775a
Merge pull request #5769 from lioncash/bound
...
Core: Remove unnecessary bounds check in GenerateIR()
2026-07-18 21:35:34 -07:00
LC
ff213bbc5e
Core: Move vars closer to usage scope in GenerateIR()
...
Makes it so their purpose is more easily seen
2026-07-21 04:44:47 -04:00
LC
56a4ca6e6a
Core: Remove unnecessary bounds check in GenerateIR()
...
We already check the bounds in the loop prior to calling at().
2026-07-21 04:40:22 -04:00
Ryan Houdek
d6b38b6b1c
Merge pull request #5768 from lioncash/stream
...
IRDumper: stringstream -> ostringstream
2026-07-18 21:33:42 -07:00
LC
04d06d386f
IRDumper: stringstream -> ostringstream
...
These are purely output operations, so we don't need to use the more
heavyweight class.
2026-07-21 04:29:03 -04:00
LC
aa26a780ed
Merge pull request #5767 from Sonicadvance1/188
...
AVX128: Optimize 256-bit vmovmaskpd as well
2026-07-17 16:56:23 -04:00
Ryan Houdek
f73b93dbc2
InstcountCI: Update
2026-07-17 13:17:39 -07:00
Ryan Houdek
c4a5ac892f
AVX128: Optimize 256-bit vmovmaskpd as well
...
Similar to #5757 , but once the elements have been zipped together, we
can treat it identically to the 128-bit 32-bit element path.
Closes #3782
2026-07-17 13:15:47 -07:00
Ryan Houdek
f129ca0c61
unittests/vmovmskpd: Extend test to have different lower and upper results between 128-bit lanes.
2026-07-17 13:12:27 -07:00
Ryan Houdek
941f0fbf8d
Merge pull request #5764 from lioncash/alloc
...
LinuxAllocator: Reduce MemAllocator32Bit size by 16 bytes
2026-07-17 08:00:25 -07:00
LC
6e37dca566
LinuxAllocator: Reduce MemAllocator32Bit size by 16 bytes
...
These constants don't need to be member vars.
2026-07-19 18:37:38 -04:00
Ryan Houdek
1cffa009fe
Merge pull request #5763 from lioncash/const
...
IREmitter: Mark some helpers as const
2026-07-17 07:59:47 -07:00
Tony Wasserka
83f4c9d101
Merge pull request #5760 from neobrain/fix_emitter_constants
...
Arm64Emitter: Fix incorrect condition for constant NOP padding
2026-07-17 13:05:50 +02:00
Tony Wasserka
c0c95da796
Arm64Emitter: Fix incorrect condition for constant NOP padding
...
This needs to be enabled when *generating* caches, not at runtime when we're
loading them (unless we're compiling for validation).
Previous code would incorrectly disable NOP padding in FEXOfflineCompiler and
instead enable it at runtime when it wasn't needed.
2026-07-17 12:47:51 +02:00
LC
8b612a87c6
IREmitter: Mark some helpers as const
...
These don't modify internal state.
2026-07-17 03:20:36 -04:00
Ryan Houdek
2ac95f446b
Merge pull request #5762 from lioncash/core
...
FEXCore: Resolve missing prototype warnings
2026-07-17 00:04:47 -07:00
LC
c5eddd922d
FEXCore: Resolve missing prototype warnings
...
Makes sure we mark everything internally linked as necessary, or make
declarations visible to their implementation.
2026-07-17 02:48:45 -04:00
Ryan Houdek
b58be2c073
Merge pull request #5761 from lioncash/sys
...
LinuxEmulation: Resolve missing prototype warnings
2026-07-16 22:00:10 -07:00
LC
a3d0b67777
LinuxEmulation: Resolve missing prototype warnings
...
Ensures all functions are marked whether they're intended to be
internally linked or not.
2026-07-17 00:12:28 -04:00
Ryan Houdek
0467d523c0
Merge pull request #5759 from neobrain/fix_codebuffer_max_size
...
CodeCache: Use maximal code buffer size when generating code caches, too
2026-07-16 13:53:42 -07:00
Ryan Houdek
b0af054a95
Merge pull request #5757 from MoonFlowww/avx128-vmovmsk-256
...
AVX_128: Optimize VMOVMSKPS from 11 to 7 instructions
2026-07-16 13:53:00 -07:00
Ryan Houdek
6846f10510
Merge pull request #5758 from lioncash/x87
...
x87StackOptimizationPass: Make use of std::array for FixedSizeStack
2026-07-16 12:39:08 -07:00
Ryan Houdek
e24f232f52
Merge pull request #5756 from lioncash/fill
...
Arm64Emitter: Pull FillSpecialRegs bools into a struct
2026-07-16 12:36:31 -07:00
Ryan Houdek
a1cc5d034e
Merge pull request #5755 from lioncash/host
...
HostRunner: Tidy up interface
2026-07-16 12:35:18 -07:00