From 5cb9f9e0fa09c9d89b11cae063be1727443a971c Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Thu, 12 Mar 2020 18:20:12 -0700 Subject: [PATCH] Removes undefined behaviour in the VUSHR in interpreter --- .../Source/Interface/Core/Interpreter/InterpreterCore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/External/FEXCore/Source/Interface/Core/Interpreter/InterpreterCore.cpp b/External/FEXCore/Source/Interface/Core/Interpreter/InterpreterCore.cpp index 275720287..967dad22f 100644 --- a/External/FEXCore/Source/Interface/Core/Interpreter/InterpreterCore.cpp +++ b/External/FEXCore/Source/Interface/Core/Interpreter/InterpreterCore.cpp @@ -2694,7 +2694,7 @@ void InterpreterCore::ExecuteCode(FEXCore::Core::InternalThreadState *Thread) { uint8_t Tmp[16]; uint8_t Elements = Op->RegisterSize / Op->ElementSize; - auto Func = [](auto a, auto b) { return a >> b; }; + auto Func = [](auto a, auto b) { return b >= (sizeof(a) * 8) ? 0 : a >> b; }; switch (Op->ElementSize) { DO_VECTOR_OP(1, uint8_t, Func)