From 9e6214d67de76a77916af207f06effc1e617825c Mon Sep 17 00:00:00 2001 From: Bruce Forstall Date: Thu, 17 Dec 2020 16:42:21 -0800 Subject: [PATCH] [release/5.0] Add variable lifetime update for GT_STOREIND for arm/arm64 Port #46059 to release/5.0 Fix #45557 for arm/arm64 Fixes #46023 --- src/coreclr/src/jit/codegenarm.cpp | 3 +++ src/coreclr/src/jit/codegenarm64.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/coreclr/src/jit/codegenarm.cpp b/src/coreclr/src/jit/codegenarm.cpp index 2eaa80862396dd..36d7b3c7dd3fbe 100644 --- a/src/coreclr/src/jit/codegenarm.cpp +++ b/src/coreclr/src/jit/codegenarm.cpp @@ -1345,6 +1345,9 @@ void CodeGen::genCodeForStoreInd(GenTreeStoreInd* tree) } GetEmitter()->emitInsLoadStoreOp(ins_Store(type), emitActualTypeSize(type), data->GetRegNum(), tree); + + // If store was to a variable, update variable liveness after instruction was emitted. + genUpdateLife(tree); } } diff --git a/src/coreclr/src/jit/codegenarm64.cpp b/src/coreclr/src/jit/codegenarm64.cpp index a9dbcef15ec5d4..004cdde3f1a4db 100644 --- a/src/coreclr/src/jit/codegenarm64.cpp +++ b/src/coreclr/src/jit/codegenarm64.cpp @@ -3233,6 +3233,9 @@ void CodeGen::genCodeForStoreInd(GenTreeStoreInd* tree) } GetEmitter()->emitInsLoadStoreOp(ins, emitActualTypeSize(type), dataReg, tree); + + // If store was to a variable, update variable liveness after instruction was emitted. + genUpdateLife(tree); } }