--- a/hotspot/src/share/vm/opto/graphKit.cpp Thu Sep 10 18:18:06 2009 -0700
+++ b/hotspot/src/share/vm/opto/graphKit.cpp Mon Sep 14 09:49:54 2009 -0700
@@ -1450,7 +1450,7 @@
case BarrierSet::CardTableModRef:
case BarrierSet::CardTableExtension:
- write_barrier_post(store, obj, adr, val, use_precise);
+ write_barrier_post(store, obj, adr, adr_idx, val, use_precise);
break;
case BarrierSet::ModRef:
@@ -3165,6 +3165,7 @@
void GraphKit::write_barrier_post(Node* oop_store,
Node* obj,
Node* adr,
+ uint adr_idx,
Node* val,
bool use_precise) {
// No store check needed if we're storing a NULL or an old object
@@ -3214,7 +3215,7 @@
__ store(__ ctrl(), card_adr, zero, bt, adr_type);
} else {
// Specialized path for CM store barrier
- __ storeCM(__ ctrl(), card_adr, zero, oop_store, bt, adr_type);
+ __ storeCM(__ ctrl(), card_adr, zero, oop_store, adr_idx, bt, adr_type);
}
// Final sync IdealKit and GraphKit.
@@ -3314,6 +3315,7 @@
void GraphKit::g1_mark_card(IdealKit& ideal,
Node* card_adr,
Node* oop_store,
+ uint oop_alias_idx,
Node* index,
Node* index_adr,
Node* buffer,
@@ -3323,7 +3325,7 @@
Node* no_base = __ top();
BasicType card_bt = T_BYTE;
// Smash zero into card. MUST BE ORDERED WRT TO STORE
- __ storeCM(__ ctrl(), card_adr, zero, oop_store, card_bt, Compile::AliasIdxRaw);
+ __ storeCM(__ ctrl(), card_adr, zero, oop_store, oop_alias_idx, card_bt, Compile::AliasIdxRaw);
// Now do the queue work
__ if_then(index, BoolTest::ne, zero); {
@@ -3435,13 +3437,13 @@
Node* card_val = __ load(__ ctrl(), card_adr, TypeInt::INT, T_BYTE, Compile::AliasIdxRaw);
__ if_then(card_val, BoolTest::ne, zero); {
- g1_mark_card(ideal, card_adr, oop_store, index, index_adr, buffer, tf);
+ g1_mark_card(ideal, card_adr, oop_store, alias_idx, index, index_adr, buffer, tf);
} __ end_if();
} __ end_if();
} __ end_if();
} else {
// Object.clone() instrinsic uses this path.
- g1_mark_card(ideal, card_adr, oop_store, index, index_adr, buffer, tf);
+ g1_mark_card(ideal, card_adr, oop_store, alias_idx, index, index_adr, buffer, tf);
}
// Final sync IdealKit and GraphKit.