From 716a2fa5fa0a12c599994365f98a6d24e8d7c3f1 Mon Sep 17 00:00:00 2001 From: Merry Date: Fri, 20 Jan 2023 23:42:38 +0000 Subject: [PATCH] emit_x64_vector: zext TBL (3) --- src/dynarmic/backend/x64/emit_x64_vector.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dynarmic/backend/x64/emit_x64_vector.cpp b/src/dynarmic/backend/x64/emit_x64_vector.cpp index fc00aeb4..3e99c2fb 100644 --- a/src/dynarmic/backend/x64/emit_x64_vector.cpp +++ b/src/dynarmic/backend/x64/emit_x64_vector.cpp @@ -4679,7 +4679,11 @@ void EmitX64::EmitVectorTableLookup64(EmitContext& ctx, IR::Inst* inst) { code.punpcklqdq(xmm_table0, xmm_table0_upper); ctx.reg_alloc.Release(xmm_table0_upper); } - if (table_size == 4) { + if (table_size == 3) { + code.pxor(xmm0, xmm0); + code.punpcklqdq(xmm_table1, xmm0); + } else { + ASSERT(table_size == 4); const Xbyak::Xmm xmm_table1_upper = ctx.reg_alloc.UseXmm(table[3]); code.punpcklqdq(xmm_table1, xmm_table1_upper); ctx.reg_alloc.Release(xmm_table1_upper);