Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 88db627

Browse files
echesakovRussKeldorph
authored andcommitted
Update g_highest_address and g_lowest_address in StompWriteBarrier(WriteBarrierOp::StompResize) on ARM (#18107)
1 parent 0ea5fc4 commit 88db627

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/vm/gcenv.ee.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -879,11 +879,18 @@ void GCToEEInterface::StompWriteBarrier(WriteBarrierParameters* args)
879879
g_lowest_address = args->lowest_address;
880880
VolatileStore(&g_highest_address, args->highest_address);
881881

882-
#if defined(_ARM64_)
882+
#if defined(_ARM64_) || defined(_ARM_)
883883
// Need to reupdate for changes to g_highest_address g_lowest_address
884884
is_runtime_suspended = (stompWBCompleteActions & SWB_EE_RESTART) || args->is_runtime_suspended;
885885
stompWBCompleteActions |= ::StompWriteBarrierResize(is_runtime_suspended, args->requires_upper_bounds_check);
886886

887+
#ifdef _ARM_
888+
if (stompWBCompleteActions & SWB_ICACHE_FLUSH)
889+
{
890+
::FlushWriteBarrierInstructionCache();
891+
}
892+
#endif
893+
887894
is_runtime_suspended = (stompWBCompleteActions & SWB_EE_RESTART) || args->is_runtime_suspended;
888895
if(!is_runtime_suspended)
889896
{

0 commit comments

Comments
 (0)