Lioncache
449645669a
OpcodeDispatcher: Move SHUFOp implementation to helper function
...
Will be useful for handling both the SSE and AVX variants in the same
place.
2023-02-14 16:43:33 -05:00
Lioncache
504d409cf6
OpcodeDispatcher: Handle VPSHUFD
2023-02-14 13:13:09 -05:00
Lioncache
29a6d584a9
OpcodeDispatcher: Handle VPSHUFHW
2023-02-14 12:48:42 -05:00
Lioncache
310fcf969c
OpcodeDispatcher: Handle VPSHUFLW
2023-02-14 12:32:47 -05:00
Ryan Houdek
b329442c09
Merge pull request #2404 from lioncash/dup
...
IR: Add VDupFromGPR
2023-02-13 14:37:59 -08:00
Lioncache
f4d799abdd
OpcodeDispatcher: Make use of VDupFromGPR where applicable
...
Simplifies some of the IR usage.
2023-02-13 16:52:51 -05:00
Lioncache
4bb7f49c2a
IR: Add VDupFromGPR
...
Allows broadcasting constants into vectors from GPRs. Resolves the only
remaining TODOs within our vector ops.
2023-02-13 16:52:47 -05:00
Ryan Houdek
f7f2dc2210
Merge pull request #2403 from lioncash/err
...
ARMEmitter/ASIMDOps: Amend a few error logs
2023-02-13 12:31:52 -08:00
Lioncache
c381185a7d
ARMEmitter/ASIMDOps: Amend a few error logs
...
A few were logging out the wrong instruction name on a precondition
failure.
2023-02-13 15:17:09 -05:00
Lioncache
ac5d09885e
OpcodeDispatcher: Handle VPSHUFB
2023-02-13 14:47:37 -05:00
Lioncache
d9a505e22e
OpcodeDispatcher: Factor PSHUFB implementation into helper
...
Will let us centralize the implementation for PSHUFB and VPSHUFB
2023-02-13 12:39:27 -05:00
Lioncache
9268a356f6
OpcodeDispatcher: Handle VPALIGNR
2023-02-13 10:53:02 -05:00
Lioncache
92141d3edc
OpcodeDispatcher: Factor PALIGNR code into helper
...
Will allow us to centralize the implementation of PALIGNR and VPALIGNR.
2023-02-13 09:49:26 -05:00
Lioncache
504be62a92
ARMEmitter: Handle SVE2 integer absolute difference and accumulate
2023-02-11 00:27:07 -05:00
Lioncache
62e2f1b45d
ARMEmitter: Handle SVE2 bitwise shift and insert category
2023-02-11 00:27:04 -05:00
Lioncache
880cc72842
ARMEmitter: Handle SVE2 bitwise shift right and accumulate
2023-02-11 00:24:18 -05:00
Lioncache
feacd897fc
ARMEmitter: Handle SVE2 integer add/sub long with carry category
2023-02-11 00:24:18 -05:00
Lioncache
fdd950e1d1
ARMEmitter: Handle SVE2 integer absolute difference and accumulate long category
2023-02-11 00:24:17 -05:00
Lioncache
b02af95629
ARMEmitter: Handle SVE2 complex add category
2023-02-10 22:31:45 -05:00
Lioncache
fa95a823c9
ARMEmitter: Handle SVE2 bitwise shift left long category
2023-02-09 06:30:43 -05:00
Lioncache
399ed61380
ARMEmitter: Handle SVE2 integer add/sub interleaved long
2023-02-09 05:44:44 -05:00
Lioncache
71550e29eb
ARMEmitter: Handle SVE integer matrix multiply accumulate
2023-02-09 05:34:11 -05:00
Lioncache
1b8d8f8280
ARMEmitter: Handle SVE2 interleaved XOR category
2023-02-09 05:16:59 -05:00
Lioncache
ff6c70f5e1
ARMEmitter: Handle SVE2 bitwise permute category
2023-02-09 05:11:48 -05:00
Lioncache
13ee2b5ec4
ARMEmitter: Handle SVE2 add/sub narrow high part
2023-02-09 05:01:14 -05:00
Lioncache
1b4488e7a3
ARMEmitter: Remove outdated histogram TODO
...
This was implemented along with histcnt
2023-02-09 04:04:39 -05:00
Lioncache
6b4df4c998
ARMEmitter: Handle CPY (SIMD&FP, scalar)
2023-02-09 03:53:31 -05:00
Lioncache
2a1ef0ba56
ARMEmitter: Handle CPY (scalar)
2023-02-09 03:46:07 -05:00
Lioncache
915a8b23ae
ARMEmitter: suffix unpredicated wide shifts
...
Keeps the naming convention consistent while avoiding clashing
overloads.
2023-02-09 02:00:28 -05:00
Lioncache
6eeafd0724
ARMEmitter: Handle predicated wide shifts
2023-02-09 01:58:23 -05:00
Ryan Houdek
e6fc159d88
Merge pull request #2390 from lioncash/ext
...
OpcodeDispatcher: Handle VEXTRACTF128/VEXTRACTI128
2023-02-08 22:04:22 -08:00
Ryan Houdek
5fd68b6f07
Merge pull request #2392 from lioncash/wide
...
ARMEmitter: Handle unpredicated wide shifts and unpredicated shifts by immediates
2023-02-08 21:52:23 -08:00
Lioncache
5f80702cf1
ARMEmitter: Handle unpredicated bitwise shift by immediate
2023-02-09 00:15:35 -05:00
Lioncache
b45b980b3a
ARMEmitter: Handle unpredicated shifts by wide elements
2023-02-09 00:00:17 -05:00
Mai
143ef57141
Merge pull request #2345 from Sonicadvance1/user_sigreturn
...
Support user supplied signal restorer.
2023-02-08 20:11:47 -05:00
Lioncache
0218c966bd
IR: Allow specifying register size for PCLMUL
...
This will allow us to support 256-bit vector operation in the future.
2023-02-08 16:35:20 -05:00
Lioncache
ec5bc9cf3e
IR: Allow specifying register sizes for AES enc/dec ops
...
This will allow us to support operating on 256-bit vectors.
Currently only sets up the bits and pieces on the x86-64 side, since
facilities for testing the 256-bit operations on ARM isn't set up yet.
2023-02-08 16:25:19 -05:00
Lioncache
63bf0d5826
OpcodeDispatcher: Handle VEXTRACTI128
2023-02-08 15:46:27 -05:00
Lioncache
2526fa8b6f
OpcodeDispatcher: Handle VEXTRACTF128
2023-02-08 15:40:36 -05:00
Lioncache
d7c6ed842d
Arm64/VectorOps: Use movprfx with VBSL
...
We can use movprfx here to allow compressing the move and bsl operation
together on cpus that can handle it.
2023-02-07 00:44:08 -05:00
Lioncache
7a75e43125
VectorOps: Only use VBSL 256-bit path if SVE is present
...
With this in place, a _VMov isn't necessary for variable blends anymore,
since the vector upper lanes are guaranteed to be zeroed out in the 128-bit case.
2023-02-07 00:13:04 -05:00
Lioncache
88fee019a1
OpcodeDispatcher: Handle VPBLENDVB
2023-02-06 23:04:26 -05:00
Lioncache
5d3141dffc
OpcodeDispatcher: Handle VBLENDVPD
2023-02-06 23:04:26 -05:00
Lioncache
94e91565b1
OpcodeDispatcher: Handle VBLENDVPS
2023-02-06 23:04:26 -05:00
Lioncache
acbfee55b4
IR: Allow provising register size for VBSL
...
Necessary, since this will now be used with both 256-bit and 128-bit
registers, rather than just 128-bit.
2023-02-06 23:04:26 -05:00
Lioncache
a2481d6892
OpcodeDispatcher: Add helper for AVX variable blends
...
These will be used by following instruction implementations.
2023-02-06 23:04:26 -05:00
Ryan Houdek
e255f1cdef
Merge pull request #2383 from lioncash/blend
...
OpcodeDispatcher: Handle VBLENDPD/VPBLENDW
2023-02-06 18:55:31 -08:00
Ryan Houdek
cb3cfed9c2
Merge pull request #2384 from lioncash/sqadd
...
ARMEmitter: Handle SVE2 saturating add/subtract category
2023-02-06 18:55:23 -08:00
Lioncache
2b12a46d2d
ARMEmitter: Handle UQSUBR
2023-02-06 21:29:10 -05:00
Lioncache
8f50109501
ARMEmitter: Handle SQSUBR
2023-02-06 21:29:10 -05:00