diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index 161130db7..7dce4c328 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -4671,7 +4671,7 @@ void OpDispatchBuilder::CMPXCHGPairOp(OpcodeArgs) { // This will write to memory! Careful! // Third operand must be a calculated guest memory address - OrderedNode *CASResult = _CASPair(Expected, Desired, Src1); + OrderedNode *CASResult = _CASPair(IR::SizeToOpSize(Size * 2), Expected, Desired, Src1); OrderedNode *Result_Lower = _ExtractElementPair(CASResult, 0); OrderedNode *Result_Upper = _ExtractElementPair(CASResult, 1); diff --git a/FEXCore/include/FEXCore/IR/IREmitter.h b/FEXCore/include/FEXCore/IR/IREmitter.h index 15c3e53cb..d24f8807a 100644 --- a/FEXCore/include/FEXCore/IR/IREmitter.h +++ b/FEXCore/include/FEXCore/IR/IREmitter.h @@ -112,9 +112,6 @@ friend class FEXCore::IR::PassManager; IRPair _CAS(OrderedNode *_Expected, OrderedNode *_Desired, OrderedNode *_Addr) { return _CAS(static_cast(GetOpSize(_Expected)), _Expected, _Desired, _Addr); } - IRPair _CASPair(OrderedNode *_Expected, OrderedNode *_Desired, OrderedNode *_Addr) { - return _CASPair(static_cast(GetOpSize(_Expected)), _Expected, _Desired, _Addr); - } ///< ALU IRPair _Add(OrderedNode *_Src1, OrderedNode *_Src2) { return _Add(static_cast(std::max(4, std::max(GetOpSize(_Src1), GetOpSize(_Src2)))), _Src1, _Src2);