I'm asking my question again because in the previous one
mistakenly VM_Compiler for VM_Assembler. Here it
If I understand you right, inorder to write
atomically write-barrier that
will fit concurrent garbage collectors as well
as stop-the-world ones (in *JAVA*)
the calls to the VM_WriteBarrier can be issued from VM_Compiler and
from an auxiliary class as VM_Barriers. If the calls will be
directly from VM_Compiler there won't be any context switching in
middle of an update (as the yield points can appear only at
prologue/epilogue and there's no back-edge in the write barrier
Am I right?
Why the non-concurrent calls to VM_WriteBarrier methods via
are not atomically performed?
Is it because yield points can be pushed between the two calls?
(i.e., between the calls to: VM_Barriers.compilerArrayStoreBarrier