diff options
author | Egor Chesakov <Egor.Chesakov@microsoft.com> | 2018-05-24 06:08:26 -0700 |
---|---|---|
committer | Russ Keldorph <russ.keldorph@microsoft.com> | 2018-05-31 15:25:05 -0700 |
commit | 88db627a97d91acce0638ed195072080089b9ff1 (patch) | |
tree | dcc4145052df1ea2b069b6fde9c404fbb8a378e6 /src/vm | |
parent | 0ea5fc4456a859a1009b05d0949d3d878b383e9d (diff) | |
download | coreclr-88db627a97d91acce0638ed195072080089b9ff1.tar.gz coreclr-88db627a97d91acce0638ed195072080089b9ff1.tar.bz2 coreclr-88db627a97d91acce0638ed195072080089b9ff1.zip |
Update g_highest_address and g_lowest_address in StompWriteBarrier(WriteBarrierOp::StompResize) on ARM (#18107)
Diffstat (limited to 'src/vm')
-rw-r--r-- | src/vm/gcenv.ee.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vm/gcenv.ee.cpp b/src/vm/gcenv.ee.cpp index 5954b7b00c..4fb8dec638 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) { |