< prev index next >

src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp

Print this page

        

*** 133,144 **** // 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); 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) { --- 133,144 ---- // Final sync IdealKit and GraphKit. kit->final_sync(ideal); } ! 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,156 **** --- 147,159 ---- // 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 >