From 5f484eadf86b547d5233260c576ba729863591b7 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 16 Jul 2021 09:07:11 -0700 Subject: [PATCH] Fixed `sVal++` global post-increment value --- IDEHelper/Backend/BeMCContext.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/IDEHelper/Backend/BeMCContext.cpp b/IDEHelper/Backend/BeMCContext.cpp index e86fa518..0e9c82ed 100644 --- a/IDEHelper/Backend/BeMCContext.cpp +++ b/IDEHelper/Backend/BeMCContext.cpp @@ -7667,13 +7667,18 @@ void BeMCContext::DoInstCombinePass() continue; } } - else if ((mcAddr.mKind == BeMCOperandKind_Symbol) || (mcAddr.mKind == BeMCOperandKind_SymbolAddr)) + else if (mcAddr.mKind == BeMCOperandKind_SymbolAddr) { // No actual load needed - just keep it as a Direct reference inst->mKind = BeMCInstKind_Def; //wantUnwrapVRegs.Add(inst->mArg0.mVRegIdx); continue; } + else if (mcAddr.mKind == BeMCOperandKind_Symbol) + { + //TODO: We used to have this as a 'inst->mKind = BeMCInstKind_Def;' case also, but that messed up post-increment (ie: gVal++) values + continue; + } bool hadPointerDeref = false; for (int checkInstIdx = instIdx + 1; checkInstIdx < (int)mcBlock->mInstructions.size(); checkInstIdx++) @@ -15848,7 +15853,7 @@ void BeMCContext::Generate(BeFunction* function) mDbgPreferredRegs[32] = X64Reg_R8;*/ //mDbgPreferredRegs[8] = X64Reg_RAX; - //mDebugging = (function->mName == "?TestBug@TestProgram@BeefTest@bf@@SAXXZ"); + //mDebugging = (function->mName == "?GetVal@TestProgram@BeefTest@bf@@CATint@@XZ"); // || (function->mName == "?MethodA@TestProgram@BeefTest@bf@@CAXXZ"); // || (function->mName == "?Hey@Blurg@bf@@SAXXZ") // ;