LC
b7ea9e30df
[SVE256] Handle SSE insertions for MOVH(PD, PD, LPS) and MOVL(PD, PS, HPS)
...
See #3799
Gets a few of the moves out of the way.
2026-06-17 17:39:13 -04:00
LC
844c3bb197
[SVE256] Handle SSE insertions for XOR special case
...
See #3799
Ensures that our special case maintains insertion behavior
2026-06-17 16:33:05 -04:00
LC
208c6d3eac
[SVE256] Handle SSE insertions for vector unary ops
...
See #3799
2026-06-17 14:43:56 -04:00
LC
886a2e74ac
[SVE256] Handle SSE insertions for pack ops
2026-06-17 13:36:18 -04:00
LC
db1d90ec9d
[SVE256] Handle SSE insertions for shuffles
...
See #3799
2026-06-17 08:44:45 -04:00
LC
124ce8420a
[SVE256] Handle SSE insertions for PINSR(B,D,Q,W)
...
See #3799
2026-06-17 08:22:26 -04:00
LC
4433eaf242
[SVE256] Handle SSE insertions for INSERTPS
...
See #3799
2026-06-17 08:11:49 -04:00
LC
5ba070f600
[SVE256] Handle SSE insertions for PSIGN(B,D,W)
...
See #3799
2026-06-17 07:59:33 -04:00
LC
2d1a42aa00
[SVE256] Handle SSE insertions for shifts
...
See #3799
2026-06-17 06:06:08 -04:00
LC
74d9f5a3e2
[SVE256] Handle SSE insertions for MOVDDUP
...
See #3799
2026-06-17 05:13:08 -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
e16948bf80
[SVE256] Handle SSE insertions for CVTPD2PS/CVTPS2PD
...
See #3799
2026-06-17 03:51:36 -04:00
LC
76c9833ee5
[SVE256] Handle SSE insertions for CMPPD/CMPPS
...
See #3799
2026-06-17 03:33:26 -04:00
Ryan Houdek
99662b70ff
Merge pull request #5560 from lioncash/psad
...
[SVE256] Handle SSE insertions for more misc ops
2026-06-17 00:14:30 -07:00
LC
fcde9eabbf
[SVE256] Handle SSE insertions for PALIGNR
...
See #3799
2026-06-17 02:13:37 -04:00
LC
4ef15951a8
[SVE256] Handle SSE insertions for PACKSS/PACKUS ops
...
See #3799
2026-06-17 02:08:24 -04:00
LC
1bc51c2290
[SVE256] Handle SSE insertions for PMULUDQ
...
See #3799
2026-06-17 02:00:11 -04:00
LC
be1025901a
[SVE256] Handle SSE insertions for ADDSUBPD/ADDSUBPS
...
See #3799
2026-06-17 01:54:55 -04:00
Ryan Houdek
1a606de29f
Merge pull request #5559 from lioncash/phmin
...
[SVE256] Handle SSE insertions for PHMINPOSUW, DPPD, and DPPS
2026-06-16 22:50:53 -07:00
LC
454c0b31cb
[SVE256] Handle SSE insertions for MPSADBW
...
See #3799
2026-06-17 01:47:21 -04:00
Ryan Houdek
223e0f4e53
Merge pull request #5558 from lioncash/blend
...
[SVE256] Handle SSE insertions for blends
2026-06-16 22:34:32 -07:00
LC
3a84091945
[SVE256] Handle SSE insertions for DPPD/DPPS
...
See #3799
2026-06-17 01:32:36 -04:00
LC
a0e8f1097f
[SVE256] Handle SSE insertions for PHMINPOSUW
...
See #3799
2026-06-17 01:21:19 -04:00
LC
0258fcb116
[SVE256] Handle SSE insertions for blends
...
See #3799
2026-06-17 01:05:46 -04:00
LC
3272aa3f08
[SVE256] Handle SSE insertions for ROUNDPD/ROUNDPS
...
See #3799
2026-06-17 00:42:20 -04:00
LC
32b11603d8
[SVE256] Handle SSE insertions for PMOVSX/PMOVZX ops
2026-06-17 00:04:03 -04:00
LC
538fd2672d
[SVE256] Handle SSE insertions for PSADBW
...
See #3799
2026-06-17 00:04:03 -04:00
LC
3e37724e3e
[SVE256] Handle SSE insertions for PHADDSW
...
See #379
2026-06-17 00:04:03 -04:00
LC
1b249ba76b
[SVE256] Handle SSE insertion for PHSUBD/PHSUBW/PHSUBSW
2026-06-17 00:04:03 -04:00
LC
df1295fbd0
[SVE256] Handle SSE insertions for HSUBPD/HSUBPS
...
See #3799
2026-06-17 00:04:03 -04:00
LC
dcd71fe126
[SVE256] Handle SSE insertions for PMULHW/PMULHRSW
...
See #3799
2026-06-17 00:04:00 -04:00
LC
610ee5db76
[SVE256] Handle SSE insertions for PMADDUBSW
...
See #3799
2026-06-16 23:02:25 -04:00
Ryan Houdek
9d5494d9f0
Merge pull request #5555 from lioncash/alu
...
[SVE256] Vector: Handle SSE insertion properly for various ALU operations
2026-06-16 19:56:38 -07:00
Ryan Houdek
dd44bc8d00
Merge pull request #5554 from lioncash/vmov
...
OpcodeDispatcher: Eliminate redundant moves in VMOVHPOp
2026-06-16 19:47:01 -07:00
Ryan Houdek
110c7cb62b
Merge pull request #5553 from lioncash/bind
...
OpcodeDispatcher: Make use of Bind consistently
2026-06-16 19:44:44 -07:00
LC
1d8b6df630
[SVE256] Vector: Handle SSE insertion properly for various ALU operations
...
See #3799 for the bulk of the issue explanation. Ensures that emulated
SSE operation on aarch64 don't end up obliterating the upper 128-bit
lane when SVE-256 is present (Adv. SIMD operations zero-extend)
Knocks out quite a few SSE instructions right off the jump.
2026-06-16 22:26:28 -04:00
LC
195058752e
OpcodeDispatcher: Eliminate redundant moves in VMOVHPOp
...
Will make removing the TODO in LoadSource regarding partial loads a
little easier.
2026-06-16 17:47:01 -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
LC
d15b175c33
OpcodeDispatcher: Move a few stray literal accesses to Literal()
...
Same core behavior, but ensures that the immediates are valid literals
when assertions are enabled.
2026-06-16 11:50:48 -04:00
Ryan Houdek
ac12dd55c3
Frontend: Fix vsyscall page tracking.
...
Now that NX is tracked in the frontend, we need to ensure that adjusted
RIP pages are tracked correctly. Keep around both instruction stream
pointers, validate the the original RIP is executable, and read from the
adjusted RIP as appropriate.
Fixes #5544
2026-06-03 18:03:31 -07:00
LC
d848cbbc0f
Merge pull request #5543 from Sonicadvance1/165
...
FEXCore: Ensure LOCK prefix instructions are handled correctly
2026-06-02 23:39:02 -04:00
Ryan Houdek
8bfae631b1
Frontend: Support raising unimplemented instruction on LOCK failure
...
When the LOCK prefix is on an instruction that doesn't support LOCK then
it raises a SIGILL. Make sure to pass that up.
Additionally if the instruction does support lock prefix, has a lock
prefix, but the destination is not memory then that is also invalid.
2026-06-02 19:41:03 -07:00
Ryan Houdek
d00c7cf3a3
Frontend: Support passing the decode failure type through decoding
...
Only used for invalid inst currently
2026-06-02 19:41:03 -07:00
Ryan Houdek
b45665fee4
OpcodeDispatcher: Support instruction type of unimplement operation
2026-06-02 19:41:03 -07:00
Ryan Houdek
1b58664541
X86Tables: Describe instructions that support LOCK prefix
2026-06-02 19:41:02 -07:00
Ryan Houdek
ca310cf815
OpcodeDispatcher: Fixes 64-bit LODs with address size override
...
Fairly trivial but just need to be careful with address size wraparound
as usual.
2026-06-02 18:21:00 -07:00
Ryan Houdek
fd3546a999
arm64ec: Single instruction optimization in EC map lookup
...
We can merge the lsr+and in to a single lsr by 18 and then use ldr with
LSL of 3 to accomplish the same result. Modern Cortex doesn't even
generate an additional integer pipeline uop for this ldr+lsl instruction
anymore.
2026-05-29 19:17:13 -07:00
Ryan Houdek
fef5a98602
Fix build failure.
2026-05-22 15:33:41 -07:00
Daniel Lu
5cce65cdfa
OpcodeDispatcher: Decode INVD and WBINVD through privileged op handling
2026-05-22 15:25:22 -07:00
Daniel Lu
03009912ac
JIT: Avoid clobbering guest rdx while raising generated faults
2026-05-22 13:56:40 -07:00