Ryan Houdek
5bcdb3d478
IREmitter: Remove Pad default argument
...
Default argument is no longer used
2025-12-29 11:29:02 -08:00
Ryan Houdek
2f1017efed
Core/Addressing: Constant audit
2025-12-29 11:29:02 -08:00
Ryan Houdek
b794b9ed2c
Core/Vector: Constant audit
2025-12-29 11:29:02 -08:00
Ryan Houdek
3fd86a953b
Core/AVX_128: Constant audit
2025-12-29 11:29:02 -08:00
Ryan Houdek
5eb416df15
Core/OpcodeDispatcher.cpp: Constant audit
2025-12-29 11:29:02 -08:00
Ryan Houdek
efa78ee0c6
Core/OpcodeDispatcher.h: Constant audit
2025-12-29 11:29:01 -08:00
Ryan Houdek
8269d04b57
IR/IREmitter: Constant audit
2025-12-29 11:29:01 -08:00
Ryan Houdek
5e782cc1c2
Core/Flags: Constant audit
2025-12-29 11:29:01 -08:00
Ryan Houdek
0ff3fb7f47
Core/X87: Constant audit
2025-12-29 11:29:01 -08:00
Ryan Houdek
aa631c5585
Core/X87F64: Constant audit
2025-12-29 11:29:01 -08:00
Ryan Houdek
5c53583456
Core/Core: Constant audit
2025-12-29 11:29:01 -08:00
Ryan Houdek
a1a30cd9a6
IR: Remove default argument for padding in Constant op
...
All use cases now pass a pad type in to this.
2025-12-29 11:29:01 -08:00
Ryan Houdek
a480793708
Passes/RegisterAllocationPass: _Constant audit
2025-12-29 11:04:35 -08:00
Ryan Houdek
477b72ba52
OpcodeDispatcher/OpcodeDispatcher: Partial _Constant audit
...
`MOVGPRImmediate` is changing in another PR and we need to come back to
it.
2025-12-29 11:04:35 -08:00
Ryan Houdek
f63ba7e3be
OpcodeDispatcher/Vector: _Constant audit
2025-12-29 11:04:35 -08:00
Ryan Houdek
54dca47e09
OpcodeDispatcher/X87: _Constant audit
2025-12-29 11:04:35 -08:00
Ryan Houdek
53e0c8d5bf
OpcodeDispatcher.h: _Constant audit
2025-12-29 11:04:35 -08:00
Ryan Houdek
8588c22170
IREmitter: _Constant audit
2025-12-29 11:04:35 -08:00
Ryan Houdek
c2d5ee43c6
Passes/x87StackOptimizationPass: _Constant audit
2025-12-29 11:04:35 -08:00
Ryan Houdek
c7c6855740
IREmitter: Allow the constant pool to understand padtype and bytes
...
Fixes an issue that a potential same constant could be padded for one
use and not padded for another.
2025-12-29 11:04:34 -08:00
Ryan Houdek
79f2832591
OpcodeDispatcher: Rename LoadConstantShift
...
Kind of annoying that it is overlapping with LoadConstant.
NFC
2025-12-29 11:04:34 -08:00
Ryan Houdek
cb432548bf
IR: Allow passing padding and MaxBytes through Constant IR
2025-12-29 11:04:34 -08:00
Ryan Houdek
5bbbe4d2e9
Merge pull request #5140 from Sonicadvance1/25
...
First round of `LoadConstant` auditing
2025-12-29 10:16:23 -08:00
Ryan Houdek
9101e704ce
Merge pull request #5174 from lioncash/warn
...
CodeCache: Fix misparenthesized expression in SaveData()
2025-12-28 12:08:32 -08:00
Ryan Houdek
212a3f45f8
Merge pull request #5164 from bylaws/gmeo
...
ImageTracker: Track loaded PE images for LookupExecutableFileSection
2025-12-28 12:08:07 -08:00
Lioncache
0107338020
CodeCache: Fix misparenthesized expression in SaveData()
...
Fixes a -Wshift-op-parentheses warning, and what seems to be a
legitimate bug, based off some quick reading.
2025-12-28 09:42:50 -05:00
Billy Laws
f2bbc0eccd
CodeCache: Use defaulted dtor for ExecutableFileInfo
2025-12-28 00:30:47 +00:00
Billy Laws
0152f3adb2
CodeCache: Rebase block entrypoint info
...
Entrypoint information contains guest addresses that must be rebased for
correctness.
2025-12-28 00:25:56 +00:00
Billy Laws
064a48e965
CodeCache: Make LoadData Thread argument an optional pointer
...
Windows doesn't have access to Thread when loading the main image and
ntdll.
2025-12-23 23:45:07 +00:00
Billy Laws
86211e18d7
ALookupExecutableFileSection: Take thread argument as an optional pointer
2025-12-23 23:44:58 +00:00
Ryan Houdek
6196a3a6a4
Arm64Emitter: Removes Default pad type from LoadConstant
...
All direct usages have been audited. Now we need to do indirect usages
through the `Constant` IR operation.
2025-12-23 11:34:34 -08:00
Ryan Houdek
e7ec8e3613
JIT/BranchOps: LoadConstant audit
...
`ThreadRemoveCodeEntry` doesn't properly have relations wired up but it
does use the Entry. So this would be broken on code caching with
relocations.
2025-12-23 11:34:34 -08:00
Ryan Houdek
a5d4ea8004
JIT/JIT: LoadConstant audit
2025-12-23 11:34:34 -08:00
Ryan Houdek
0653426793
JIT/MemoryOps: LoadConstant audit
2025-12-23 11:34:34 -08:00
Ryan Houdek
ba352cebc8
JIT/MiscOps: LoadConstant audit
2025-12-23 11:34:34 -08:00
Ryan Houdek
6e712bf1b6
JIT/ALUOps: LoadConstant audit
...
`Constant` IR op needs the frontend to be audited and pass padding
information through.
2025-12-23 11:34:34 -08:00
Ryan Houdek
b23dc6a9b3
JIT/Dispatcher: LoadConstant audit
2025-12-23 11:34:34 -08:00
Ryan Houdek
c2177bff09
JIT/VectorOps: LoadConstant audit
2025-12-23 11:34:34 -08:00
Ryan Houdek
8d95172118
JIT/EncryptionOps: LoadConstant audit
2025-12-23 11:34:34 -08:00
Ryan Houdek
d6f290f6d2
Arm64Emitter: Move NOP pads to before the move instructions
...
Recent CPUs do nop fusion with the following instruction, this gives the
CPU the best chance to do fusion with something that actually does work.
Very trivial, doesn't do this for the more complex handling below these
as counting the number of moves before nop emitting is messy.
2025-12-22 14:14:58 -08:00
Ryan Houdek
d2b9bfd6ee
Arm64Emitter: Changes LoadConstant to support Pad and byte width
...
Instead of just a trivial pad being on or off, support a tri-state
on/off/auto where on will always pad, off will never pad, and auto will
pad only if code caching is enabled.
Further augment this by allowing a byte-width to be passed in, which can
be used with pointers to force a 48-bit VA width to only ever pad to
three instructions, reducing the common worst-case situation from 4
instructions to 3. This works because we're not going to expose a VA
width larger than 47-bit to the guest.
Fixes the handful of use-cases that explicitly chose their NOP padding,
and a bug in Arm64Relocations.cpp where it was incorrectly asking to not
receive padding even though it requires it.
2025-12-22 14:14:58 -08:00
Ryan Houdek
0a18ea8f4d
Merge pull request #5138 from bylaws/eCcodecachingrelocval
...
Frontend: Also fetch relocations and section bounds when validating
2025-12-22 14:13:20 -08:00
Tony Wasserka
eb425fe640
Merge pull request #5127 from neobrain/feature_automatic_code_cache
...
CodeCache: Implement automatic cache generation
2025-12-22 21:55:10 +00:00
Tony Wasserka
2573bcb90f
CodeCache: Turn ExecutableFileSectionInfo::FileInfo into a const reference
2025-12-22 21:20:22 +01:00
Tony Wasserka
b98b377fc0
GDBJIT: Use a const reference to read ExecutableFileInfo
2025-12-22 21:20:22 +01:00
Billy Laws
67e3bb8596
Frontend: Also fetch relocations and section bounds when validating
2025-12-22 18:50:03 +00:00
Ryan Houdek
3025a10808
FEXCore: Revert literal optimization from #4884
...
This no longer does anything due to #5123
2025-12-22 10:00:55 -08:00
Ryan Houdek
93f6a8cb4d
Merge pull request #5130 from neobrain/feature_code_cache_validation
...
CodeCache: Implement runtime cache validation
2025-12-22 09:17:51 -08:00
Ryan Houdek
fef1993dd7
Merge pull request #5123 from bylaws/whehsajsreloc
...
Guest relocation support
2025-12-22 09:14:03 -08:00
Tony Wasserka
8fcb84112b
CodeCache: Implement runtime cache validation
2025-12-22 17:52:43 +01:00