Ryan Houdek
0eedd55dfd
Merge pull request #4866 from neobrain/refactor_reformat
...
Update code formatting
2025-09-11 10:13:42 -07:00
Ryan Houdek
4a9170e981
Merge pull request #4837 from bylaws/x87opt
...
X87: Better cache intermediate results in the X87 slowpath
2025-09-11 10:12:36 -07:00
Tony Wasserka
9fdd96af61
Update code formatting
2025-09-11 10:40:29 +02:00
LC
30dd9ed267
Merge pull request #4863 from Sonicadvance1/more_cpuid
...
CPUID: Adds new CPU product names that exist
2025-09-10 23:09:33 -04:00
Ryan Houdek
58b5620f97
FEXCore: Fixes OOB access on x87 reduced precision loads
...
x87 80-bit loads, both BCD and regular tword were loading 128-bits of
data when reduced precision was enabled. This was an oversight from the
previous fix a while ago.
Adds a specific reduced precision test for this, and updates the current
test to ensure stores are still tested as well.
2025-09-10 19:19:55 -07:00
Ryan Houdek
327b62ea45
CPUID: Adds new CPU product names that exist
2025-09-10 11:51:04 -07:00
Ryan Houdek
91c6d693df
Merge pull request #4860 from bylaws/susprip
...
JIT: Check for suspend interrupts at back-edges
2025-09-10 10:29:37 -07:00
Lioncache
ad3a024b69
IREmitter: Remove friend class declarations
...
These no longer need specific access to internals.
2025-09-10 13:12:58 -04:00
Tony Wasserka
fee9e91c4f
Core: Drop support for TSO auto migration
2025-09-10 15:36:23 +02:00
Tony Wasserka
1dc560d45a
InstCountCI: Explicitly disable TSO by default
2025-09-10 15:36:23 +02:00
Billy Laws
93096c27f9
Dispatcher: Fix FABI_F32_I16_F80_PTR argument size
...
This takes an f80 as input and returns an f32. A copy-paste error had
this truncating the input float if !TMP_ABIARGS.
2025-09-10 03:14:30 +01:00
Billy Laws
d2714f3338
JIT: Check for suspend interrupts at back-edges
...
Avoids most cases where an infinite loop could lead to suspend interrups
never getting checked.
2025-09-09 22:35:52 +01:00
Billy Laws
b917db34c7
OpcodeDispatcher: Emit RIP metadata for RIP-setting instructions
2025-09-09 22:35:52 +01:00
Billy Laws
a2286cb00a
OpDispatcher: Only use the MM register cache when in MMX state
...
Since the X87 pass now performs its own MM register caching, these must
be mutually exclusive.
2025-09-09 21:30:33 +01:00
Billy Laws
481787d45c
OpDispatcher: Avoid using the register cache for AbridgedFTW
...
This is now cached internally in the X87 pass, and all operations
outside of that that use it are rare so can afford loading/storing
directly from context after flushing x87 regs.
2025-09-09 21:30:30 +01:00
Billy Laws
6789919fca
X87StackOptimization: Don't flush to mem when entering slow path
2025-09-09 21:29:12 +01:00
Billy Laws
d8c615ec65
OpcodeDispatcher: Only flush MMX registers on MMX -> x87 transitions
...
Flushing other regs is not necessary, and breaks any ConvertNZCVToX87 use
which relies previously saved NZCV values as the flag-setting NZCV op after
the save could trigger a flush of NZCV.
2025-09-09 21:29:12 +01:00
Billy Laws
6a1eb0e508
X87StackOptimization: Defer FTW valid bits calculation
2025-09-09 21:29:12 +01:00
Billy Laws
984b0260d5
X87StackOptimization: Cache stack values
2025-09-09 21:29:12 +01:00
Billy Laws
785e59e889
X87StackOptimization: Cache AbridgedFTW
2025-09-09 21:29:12 +01:00
Billy Laws
671be5b191
X87StackOptimization: Cache half-formed stack register context addresses
2025-09-09 21:29:12 +01:00
Billy Laws
b4e556e63a
IR: Introduce operation to form a scaled address from STATE
2025-09-09 21:29:12 +01:00
Billy Laws
2128943b57
X87StackOptimization: Use the x87 stack offset cache in SynchronizeStackValues
2025-09-09 21:29:12 +01:00
Billy Laws
6ddb1094b6
X87StackOptimization: Don't invalidate the x87 stack offset cache on push/pop
2025-09-09 21:29:12 +01:00
Billy Laws
b9d93b19d4
X87StackOptimization: Defer writeback of the x87 stack pointer
2025-09-09 21:29:12 +01:00
Billy Laws
154dd46b6d
OpcodeDispatcher: Don't assert on invalid ALU op encoding
2025-09-09 19:11:05 +01:00
Lioncache
f9c15fa0a5
Frontend/OpcodeDispatcher: Remove unused headers
...
Removes assorted unused headers and forward declarations.
2025-09-09 00:28:05 -04:00
Ryan Houdek
1121f2a1fb
Merge pull request #4853 from lioncash/allocator
...
FEXCore/Allocator: Remove unused headers
2025-09-08 20:25:25 -07:00
Lioncache
a7989eb79f
FEXCore/Allocator: Remove unused headers
...
Reveals some more indirect inclusions.
2025-09-08 22:53:09 -04:00
Lioncache
b2407352a9
IR: Remove unnecessary forward declarations/headers
...
Pares the base IR header down to a modest size and also reveals a few indirect
reliances on the allocator facilities.
2025-09-08 22:03:25 -04:00
Paulo Matos
14256e7a90
Fix mapping for VS and VC condition codes
...
This doesn't seem to be generated in-code therefore it's not fixing any
existing bug, but fixes the mapping for future uses of the condition code.
2025-09-08 11:41:15 +02:00
Ryan Houdek
bd0cae9298
Merge pull request #4825 from bylaws/unityomg
...
Frontend: Force acq/rel semantics for known Unity ringbuffer offsets
2025-09-06 17:09:13 -07:00
Ryan Houdek
6ae94581bb
Merge pull request #4821 from bylaws/monof
...
Frontend: Fix tailcall handling when mono hacks are enabled
2025-09-06 16:51:08 -07:00
LC
3df3999138
Merge pull request #4838 from lioncash/dumper
...
IRDumper: Add missing PrintArg for IndexNamedVectorConstant
2025-09-05 13:06:53 -04:00
Ryan Houdek
a804cb5d07
Merge pull request #4833 from lioncash/ptr
...
CPUBackend: Remove unused variable in CheckCodeBufferUpdate
2025-09-04 11:20:42 -07:00
Ryan Houdek
03c968a8fe
Merge pull request #4831 from lioncash/header
...
IntrusiveIRList/RegisterAllocationData: Remove unused headers
2025-09-04 11:20:14 -07:00
Ryan Houdek
5e467c737f
Merge pull request #4822 from bylaws/ecent
...
Dispatcher: Move the EC entrypoint check prior to the L1 lookup
2025-09-04 11:19:29 -07:00
Lioncache
dfc42fa7c5
IRDumper: Add missing PrintArg for IndexNamedVectorConstant
...
Results in better named output for these.
2025-09-04 12:04:48 -04:00
Lioncache
4e83ca67f5
CPUBackend: std::move shared_ptr where applicable
...
Very minor, just avoids churning reference count increments and decrements.
2025-09-03 21:20:58 -04:00
Lioncache
76e6c6f8ea
CPUBackend: Remove unused shared_ptr in CheckCodeBufferUpdate()
...
Just gets rid of an unused variable.
2025-09-03 21:19:16 -04:00
Ryan Houdek
343a529e63
Merge pull request #4824 from bylaws/tf2
...
OpDispatcher: Force a recheck of TF after POPF
2025-09-03 15:24:40 -07:00
Ryan Houdek
c6ccc68607
Merge pull request #4823 from bylaws/mbooo
...
Frontend: Always explore fallthrough branches with multiblock
2025-09-03 15:24:29 -07:00
Ryan Houdek
8009f4a6ee
Merge pull request #4820 from bylaws/neg
...
AtomicOps: Reimplement AtomicNeg using 8.1 CAS atomics
2025-09-03 15:23:40 -07:00
Tony Wasserka
e126cecb16
Merge pull request #4818 from lioncash/at
...
General: Replace usages of .at(0) with .data() where applicable
2025-09-03 22:37:50 +02:00
Tony Wasserka
5e19202540
Merge pull request #4816 from lioncash/float
...
F80Fallbacks: Remove unnecessary memset
2025-09-03 22:36:59 +02:00
Billy Laws
06466bac0e
Dispatcher: Drop the L1 lookup
...
This is almost never hit outside of exceptional cases like signals/SMC,
for which other overheads dominate.
2025-09-03 18:26:47 +01:00
Billy Laws
156edcacb2
Dispatcher: Move the EC entrypoint check prior to the L1 lookup
...
Profiling shows this is by far the hottest path, as every DX call will
hit this (as arm64ec functions in a vtable). L2 hits are much rarer and
L1 almost never hits since that is looked up inline in most cases.
2025-09-03 18:26:47 +01:00
Lioncache
7041bdb144
IntrusiveIRList: Remove unused headers
...
Gets rid of unnecessary dependencies and clarifies previously indirect dependencies.
2025-09-03 10:39:45 -04:00
Lioncache
19e8c3fcb6
RegisterAllocationData: Remove unused headers
...
Gets rid of unnecessary header dependencies.
2025-09-03 10:31:41 -04:00
LC
06c5135d4e
Merge pull request #4815 from lioncash/abi
...
Dispatcher: Reduce header dependencies
2025-09-03 09:45:36 -04:00