From c9a704fbde3a32bdcf341e764cdf0c26d68f9ec5 Mon Sep 17 00:00:00 2001 From: lioncash Date: Wed, 28 Sep 2022 13:40:03 +0000 Subject: [PATCH] Interpreter: Handle 256-bit VMov Now we'll properly handle the move. Also put an assert in place to catch any over-sized values. --- .../FEXCore/Source/Interface/Core/Interpreter/VectorOps.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/External/FEXCore/Source/Interface/Core/Interpreter/VectorOps.cpp b/External/FEXCore/Source/Interface/Core/Interpreter/VectorOps.cpp index 721b25ae3..fb91f4475 100644 --- a/External/FEXCore/Source/Interface/Core/Interpreter/VectorOps.cpp +++ b/External/FEXCore/Source/Interface/Core/Interpreter/VectorOps.cpp @@ -45,7 +45,10 @@ DEF_OP(VMov) { auto Op = IROp->C(); const uint8_t OpSize = IROp->Size; - const auto Src = *GetSrc<__uint128_t*>(Data->SSAData, Op->Source); + LOGMAN_THROW_AA_FMT(OpSize <= Core::CPUState::XMM_AVX_REG_SIZE, + "Moves larger than 256-bit aren't supported"); + + const auto Src = *GetSrc(Data->SSAData, Op->Source); memcpy(GDP, &Src, OpSize); }