diff -r be620a591379 -r 8e22715afabc src/hotspot/cpu/x86/c1_Runtime1_x86.cpp --- a/src/hotspot/cpu/x86/c1_Runtime1_x86.cpp Mon Oct 30 21:23:10 2017 +0100 +++ b/src/hotspot/cpu/x86/c1_Runtime1_x86.cpp Mon Nov 06 18:53:38 2017 +0100 @@ -1675,16 +1675,23 @@ case g1_post_barrier_slow_id: { + BarrierSet* bs = Universe::heap()->barrier_set(); + if (bs->kind() != BarrierSet::G1SATBCT && + bs->kind() != BarrierSet::G1SATBCTLogging) { + __ movptr(rax, (int)id); + __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), rax); + __ should_not_reach_here(); + break; + } + + CardTableModRefBS* ct = barrier_set_cast(bs); + assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code"); + StubFrame f(sasm, "g1_post_barrier", dont_gc_arguments); - // arg0: store_address Address store_addr(rbp, 2*BytesPerWord); - CardTableModRefBS* ct = - barrier_set_cast(Universe::heap()->barrier_set()); - assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code"); - Label done; Label enqueued; Label runtime;