diff -r 580bb0b85f63 -r 7e958a8ebcd3 src/hotspot/cpu/x86/stubGenerator_x86_64.cpp --- a/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Mon Feb 26 09:34:20 2018 +0100 +++ b/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Mon Feb 26 09:34:12 2018 +0100 @@ -25,6 +25,9 @@ #include "precompiled.hpp" #include "asm/macroAssembler.hpp" #include "asm/macroAssembler.inline.hpp" +#include "ci/ciUtilities.hpp" +#include "gc/shared/cardTable.hpp" +#include "gc/shared/cardTableModRefBS.hpp" #include "interpreter/interpreter.hpp" #include "nativeInst_x86.hpp" #include "oops/instanceOop.hpp" @@ -1232,9 +1235,7 @@ __ bind(filtered); } break; - case BarrierSet::CardTableForRS: - case BarrierSet::CardTableExtension: - case BarrierSet::ModRef: + case BarrierSet::CardTableModRef: break; default: ShouldNotReachHere(); @@ -1272,12 +1273,8 @@ __ popa(); } break; - case BarrierSet::CardTableForRS: - case BarrierSet::CardTableExtension: + case BarrierSet::CardTableModRef: { - CardTableModRefBS* ct = barrier_set_cast(bs); - assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code"); - Label L_loop, L_done; const Register end = count; @@ -1286,11 +1283,11 @@ __ leaq(end, Address(start, count, TIMES_OOP, 0)); // end == start+count*oop_size __ subptr(end, BytesPerHeapOop); // end - 1 to make inclusive - __ shrptr(start, CardTableModRefBS::card_shift); - __ shrptr(end, CardTableModRefBS::card_shift); + __ shrptr(start, CardTable::card_shift); + __ shrptr(end, CardTable::card_shift); __ subptr(end, start); // end --> cards count - int64_t disp = (int64_t) ct->byte_map_base; + int64_t disp = ci_card_table_address_as(); __ mov64(scratch, disp); __ addptr(start, scratch); __ BIND(L_loop);