Ryan Houdek
d8f226b460
Support 32-bit thunks ABI
2022-12-14 11:29:19 -08:00
Ryan Houdek
1971c8d505
32bit host thunk lib config path support
2022-12-14 11:24:18 -08:00
lioncash
27ea6096a2
OpcodeDispatcher: Handle VROUNDSD
2022-12-14 06:41:36 +00:00
lioncash
2244dd9847
OpcodeDispatcher: Handle VROUNDSS
2022-12-14 06:34:58 +00:00
lioncash
ca2f4bd468
OpcodeDispatcher: Handle VROUNDPD
2022-12-14 06:28:17 +00:00
lioncash
6b5c94be23
OpcodeDispatcher: Handle VROUNDPS
2022-12-14 06:27:59 +00:00
lioncash
779dc48d8d
OpcodeDispatcher: Factor out VectorRound into VectorRoundImpl
...
This will be used in following commits for the AVX versions that use
this.
2022-12-14 05:52:16 +00:00
lioncash
90828aeb11
OpcodeDispatcher: Handle VINSERTI128
2022-12-14 04:26:42 +00:00
lioncash
fe7c6da1e2
OpcodeDispatcher: Handle VINSERTF128
2022-12-14 04:24:04 +00:00
lioncash
a9ad0d081c
OpcodeDispatcher: Handle VPERM2I128
2022-12-14 03:41:29 +00:00
lioncash
54885bec32
OpcodeDispatcher: Handle VPERM2F128
2022-12-14 03:41:22 +00:00
lioncash
8a961bfcc5
VEXTables: Specify VPERMQ/VPERMPD as 256-bit
...
The AVX versions of these operands only operate on 256-bit ymm
registers, so we can specify this directly to be a little more
self-documenting.
2022-12-14 01:51:36 +00:00
lioncash
d6ab7a4f97
Frontend: Handle 256-bit destination sizes directly
...
Previously the only time we'd promote to a 256-bit size is if the VEX.L
bit was set in the 128-bit path.
Allow specifying 256-bit sizes directly.
2022-12-14 01:50:05 +00:00
lioncash
7114fb3293
OpcodeDispatcher: Handle VPERMPD
2022-12-14 01:37:27 +00:00
lioncash
8a87aff730
OpcodeDispatcher: Handle VPERMQ
2022-12-14 01:30:55 +00:00
lioncash
c5b4719793
OpcodeDispatcher: Handle VHADDPD
2022-12-13 23:45:42 +00:00
lioncash
0f6201108f
OpcodeDispatcher: Handle VHADDPS
2022-12-13 23:45:38 +00:00
lioncash
b589dce7f5
x86_64/VectorOps: Make VFADDP behavior consistent with ARMv8
...
We need to swap the second and third results to be consistent with ARM.
Also fixes the mistake where I used vhaddpd instead of vhaddps in the
single-precision 256-bit case.
2022-12-13 23:34:12 +00:00
lioncash
c98fffd33d
OpcodeDispatcher: Handle VPMAXSD
2022-12-13 21:49:40 +00:00
lioncash
de3777cc78
OpcodeDispatcher: Handle VPMAXSW
2022-12-13 21:47:17 +00:00
lioncash
dd640e7a3d
OpcodeDispatcher: Handle VPMAXSB
2022-12-13 21:44:46 +00:00
lioncash
d53ddb73bf
OpcodeDispatcher: Handle VPMAXUD
2022-12-13 21:40:29 +00:00
lioncash
25e9333abb
OpcodeDispatcher: Handle VPMAXUW
2022-12-13 21:38:52 +00:00
lioncash
85766dd074
OpcodeDispatcher: Handle VPMAXUB
2022-12-13 21:36:47 +00:00
lioncash
b0e0a2a165
OpcodeDispatcher: Handle VPMINSD
2022-12-13 20:51:14 +00:00
lioncash
0efcb912b5
OpcodeDispatcher: Handle VPMINSW
2022-12-13 20:49:08 +00:00
lioncash
9d0cc58737
OpcodeDispatcher: Handle VPMINSB
2022-12-13 20:47:00 +00:00
lioncash
b671ed57ef
OpcodeDispatcher: Handle VPMINUD
2022-12-13 20:41:53 +00:00
lioncash
a2a44d188a
OpcodeDispatcher: Handle VPMINUW
2022-12-13 20:39:55 +00:00
lioncash
364064536b
OpcodeDispatcher: Handle VPMINUB
2022-12-13 20:36:51 +00:00
lioncash
6d44370f28
OpcodeDispatcher: Handle VPSUBSW
2022-12-13 18:52:55 +00:00
lioncash
273e2977a8
OpcodeDispatcher: Handle VPSUBSB
2022-12-13 18:50:02 +00:00
lioncash
7264b07d4f
OpcodeDispatcher: Handle VPADDSW
2022-12-13 18:42:11 +00:00
lioncash
92351e7f33
OpcodeDispatcher: Handle VPADDSB
2022-12-13 18:40:08 +00:00
lioncash
6aaffec67f
OpcodeDispatcher: Handle VPSUBUSW
2022-12-13 18:05:46 +00:00
lioncash
6f474cedd3
OpcodeDispatcher: Handle VPSUBUSB
2022-12-13 18:03:13 +00:00
lioncash
d9176114c5
OpcodeDispatcher: Handle VPADDUSW
2022-12-13 18:03:07 +00:00
lioncash
287cee5b41
OpcodeDispatcher: Handle VPADDUSB
2022-12-13 18:02:55 +00:00
lioncash
90d23098db
OpcoodeDispatcher: Handle VPSUBQ
2022-12-13 06:01:19 +00:00
lioncash
384a09bbf1
OpcoodeDispatcher: Handle VPSUBD
2022-12-13 05:58:37 +00:00
lioncash
2fd29c47d4
OpcoodeDispatcher: Handle VPSUBW
2022-12-13 05:58:34 +00:00
lioncash
e8aa8d89ec
OpcoodeDispatcher: Handle VPSUBB
2022-12-13 05:47:50 +00:00
lioncash
469ff91311
OpcodeDispatcher: Handle VPSIGND
2022-12-13 05:24:35 +00:00
lioncash
ef14c411ce
OpcodeDispatcher: Handle VPSIGNW
2022-12-13 05:20:12 +00:00
lioncash
c2c5d176e4
OpcodeDispatcher: Handle VPSIGNB
2022-12-13 05:13:26 +00:00
lioncash
2328430d2e
OpcodeDispatcher: Factor PSIGN handling into helper
...
This will allow us to use this with VEX and non-VEX variants without
needing to insert the upper-lane clearing for 128-bit variants into the
non-VEX path.
That, and this also allows us to not need to add additional template
arguments
2022-12-13 05:13:17 +00:00
lioncash
8c59e3e9e2
OpcodeDispatcher: Handle VDIVSD
2022-12-13 04:28:19 +00:00
lioncash
fed861fa6b
OpcodeDispatcher: Handle VDIVSS
2022-12-13 04:22:00 +00:00
lioncash
ce9969ee8f
OpcodeDispatcher: Handle VDIVPD
2022-12-13 04:16:33 +00:00
lioncash
9330ca41ea
OpcodeDispatcher: Handle VDIVPS
2022-12-13 04:12:32 +00:00