diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index 56235a924..26684cf4d 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -537,13 +537,7 @@ void OpDispatchBuilder::POPSegmentOp(OpcodeArgs) { const uint8_t SrcSize = GetSrcSize(Op); const uint8_t DstSize = GetDstSize(Op); - auto Constant = _Constant(SrcSize); - auto OldSP = LoadGPRRegister(X86State::REG_RSP); - auto NewSegment = _LoadMem(GPRClass, SrcSize, OldSP, SrcSize); - auto NewSP = _Add(OpSize::i64Bit, OldSP, Constant); - - // Store the new stack pointer - StoreGPRRegister(X86State::REG_RSP, NewSP); + auto NewSegment = Pop(SrcSize); switch (SegmentReg) { case FEXCore::X86Tables::DecodeFlags::FLAG_ES_PREFIX: