From 08beb290dce1e7d5f29897538d201b7ebd345a3a Mon Sep 17 00:00:00 2001 From: Egor Chesakov Date: Thu, 24 May 2018 06:08:26 -0700 Subject: [PATCH] Update g_highest_address and g_lowest_address in StompWriteBarrier(WriteBarrierOp::StompResize) on ARM (#18107) --- src/vm/gcenv.ee.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/vm/gcenv.ee.cpp b/src/vm/gcenv.ee.cpp index 5954b7b..4fb8dec 100644 --- a/src/vm/gcenv.ee.cpp +++ b/src/vm/gcenv.ee.cpp @@ -879,11 +879,18 @@ void GCToEEInterface::StompWriteBarrier(WriteBarrierParameters* args) g_lowest_address = args->lowest_address; VolatileStore(&g_highest_address, args->highest_address); -#if defined(_ARM64_) +#if defined(_ARM64_) || defined(_ARM_) // Need to reupdate for changes to g_highest_address g_lowest_address is_runtime_suspended = (stompWBCompleteActions & SWB_EE_RESTART) || args->is_runtime_suspended; stompWBCompleteActions |= ::StompWriteBarrierResize(is_runtime_suspended, args->requires_upper_bounds_check); +#ifdef _ARM_ + if (stompWBCompleteActions & SWB_ICACHE_FLUSH) + { + ::FlushWriteBarrierInstructionCache(); + } +#endif + is_runtime_suspended = (stompWBCompleteActions & SWB_EE_RESTART) || args->is_runtime_suspended; if(!is_runtime_suspended) { -- 2.7.4