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
Ryan Houdek
b478f54aea
Merge pull request #5754 from lioncash/vdso
...
VDSO_Emulation: Mark relevant members as internally linked
2026-07-16 12:34:27 -07:00
Ryan Houdek
7bb380a086
Merge pull request #5753 from lioncash/pipe
...
FEXServer: Fix some missing declaration warnings
2026-07-16 12:33:54 -07:00
Tony Wasserka
228c351396
CodeCache: Use maximal code buffer size when generating code caches, too
...
This is less likely to happen, but will still be required for very large libraries.
2026-07-16 16:37:18 +02:00
LC
4bb675a530
x87StackOptimizationPass: Reduce noise in slow push/pop paths
...
Deduplicates the repeated rotate behavior.
2026-07-16 10:31:40 -04:00
LC
8d62773570
x87StackOptimizationPass: Make helpers internally linked
...
Makes it obvious they're only used in this TU and allows the compiler to
warn if they ever become unused.
2026-07-16 09:56:14 -04:00
LC
9e26c57643
x87StackOptimizationPass: Fix isValid()
...
Previously this wouldn't have worked, since .first isn't a valid member.
The only reason it wasn't caught is because the function is never
instantiated.
2026-07-16 09:56:14 -04:00
LC
35bc502062
x87StackOptimizationPass: Make use of std::array for FixedSizeStack
...
Reduces the overall generated code for state management.
Drops the overall text size from 11447294 to 11441918
2026-07-16 09:56:05 -04:00
moonfloww
7189e1e280
InstcountCI: Update
2026-07-16 14:44:04 +02:00
LC
4b4aa1cdbe
Arm64Emitter: Pull FillSpecialRegs bools into a struct
...
Makes this easily expandable over time without modifying the prototype,
and lets us be a little more informative at call sites.
2026-07-16 08:07:57 -04:00
moonfloww
3680282b30
new vmovmsk from 11 to 7 ins.
2026-07-16 13:57:12 +02:00
LC
a4d5fbae63
HostRunner: Tidy up interface
...
We've accumulated a bunch of forward declarations that are no longer
necessary. We also don't need to pass the signal delegator as a
reference, since we're not modifying the pointer itself, it's just
passed in to register a signal handler.
2026-07-16 07:39:03 -04:00
LC
2943b87c83
VDSO_Emulation: Mark relevant members as internally linked
...
Silences missing prototype warnings and makes it obvious they're only
used within the translation unit.
2026-07-16 07:28:50 -04:00
LC
9575506391
FEXServer: Fix some missing declaration warnings
...
Makes sure prototypes are visible to their implementation. Also marks
functions internally linked where applicable.
Also makes it a little more visibly obvious which bits are exposed for
use elsewhere.
2026-07-16 07:10:32 -04:00
Ryan Houdek
31c2449d6e
Merge pull request #5752 from lioncash/config
...
FEXGetConfig: Add convenience option for dumping system/tso info
2026-07-15 09:48:49 -07:00
LC
70eafc4f6f
FEXGetConfig: Mark helpers as static where applicable
...
Makes them internally linked, and also lets them be caught by the
compiler when they're unused.
2026-07-15 12:22:12 -04:00
LC
38cbd2aeb2
FEXGetConfig: Add convenience option for dumping system/tso info
...
Just lets you get a broad overview all at once instead of needing to
type out every long command.
Now it's easier to be lazy and just pass "-e", or "--all-emu-info".
2026-07-15 12:22:10 -04:00
LC
ba762a9326
Merge pull request #5747 from Sonicadvance1/187
...
HostFeatures: Pull MMFR3 identification register
2026-07-15 12:20:52 -04:00
Ryan Houdek
921ce59054
Merge pull request #5750 from lioncash/pred
...
VectorOps: Make use of unpredicated shifts
2026-07-15 09:15:04 -07:00
Ryan Houdek
a7627ba39a
Merge pull request #5751 from lioncash/sq
...
VectorOps: Add trivial case handling in VSQXTN2
2026-07-15 09:06:59 -07:00
Ryan Houdek
34ef28dea5
Merge pull request #5749 from lioncash/calc
...
RedundantFlagCalculationElimination: Minor tidying
2026-07-15 09:05:45 -07:00
Ryan Houdek
0f2463dda2
Merge pull request #5748 from lioncash/invariant
...
RegisterAllocationPass: Ensure pair reg invariant
2026-07-15 09:04:38 -07:00
Ryan Houdek
5ec852637c
Merge pull request #5745 from lioncash/addv
...
VectorOps: Simplify 256-bit VAddV
2026-07-15 09:03:57 -07:00
LC
ba8b0afe7a
VectorOps: Use unpredicated shifts where applicable for 256-bit scalar shifts
...
Lets us trim some output
2026-07-15 09:10:57 -04:00
LC
98d45a6a9b
VectorOps: Make use of unpredicated immediate shifts
...
Same behavior, just without introducing a predicate register dependency.
2026-07-15 08:00:58 -04:00
LC
6bc808cb06
VectorOps: Add trivial case handling in VSQXTN2
...
Lets us generate much more optimal code in the event the destination and
lower source are the same.
2026-07-15 07:49:50 -04:00
LC
1325fef703
RFCE: Prefer accessing ops with C instead of CW
...
CW is only intended when the op needs to be writable, but most of these
are only reading data.
2026-07-15 07:06:23 -04:00
LC
d2d0ef1803
RFCE: Remove unnecessary std::invoke()
...
We can just call this normally (and also make the constituent helper
function internally linked).
2026-07-15 07:03:09 -04:00
LC
d6fb60d512
RegisterAllocationPass: Ensure pair reg invariant
...
Allows us to actually catch if this requirement ever gets broken in
the future.
2026-07-15 06:46:24 -04:00
LC
ef35474f88
VectorOps: Simplify 256-bit VAddV
...
Didn't read the manual close enough on the first read award.
2026-07-15 04:43:47 -04:00
Ryan Houdek
372891361c
HostFeatures: Pull MMFR3 identification register
...
This has the S1POE flag that we will want to use in the future.
2026-07-14 20:09:31 -07:00