diff --git a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index 940a0cfab..70bd2fb6c 100644 --- a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -6081,7 +6081,7 @@ void InstallOpcodeHandlers(Context::OperatingMode Mode) { {0x52, 1, &OpDispatchBuilder::VectorUnaryOp}, {0x53, 1, &OpDispatchBuilder::VectorUnaryOp}, {0x54, 1, &OpDispatchBuilder::VectorALUOp}, - {0x55, 1, &OpDispatchBuilder::ANDNOp}, + {0x55, 1, &OpDispatchBuilder::VectorALUROp}, {0x56, 1, &OpDispatchBuilder::VectorALUOp}, {0x57, 1, &OpDispatchBuilder::VectorALUOp}, {0x58, 1, &OpDispatchBuilder::VectorALUOp}, @@ -6127,7 +6127,7 @@ void InstallOpcodeHandlers(Context::OperatingMode Mode) { {0xDC, 1, &OpDispatchBuilder::PADDSOp<1, false>}, {0xDD, 1, &OpDispatchBuilder::PADDSOp<2, false>}, {0xDE, 1, &OpDispatchBuilder::VectorALUOp}, - {0xDF, 1, &OpDispatchBuilder::ANDNOp}, + {0xDF, 1, &OpDispatchBuilder::VectorALUROp}, {0xE0, 1, &OpDispatchBuilder::PAVGOp<1>}, {0xE1, 1, &OpDispatchBuilder::PSRAOp<2>}, {0xE2, 1, &OpDispatchBuilder::PSRAOp<4>}, @@ -6371,7 +6371,7 @@ void InstallOpcodeHandlers(Context::OperatingMode Mode) { {0x50, 1, &OpDispatchBuilder::MOVMSKOp<8>}, {0x51, 1, &OpDispatchBuilder::VectorUnaryOp}, {0x54, 1, &OpDispatchBuilder::VectorALUOp}, - {0x55, 1, &OpDispatchBuilder::ANDNOp}, + {0x55, 1, &OpDispatchBuilder::VectorALUROp}, {0x56, 1, &OpDispatchBuilder::VectorALUOp}, {0x57, 1, &OpDispatchBuilder::VectorALUOp}, {0x58, 1, &OpDispatchBuilder::VectorALUOp}, @@ -6428,7 +6428,7 @@ void InstallOpcodeHandlers(Context::OperatingMode Mode) { {0xDC, 1, &OpDispatchBuilder::VectorALUOp}, {0xDD, 1, &OpDispatchBuilder::VectorALUOp}, {0xDE, 1, &OpDispatchBuilder::VectorALUOp}, - {0xDF, 1, &OpDispatchBuilder::ANDNOp}, + {0xDF, 1, &OpDispatchBuilder::VectorALUROp}, {0xE0, 1, &OpDispatchBuilder::PAVGOp<1>}, {0xE1, 1, &OpDispatchBuilder::PSRAOp<2>}, {0xE2, 1, &OpDispatchBuilder::PSRAOp<4>}, diff --git a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.h b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.h index b7795ac1d..9a4c9adc5 100644 --- a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.h +++ b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.h @@ -378,7 +378,6 @@ public: void VFCMPOp(OpcodeArgs); template void SHUFOp(OpcodeArgs); - void ANDNOp(OpcodeArgs); template void PINSROp(OpcodeArgs); void InsertPSOp(OpcodeArgs); diff --git a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp index 1d12f1246..d11e062e5 100644 --- a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp +++ b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp @@ -443,6 +443,8 @@ void OpDispatchBuilder::VectorALUROp(OpcodeArgs) { StoreResult(FPRClass, Op, ALUOp, -1); } +template +void OpDispatchBuilder::VectorALUROp(OpcodeArgs); template void OpDispatchBuilder::VectorALUROp(OpcodeArgs); template @@ -772,17 +774,6 @@ void OpDispatchBuilder::SHUFOp<4>(OpcodeArgs); template void OpDispatchBuilder::SHUFOp<8>(OpcodeArgs); -void OpDispatchBuilder::ANDNOp(OpcodeArgs) { - auto Size = GetSrcSize(Op); - OrderedNode *Src1 = LoadSource(FPRClass, Op, Op->Dest, Op->Flags, -1); - OrderedNode *Src2 = LoadSource(FPRClass, Op, Op->Src[0], Op->Flags, -1); - // Dest = ~Src1 & Src2 - - auto Dest = _VBic(Size, Size, Src2, Src1); - - StoreResult(FPRClass, Op, Dest, -1); -} - void OpDispatchBuilder::VANDNOp(OpcodeArgs) { const auto Size = GetSrcSize(Op); const auto Is128Bit = Size == Core::CPUState::XMM_SSE_REG_SIZE;