From a7dada457a7b85b0451c2e636e5c791b60a3e5cb Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 14 Aug 2024 09:19:20 -0400 Subject: [PATCH] OpcodeDispatcher: optimize POPF Signed-off-by: Alyssa Rosenzweig --- FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index 7c63d55a0..4806f58b1 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -3621,14 +3621,7 @@ void OpDispatchBuilder::PUSHFOp(OpcodeArgs) { void OpDispatchBuilder::POPFOp(OpcodeArgs) { const uint8_t Size = GetSrcSize(Op); - - auto Constant = _Constant(Size); - auto OldSP = LoadGPRRegister(X86State::REG_RSP); - Ref Src = _LoadMem(GPRClass, Size, OldSP, Size); - auto NewSP = _Add(OpSize::i64Bit, OldSP, Constant); - - // Store the new stack pointer - StoreGPRRegister(X86State::REG_RSP, NewSP); + Ref Src = Pop(Size); // Add back our flag constants // Bit 1 is always 1