< prev index next >

src/share/vm/opto/graphKit.cpp

Print this page
rev 12854 : [mq]: gcinterface.patch

*** 1526,1536 **** Node* val, const TypeOopPtr* val_type, Node* pre_val, BasicType bt) { ! BarrierSet* bs = Universe::heap()->barrier_set(); set_control(ctl); switch (bs->kind()) { case BarrierSet::G1SATBCTLogging: g1_write_barrier_pre(do_load, obj, adr, adr_idx, val, val_type, pre_val, bt); break; --- 1526,1536 ---- Node* val, const TypeOopPtr* val_type, Node* pre_val, BasicType bt) { ! BarrierSet* bs = GC::gc()->heap()->barrier_set(); set_control(ctl); switch (bs->kind()) { case BarrierSet::G1SATBCTLogging: g1_write_barrier_pre(do_load, obj, adr, adr_idx, val, val_type, pre_val, bt); break;
*** 1545,1555 **** } } bool GraphKit::can_move_pre_barrier() const { ! BarrierSet* bs = Universe::heap()->barrier_set(); switch (bs->kind()) { case BarrierSet::G1SATBCTLogging: return true; // Can move it if no safepoint case BarrierSet::CardTableForRS: --- 1545,1555 ---- } } bool GraphKit::can_move_pre_barrier() const { ! BarrierSet* bs = GC::gc()->heap()->barrier_set(); switch (bs->kind()) { case BarrierSet::G1SATBCTLogging: return true; // Can move it if no safepoint case BarrierSet::CardTableForRS:
*** 1569,1579 **** Node* adr, uint adr_idx, Node* val, BasicType bt, bool use_precise) { ! BarrierSet* bs = Universe::heap()->barrier_set(); set_control(ctl); switch (bs->kind()) { case BarrierSet::G1SATBCTLogging: g1_write_barrier_post(store, obj, adr, adr_idx, val, bt, use_precise); break; --- 1569,1579 ---- Node* adr, uint adr_idx, Node* val, BasicType bt, bool use_precise) { ! BarrierSet* bs = GC::gc()->heap()->barrier_set(); set_control(ctl); switch (bs->kind()) { case BarrierSet::G1SATBCTLogging: g1_write_barrier_post(store, obj, adr, adr_idx, val, bt, use_precise); break;
*** 3773,3783 **** } Node* GraphKit::byte_map_base_node() { // Get base of card map CardTableModRefBS* ct = ! barrier_set_cast<CardTableModRefBS>(Universe::heap()->barrier_set()); assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust users of this code"); if (ct->byte_map_base != NULL) { return makecon(TypeRawPtr::make((address)ct->byte_map_base)); } else { return null(); --- 3773,3783 ---- } Node* GraphKit::byte_map_base_node() { // Get base of card map CardTableModRefBS* ct = ! barrier_set_cast<CardTableModRefBS>(GC::gc()->heap()->barrier_set()); assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust users of this code"); if (ct->byte_map_base != NULL) { return makecon(TypeRawPtr::make((address)ct->byte_map_base)); } else { return null();
*** 3826,3836 **** // Convert the pointer to an int prior to doing math on it Node* cast = __ CastPX(__ ctrl(), adr); // Divide by card size ! assert(Universe::heap()->barrier_set()->is_a(BarrierSet::CardTableModRef), "Only one we handle so far."); Node* card_offset = __ URShiftX( cast, __ ConI(CardTableModRefBS::card_shift) ); // Combine card table base and card offset Node* card_adr = __ AddP(__ top(), byte_map_base_node(), card_offset ); --- 3826,3836 ---- // Convert the pointer to an int prior to doing math on it Node* cast = __ CastPX(__ ctrl(), adr); // Divide by card size ! assert(GC::gc()->heap()->barrier_set()->is_a(BarrierSet::CardTableModRef), "Only one we handle so far."); Node* card_offset = __ URShiftX( cast, __ ConI(CardTableModRefBS::card_shift) ); // Combine card table base and card offset Node* card_adr = __ AddP(__ top(), byte_map_base_node(), card_offset );
< prev index next >