diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index caa497509..4d4e437a5 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -1578,12 +1578,12 @@ void OpDispatchBuilder::SHLDOp(OpcodeArgs) { } void OpDispatchBuilder::SHLDImmediateOp(OpcodeArgs) { - OrderedNode* Src = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags); - OrderedNode* Dest = LoadSource(GPRClass, Op, Op->Dest, Op->Flags); - uint64_t Shift = LoadConstantShift(Op, false); const auto Size = GetSrcBitSize(Op); + OrderedNode* Src = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags, {.AllowUpperGarbage = Size >= 32}); + OrderedNode* Dest = LoadSource(GPRClass, Op, Op->Dest, Op->Flags, {.AllowUpperGarbage = Size >= 32}); + if (Shift != 0) { OrderedNode* Res {}; if (Size < 32) {