From f0c47e036b14aa9761a0e5671bf883c47b0acbfe Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Tue, 9 Jun 2015 17:42:09 -0700 Subject: [PATCH] Fixing SHR_V128. --- src/xenia/cpu/backend/x64/x64_sequences.cc | 2 +- src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj | 1 + src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj.filters | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/xenia/cpu/backend/x64/x64_sequences.cc b/src/xenia/cpu/backend/x64/x64_sequences.cc index 489af879d..5ee8bed75 100644 --- a/src/xenia/cpu/backend/x64/x64_sequences.cc +++ b/src/xenia/cpu/backend/x64/x64_sequences.cc @@ -4568,11 +4568,11 @@ EMITTER(SHR_V128, MATCH(I, V128<>, I8<>>)) { uint8_t shamt = src2 & 0x7; alignas(16) vec128_t value; _mm_store_si128(reinterpret_cast<__m128i*>(&value), src1); - value.u8[0 ^ 0x3] = value.u8[0 ^ 0x3] >> shamt; for (int i = 15; i > 0; --i) { value.u8[i ^ 0x3] = (value.u8[i ^ 0x3] >> shamt) | (value.u8[(i - 1) ^ 0x3] << (8 - shamt)); } + value.u8[0 ^ 0x3] = value.u8[0 ^ 0x3] >> shamt; return _mm_load_si128(reinterpret_cast<__m128i*>(&value)); } }; diff --git a/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj b/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj index 1a1780da8..5a4592dd9 100644 --- a/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj +++ b/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj @@ -227,6 +227,7 @@ + diff --git a/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj.filters b/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj.filters index 2f45cb82e..efb4c8f88 100644 --- a/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj.filters +++ b/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj.filters @@ -120,6 +120,7 @@ +