From 610caf85299fefb35e349e5e1aa05fcaebb68cc3 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 21 Jul 2024 09:58:13 -0400 Subject: [PATCH] ConstProp: treat StoreContext as zeroable todo: FPR equivalent. Signed-off-by: Alyssa Rosenzweig --- FEXCore/Source/Interface/Core/JIT/Arm64/MemoryOps.cpp | 2 +- FEXCore/Source/Interface/IR/Passes/ConstProp.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/FEXCore/Source/Interface/Core/JIT/Arm64/MemoryOps.cpp b/FEXCore/Source/Interface/Core/JIT/Arm64/MemoryOps.cpp index c8aedee82..afc9c68cf 100644 --- a/FEXCore/Source/Interface/Core/JIT/Arm64/MemoryOps.cpp +++ b/FEXCore/Source/Interface/Core/JIT/Arm64/MemoryOps.cpp @@ -52,7 +52,7 @@ DEF_OP(StoreContext) { const auto OpSize = IROp->Size; if (Op->Class == FEXCore::IR::GPRClass) { - auto Src = GetReg(Op->Value.ID()); + auto Src = GetZeroableReg(Op->Value); switch (OpSize) { case 1: strb(Src, STATE, Op->Offset); break; diff --git a/FEXCore/Source/Interface/IR/Passes/ConstProp.cpp b/FEXCore/Source/Interface/IR/Passes/ConstProp.cpp index 1a31a53a3..b34e2ce48 100644 --- a/FEXCore/Source/Interface/IR/Passes/ConstProp.cpp +++ b/FEXCore/Source/Interface/IR/Passes/ConstProp.cpp @@ -629,7 +629,8 @@ void ConstProp::ConstantInlining(IREmitter* IREmit, const IRListView& CurrentIR) break; } case OP_ADC: - case OP_ADCWITHFLAGS: { + case OP_ADCWITHFLAGS: + case OP_STORECONTEXT: { uint64_t Constant1 {}; if (IREmit->IsValueConstant(IROp->Args[0], &Constant1)) { if (Constant1 == 0) {