TellowKrinkle
4662d0e5dc
Common: Disable and remove ALWAYS_USE_MOVAPS
...
In AVX, MOVAPS is the same size as all the other instructions.
In Nehalem (one of the main targets of SSE4), there are bypass penalties for using the wrong mov.
2025-08-24 20:16:24 -05:00
TellowKrinkle
cc5f594384
Common: Remove dedicated AVX instructions
...
The main instructions *are* AVX instructions now
2025-08-24 20:16:24 -05:00
TellowKrinkle
d9ff9d7aa1
Common: Remove old SIMD helpers
2025-08-24 20:16:24 -05:00
TellowKrinkle
08b9037781
Common: Switch g1 and g3 SIMD to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
e5ba376985
Common: Use inheritance for group 1/3 ops
2025-08-24 20:16:24 -05:00
TellowKrinkle
165595008e
Common: Remove xImpl_G1Compare
...
We already have SIMD compare under xCMPXXX.PS
2025-08-24 20:16:24 -05:00
TellowKrinkle
8dc905e827
Common: Switch movmsk to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
7cc8e5887f
Common: Switch movnt to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
3599438e57
Common: Switch movss/d to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
88515d58ab
Common: Switch movd/q to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
338e1a71a9
Common: Switch movsl/hdup to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
d9fc763f82
Common: Switch pmovzx/sx to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
7eeb6c7aca
Common: Switch blend to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
a045c917e7
Common: Switch simd mov to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
a052a43b84
Common: Switch movh/lps to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
94d87a35be
Common: Switch pack/unpack instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
0c8c798051
Common: Switch integer shuffle/insert/extract instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
c9ddab444a
Common: Switch fp shuffle/insert/extract instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
1222270e44
Common: Switch simd integer bitwise instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
86b5de8785
Common: Switch simd integer compare instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
e97f03ed8b
Common: Disable clang-format on simd.cpp
...
It's breaking all the formatting
2025-08-24 20:16:24 -05:00
TellowKrinkle
0a76c5a64d
Common: Switch fp compare instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
01a1b017e8
Common: Switch hadd/dp/round instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
ddefb8a393
Common: Switch pabs/psign/pmadd instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
62a5cd98da
Common: Switch sqrt/rsqrt/andn instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
8ad9d7d047
Common: Switch SIMD padd/pmul instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
10ed797881
Common: Switch SIMD shift instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
23918e25c2
Common: Switch CVT instructions to auto SSE/AVX
2025-08-24 20:16:24 -05:00
TellowKrinkle
de022ab68d
Common: Add auto-switching AVX/SSE emitter functions
2025-08-24 20:16:24 -05:00
TellowKrinkle
0539c177ab
x86emitter: Add pblend
2025-03-02 18:19:52 +00:00
TheTechnician27
23fd57f641
Copyright: Change year from 2002-2024 to 2002-2025
2025-01-20 05:07:26 +01:00
TheLastRar
f33064a1e2
x86emitter: Backup and restore non-volatile SSE registers
...
XMM6-XMM15 are non-volatile on Windows
2025-01-13 10:12:57 -05:00
GovanifY
132431b7c8
headers: relicense to GPL-3.0+
...
also update to 2024 while i'm at it
2024-07-30 17:17:13 -04:00
Stenzek
308f8c5112
x86emitter: Abstract MXCSR into a general FPControlRegister type
2023-12-27 13:55:35 +10:00
Stenzek
86edc0dbe2
x86emitter: Make SSE_MXCSR not dependent on emitter
2023-12-27 13:55:35 +10:00
Stenzek
f461bc9176
x86emitter: Purge x86caps
...
We can use cpuinfo for querying AVX/AVX2.
2023-12-27 13:55:35 +10:00
Stenzek
b121e5af25
x86emitter: Purge MXCSR mask
...
We require SSE4, no need to mask away things that are unsupported by
SSE1.
2023-12-27 13:55:35 +10:00
Stenzek
0bc9c7ffa1
Common: Replace x86_intrin.h with generic Intrin.h
...
For later Apple Silicon support.
2023-12-24 14:03:14 +10:00
Stenzek
d9abe10308
Misc: Remove explicit PCH include, switch to SPDX
2023-12-24 14:03:14 +10:00
Stenzek
87d392adb5
Common: Don't include x86_intrin.h globally
2023-12-24 14:03:14 +10:00
Stenzek
dc859ca0a6
Misc: Simplify assertion macros
2023-12-24 14:03:14 +10:00
Stenzek
377746f155
x86: Move dispatchers to recompiler code space
2023-10-10 18:01:30 +10:00
Stenzek
7c9c8e197c
Common: Replace MemsetFast routines with C memset
...
And associated cleanup.
On most compilers these days, it'll either inline the memset with vector
fills or rep stosq, or outline with a call to memset.
I trust the compiler is probably going to make a better decision here,
than manual SSE intrinsics.
Ends up a couple of percent faster in FMV decoding.
2023-06-22 19:11:57 +10:00
Stenzek
03242a2953
Common: Move MemcpyFast routines to General.h
...
And add a trivially-copyable check, so nobody accidentially uses them
with non-POD types.
2023-06-16 18:26:28 +10:00
Stenzek
9613b43d50
Common: Purge SingleCoreAffinity
...
No longer used, never worked on Linux.
2023-06-16 18:26:28 +10:00
Stenzek
8a8e6c5d20
Common: Purge CPU frequency measurement
...
It's not accurate, and we can query the registry for the TSC frequency
for thread timers.
Also replaces InitCPUTicks() with a global constructor.
2023-06-16 18:26:28 +10:00
lightningterror
8e6c18d3f4
emitter: Ignore Wmissing-braces warnings on clang.
2023-01-30 20:32:33 +01:00
Connor McLaughlin
0bca1aab74
Misc: Latest round of warning cleanups
2023-01-12 11:04:29 +01:00
JordanTheToaster
4d418d1bb5
Emitter: Remove old unused code
...
Irrelevant and outdated code that is no longer needed.
2023-01-10 16:18:26 +01:00
Stenzek
00d768a6bf
x86/microVU: Add VI caching
2022-12-29 10:01:25 +00:00