< prev index next >
src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp
Print this page
*** 103,113 ****
int adr_type = Compile::AliasIdxRaw;
Node* zero = __ ConI(0); // Dirty card value
if (UseCondCardMark) {
if (ct->scanned_concurrently()) {
! kit->insert_store_load_for_barrier();
__ sync_kit(kit);
}
// 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
--- 103,113 ----
int adr_type = Compile::AliasIdxRaw;
Node* zero = __ ConI(0); // Dirty card value
if (UseCondCardMark) {
if (ct->scanned_concurrently()) {
! kit->insert_mem_bar(Op_MemBarVolatile, oop_store);
__ sync_kit(kit);
}
// 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
< prev index next >