Ryan Houdek
0309bc3d90
Frontend: Removes DST_RAX subflag
...
Shifts the last subflag down
2026-09-15 15:00:03 -07:00
Ryan Houdek
1523142540
OpcodeDispatcher: Removes DST_RAX from CMP/TEST
2026-09-15 15:00:03 -07:00
Ryan Houdek
5743282944
OpcodeDispatcher: Removes DST_RAX from SBB
2026-09-15 15:00:02 -07:00
Ryan Houdek
9d936a8989
OpcodeDispatcher: Removes DST_RAX from ADC
2026-09-15 15:00:02 -07:00
Ryan Houdek
1e95181b34
OpcodeDispatcher: Removes DST_RAX from ALUOp operations.
2026-09-15 15:00:01 -07:00
Ryan Houdek
d85f5b4398
OpcodeDispatcher: Remove DST_RAX from LODS
...
This was already handled.
2026-09-15 15:00:01 -07:00
Ryan Houdek
ed6d7092a2
OpcodeDispatcher: Removes DST_RAX from moffset instructions
...
I had already removed the use here.
2026-09-15 15:00:01 -07:00
Ryan Houdek
a164315b7d
OpcodeDispatcher: Removes DST_RAX from BCD ops
...
These already didn't use the flag actually.
2026-09-15 15:00:00 -07:00
Ryan Houdek
e8084e3f11
OpcodeDispatcher: Remove DST_RAX from FNSTSW
2026-09-15 15:00:00 -07:00
Ryan Houdek
cad4cb9b64
Frontend: Remove SRC_RCX subflag
2026-09-15 11:56:10 -07:00
Ryan Houdek
ea263166c5
OpcodeDispatcher: Removes SRC_RCX from shift/rotate ops
...
These are all similar to each other with similar code. Hit them at the
same time.
2026-09-15 11:56:09 -07:00
Ryan Houdek
3f66c6754d
OpcodeDispatcher: Remove SRC_RCX from LOOP
2026-09-15 11:56:09 -07:00
Ryan Houdek
242f17eca9
OpcodeDispatcher: Remove SRC_RCX from SHLD/SHRD
2026-09-15 11:56:09 -07:00
Ryan Houdek
7917f43720
Frontend: Removes SRC_RAX subflag
2026-09-14 16:03:31 -07:00
Ryan Houdek
58e0e1a03a
OpcodeDispatcher: Removes SRC_RAX from XCHG
2026-09-14 16:03:31 -07:00
Ryan Houdek
5f8a7a18f0
OpcodeDispatcher: Removes SRC_RAX from CQO/CDQE
2026-09-14 15:40:03 -07:00
Ryan Houdek
b3fe634c8b
OpcodeDispatcher: Remove SRC_RAX from moffset MOV
2026-09-14 15:40:03 -07:00
Ryan Houdek
6f395885cb
OpcodeDispatcher: Removes SRC_RAX from SCAS
2026-09-14 14:56:36 -07:00
Ryan Houdek
8cfbc44482
OpcodeDispatcher: Removes SRC_RAX from STOS
2026-09-14 14:54:58 -07:00
Ryan Houdek
4731a5ace4
OpcodeDispatcher: Removes DST/SRC_RAX from SALC
2026-09-14 14:40:23 -07:00
Ryan Houdek
8201228c0d
OpcodeDispatcher: Removes SRC_RAX from clzero
2026-09-14 14:34:52 -07:00
Ryan Houdek
4170d9d50c
OpcodeDispatcher: Removes SRC_RAX from CPUID
2026-09-14 14:33:40 -07:00
Ryan Houdek
cb9eb00339
Frontend: Remove DST_RDX flag
...
Easiest initial one to remove. Adds a helper that matches behaviour of
previous StoreResult around zero-extend mechanics to make things easier.
2026-09-14 10:55:44 -07:00
Pierre-Loup A. Griffais
aa9ae27932
Frontend: mark more (all?) imm32s for DiskCache patching
...
Including big C7 who was very prevalent.
2026-09-13 17:37:49 -07:00
Pierre-Loup A. Griffais
f9623af073
Frontend: mark a bunch of disp32s for DiskCache patching
...
Only when at the end for now, could improve with multi-field tracking.
2026-09-13 17:36:42 -07:00
Justin Becker
89a13cd5fd
AVX-VNNI
2026-09-10 15:56:03 -07:00
Ryan Houdek
91bbce5a96
FEXCore/OpcodeDispatcher: Fixes syscall instruction on Linux
...
I forgot on Linux by default we didn't have the syscall instructions
count as block end. Change this so that it counts as block end now.
This has the additional benefit that now the frontend needs to modify
the RIP manually as well which is fine as it's what arm64ec and wow64
does.
Also add back the UnimplementedOp in RDPID that accidentally got caught
up. Also increment DiskCache version as both changes will change
codegen.
Fixes #5942
2026-09-10 09:50:07 -07:00
Ryan Houdek
f32fe56bb3
X86Tables: Give REX2 a name
...
Obviously unsupported but we can name the thing at least.
2026-09-08 15:25:53 -07:00
Pierre-Loup A. Griffais
8bf22b6382
DiskCache: add plumbing for guest-patching for branches
...
To catch many conditional jumps found in Mono JITted code.
2026-09-07 00:47:47 -07:00
Pierre-Loup A. Griffais
c92805475d
DiskCache: detect inline data, hash around it and patch it on Lookup
...
Only detect certain kinds of mov reg,immediate so far, which was the bulk of
Mono JIT activity.
2026-09-06 23:25:29 -07:00
Ryan Houdek
4048faa54b
FEXCore/Frontend: Ensure instruction sizes account for sha256 in thunk op
...
Fixes the hashing mechanism from DiskCache.cpp, allowing it to properly
handle thunk relocations.
Fixes #5896
2026-09-02 14:32:08 -07:00
Justin Becker
34a87cc94c
Decoder: fix illegal LEA encoding
2026-07-27 15:48:35 -07:00
LC
ab4fb7b3ad
[SVE256] Ensure insertion behavior for AES operations on SSE
...
These slipped through, so now we can add tests for them to prevent that
from happening again.
2026-07-03 19:35:31 -04:00
LC
df41b85827
OpcodeDispatcher: Merge VPINSRB/VPINSRW handling
...
We can just pass the size through Bind instead of having two functions
that effectively do the same thing, only differing on element size.
2026-06-21 15:33:37 -04:00
LC
8989ce1766
[SVE256] Handle SSE insertions for PCMPESTRM/PCMPISTRM ops
...
See #3799
2026-06-19 18:53:50 -04:00
LC
f64d4c571b
[SVE256] Handle SSE insertions for MOVSHDUP/MOVSLDUP
...
See #3799
2026-06-17 20:38:58 -04:00
LC
daaa6ec129
[SVE256] Handle SSE insertions for aligned and unaligned moves
...
See #3799
2026-06-17 19:39:06 -04:00
LC
88afc22d5b
[SVE256] Handle SSE insertions for MOVNTDQA
...
See #3799
2026-06-17 19:38:57 -04:00
LC
634fbb5a73
[SVE256] Handle SSE insertions for Float->Int/Int->Float conversions
...
See #3799
2026-06-17 04:44:39 -04:00
LC
a0e8f1097f
[SVE256] Handle SSE insertions for PHMINPOSUW
...
See #3799
2026-06-17 01:21:19 -04:00
LC
32b11603d8
[SVE256] Handle SSE insertions for PMOVSX/PMOVZX ops
2026-06-17 00:04:03 -04:00
LC
c62805e86d
OpcodeDispatcher: Make use of Bind consistently
...
We had a few places that were using Bind, and a few other places
that were using specializations as a means to composing the instruction
tables. Instead, we can just use Bind consistently, which lets us tidy
up a bunch of the implementations (and gets rid of some unnecessary
codegen).
2026-06-16 15:07:59 -04:00
Ryan Houdek
1b58664541
X86Tables: Describe instructions that support LOCK prefix
2026-06-02 19:41:02 -07:00
Daniel Lu
5cce65cdfa
OpcodeDispatcher: Decode INVD and WBINVD through privileged op handling
2026-05-22 15:25:22 -07:00
Simon Scherer
ab14882761
FEXCore: Fix 2byte stack access for 0x66 PUSH/POP FS/GS
2026-04-27 15:21:11 -07:00
Ryan Houdek
2e6a7f869c
OpcodeDispatcher: Fixes nop encoded prefetch instruction
...
We had a bug where nop encoded prefetch instructions were getting
flagged as illegal instructions erroneously. Fix that and add a unittest
for ensuring execution.
Fixes `Devil May Cry 4`
2026-04-06 11:04:46 -07:00
Tony Wasserka
22faa58e0b
X86Tables: Use explicit type for SecondInstGroupOps definition
...
GCC considers it a "conflicting declaration" to use auto for a variable that
was already declared before.
2026-03-16 19:15:05 +01:00
Lioncache
c8f3772753
X87Tables: Handle aliases for FSTP
2026-02-26 19:08:48 -05:00
Lioncache
b046942a28
X87Tables: Handle aliases for FXCH
2026-02-26 17:44:12 -05:00
Lioncache
6909d49683
X87Tables: Add handling for FCOMP DE D0 aliases
...
Handles the single remaining alias for FCOMP.
2026-02-26 16:14:55 -05:00