< prev index next >
src/share/vm/opto/graphKit.cpp
Print this page
*** 3787,3796 ****
--- 3787,3799 ----
// Get the alias_index for raw card-mark memory
int adr_type = Compile::AliasIdxRaw;
Node* zero = __ ConI(0); // Dirty card value
BasicType bt = T_BYTE;
+ insert_mem_bar(Op_MemBarVolatile); // StoreLoad barrier
+ __ sync_kit(this);
+
if (UseCondCardMark) {
// The classic GC reference write barrier is typically implemented
// as a store into the global card mark table. Unfortunately
// unconditional stores can result in false sharing and excessive
// coherence traffic as well as false transactional aborts.
< prev index next >