< prev index next >

src/share/vm/opto/graphKit.cpp

Print this page
rev 14282 : Factor out keep-alive barrier from usual pre-barrier implementations.

*** 1629,1638 **** --- 1629,1675 ---- ShouldNotReachHere(); } } + void GraphKit::keep_alive_barrier(Node* ctl, Node* obj) { + BarrierSet* bs = Universe::heap()->barrier_set(); + switch (bs->kind()) { + case BarrierSet::G1SATBCTLogging: + pre_barrier(false /* do_load */, + ctl, + NULL /* obj */, + NULL /* adr */, + max_juint /* alias_idx */, + NULL /* val */, + NULL /* val_type */, + obj /* pre_val */, + T_OBJECT); + break; + case BarrierSet::ShenandoahBarrierSet: + if (ShenandoahKeepAliveBarrier) { + pre_barrier(false /* do_load */, + ctl, + NULL /* obj */, + NULL /* adr */, + max_juint /* alias_idx */, + NULL /* val */, + NULL /* val_type */, + obj /* pre_val */, + T_OBJECT); + } + break; + case BarrierSet::CardTableForRS: + case BarrierSet::CardTableExtension: + case BarrierSet::ModRef: + break; + default : + ShouldNotReachHere(); + + } + } + Node* GraphKit::store_oop(Node* ctl, Node* obj, Node* adr, const TypePtr* adr_type, Node* val,
< prev index next >