Commit Graph

76 Commits

Author SHA1 Message Date
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