MCPcopy Create free account
hub / github.com/FEX-Emu/FEX / NEGOp

Method NEGOp

FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp:3614–3630  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3612}
3613
3614void OpDispatchBuilder::NEGOp(OpcodeArgs) {
3615 HandledLock = (Op->Flags & FEXCore::X86Tables::DecodeFlags::FLAG_LOCK) != 0;
3616
3617 const auto Size = OpSizeFromSrc(Op);
3618 auto ZeroConst = Constant(0);
3619
3620 if (DestIsLockedMem(Op)) {
3621 Ref DestMem = MakeSegmentAddress(Op, Op->Dest);
3622 Ref Dest = _AtomicFetchNeg(Size, DestMem);
3623 CalculateFlags_SUB(Size, ZeroConst, Dest);
3624 } else {
3625 Ref Dest = LoadSource(GPRClass, Op, Op->Dest, Op->Flags, {.AllowUpperGarbage = true});
3626 Ref Result = CalculateFlags_SUB(Size, ZeroConst, Dest);
3627
3628 StoreResult(GPRClass, Op, Result, OpSize::iInvalid);
3629 }
3630}
3631
3632void OpDispatchBuilder::DIVOp(OpcodeArgs) {
3633 const auto GPRSize = GetGPROpSize();

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected