diff --git a/Source/Interface/Core/OpcodeDispatcher.cpp b/Source/Interface/Core/OpcodeDispatcher.cpp index 2312cd8cf..2c9e6a31d 100644 --- a/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/Source/Interface/Core/OpcodeDispatcher.cpp @@ -1124,6 +1124,10 @@ void OpDispatchBuilder::SHROp(OpcodeArgs) { else Src = _And(Src, _Constant(0x1F)); + if (Size != 64) { + Dest = _Bfe(Size, 0, Dest); + } + auto ALUOp = _Lshr(Dest, Src); StoreResult(Op, ALUOp, -1);