diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.h b/FEXCore/Source/Interface/Core/OpcodeDispatcher.h index d00547ec5..ae64b91be 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.h +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.h @@ -1224,7 +1224,7 @@ private: Ref PMULHWOpImpl(OpcodeArgs, bool Signed, Ref Src1, Ref Src2); - Ref PMULLOpImpl(OpcodeArgs, size_t ElementSize, bool Signed, Ref Src1, Ref Src2); + Ref PMULLOpImpl(OpSize Size, size_t ElementSize, bool Signed, Ref Src1, Ref Src2); Ref PSADBWOpImpl(size_t Size, Ref Src1, Ref Src2); diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp index fbe42178c..e7cd66c9e 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp @@ -3031,10 +3031,8 @@ void OpDispatchBuilder::VPACKSSOp(OpcodeArgs) { template void OpDispatchBuilder::VPACKSSOp<2>(OpcodeArgs); template void OpDispatchBuilder::VPACKSSOp<4>(OpcodeArgs); -Ref OpDispatchBuilder::PMULLOpImpl(OpcodeArgs, size_t ElementSize, bool Signed, Ref Src1, Ref Src2) { - const auto Size = GetSrcSize(Op); - - if (Size == 8) { +Ref OpDispatchBuilder::PMULLOpImpl(OpSize Size, size_t ElementSize, bool Signed, Ref Src1, Ref Src2) { + if (Size == OpSize::i64Bit) { if (Signed) { return _VSMull(16, ElementSize, Src1, Src2); } else { @@ -3058,7 +3056,7 @@ void OpDispatchBuilder::PMULLOp(OpcodeArgs) { Ref Src1 = LoadSource(FPRClass, Op, Op->Dest, Op->Flags); Ref Src2 = LoadSource(FPRClass, Op, Op->Src[0], Op->Flags); - Ref Res = PMULLOpImpl(Op, ElementSize, Signed, Src1, Src2); + Ref Res = PMULLOpImpl(OpSizeFromSrc(Op), ElementSize, Signed, Src1, Src2); StoreResult(FPRClass, Op, Res, -1); } @@ -3072,7 +3070,7 @@ void OpDispatchBuilder::VPMULLOp(OpcodeArgs) { Ref Src1 = LoadSource(FPRClass, Op, Op->Src[0], Op->Flags); Ref Src2 = LoadSource(FPRClass, Op, Op->Src[1], Op->Flags); - Ref Result = PMULLOpImpl(Op, ElementSize, Signed, Src1, Src2); + Ref Result = PMULLOpImpl(OpSizeFromSrc(Op), ElementSize, Signed, Src1, Src2); StoreResult(FPRClass, Op, Result, -1); }