summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_jit_x64.cpp
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2015-08-24 06:15:39 +0200
committerYuri Kunde Schlesner <yuriks@yuriks.net>2015-08-24 06:48:37 +0200
commitd8ef20c85695f6272dd71dbde1b8d04bac012dbe (patch)
treeb93b0daf3ef8f8bf2b8e64159625d69c9d119053 /src/video_core/shader/shader_jit_x64.cpp
parentShaders: Fix multiplications between 0.0 and inf (diff)
downloadyuzu-d8ef20c85695f6272dd71dbde1b8d04bac012dbe.tar
yuzu-d8ef20c85695f6272dd71dbde1b8d04bac012dbe.tar.gz
yuzu-d8ef20c85695f6272dd71dbde1b8d04bac012dbe.tar.bz2
yuzu-d8ef20c85695f6272dd71dbde1b8d04bac012dbe.tar.lz
yuzu-d8ef20c85695f6272dd71dbde1b8d04bac012dbe.tar.xz
yuzu-d8ef20c85695f6272dd71dbde1b8d04bac012dbe.tar.zst
yuzu-d8ef20c85695f6272dd71dbde1b8d04bac012dbe.zip
Diffstat (limited to 'src/video_core/shader/shader_jit_x64.cpp')
-rw-r--r--src/video_core/shader/shader_jit_x64.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/video_core/shader/shader_jit_x64.cpp b/src/video_core/shader/shader_jit_x64.cpp
index ddae61cae..c8a669b51 100644
--- a/src/video_core/shader/shader_jit_x64.cpp
+++ b/src/video_core/shader/shader_jit_x64.cpp
@@ -367,10 +367,10 @@ void JitCompiler::Compile_DPH(Instruction instr) {
// Set 4th component to 1.0
BLENDPS(SRC1, R(ONE), 0x8); // 0b1000
} else {
- // Reverse to set the 4th component to 1.0
- SHUFPS(SRC1, R(SRC1), _MM_SHUFFLE(0, 1, 2, 3));
- MOVSS(SRC1, R(ONE));
- SHUFPS(SRC1, R(SRC1), _MM_SHUFFLE(0, 1, 2, 3));
+ // Set 4th component to 1.0
+ MOVAPS(SCRATCH, R(SRC1));
+ UNPCKHPS(SCRATCH, R(ONE)); // XYZW, 1111 -> Z1__
+ UNPCKLPD(SRC1, R(SCRATCH)); // XYZW, Z1__ -> XYZ1
}
Compile_SanitizedMul(SRC1, SRC2, SCRATCH);