< prev index next >
src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp
Print this page
@@ -133,12 +133,12 @@
// Final sync IdealKit and GraphKit.
kit->final_sync(ideal);
}
-void CardTableBarrierSetC2::clone(GraphKit* kit, Node* src, Node* dst, Node* size, bool is_array) const {
- BarrierSetC2::clone(kit, src, dst, size, is_array);
+void CardTableBarrierSetC2::clone(GraphKit* kit, Node* src_base, Node* dst_base, Node* countx, bool is_array) const {
+ BarrierSetC2::clone(kit, src_base, dst_base, countx, is_array);
const TypePtr* raw_adr_type = TypeRawPtr::BOTTOM;
// If necessary, emit some card marks afterwards. (Non-arrays only.)
bool card_mark = !is_array && !use_ReduceInitialCardMarks();
if (card_mark) {
@@ -147,10 +147,13 @@
// into this object. (We could avoid this if we could prove
// that the object type contains no oop fields at all.)
Node* no_particular_value = NULL;
Node* no_particular_field = NULL;
int raw_adr_idx = Compile::AliasIdxRaw;
+ intptr_t unused_offset;
+ Node* dst = AddPNode::Ideal_base_and_offset(dst_base, &kit->gvn(), unused_offset);
+ assert(dst != NULL, "dst_base not an Addp");
post_barrier(kit, kit->control(),
kit->memory(raw_adr_type),
dst,
no_particular_field,
raw_adr_idx,
< prev index next >