diff --git a/src/hotspot/share/compiler/disassembler.cpp b/src/hotspot/share/compiler/disassembler.cpp index c79c15e0f32..c0353366090 100644 --- a/src/hotspot/share/compiler/disassembler.cpp +++ b/src/hotspot/share/compiler/disassembler.cpp @@ -607,10 +607,21 @@ void decode_env::print_address(address adr) { return; } + address card_table_base = nullptr; BarrierSet* bs = BarrierSet::barrier_set(); - if (bs->is_a(BarrierSet::CardTableBarrierSet) && - adr == ci_card_table_address_as
()) { - st->print("word_map_base"); + if (bs->is_a(BarrierSet::G1BarrierSet)) { + G1BarrierSet* g1bs = barrier_set_cast(bs); + card_table_base = g1bs->card_table()->byte_map_base(); +#if INCLUDE_SHENANDOAHGC + } else if (bs->is_a(BarrierSet::ShenandoahBarrierSet)) { + ShenandoahBarrierSet* sbs = barrier_set_cast(bs); + card_table_base = sbs->card_table()->byte_map_base(); +#endif + } else if (bs->is_a(BarrierSet::CardTableBarrierSet)) { + card_table_base = ci_card_table_address_as
(); + } + if (card_table_base != nullptr && adr == card_table_base) { + st->print("card_table_base"); if (WizardMode) st->print(" " INTPTR_FORMAT, p2i(adr)); return; } diff --git a/src/hotspot/share/gc/g1/g1ThreadLocalData.hpp b/src/hotspot/share/gc/g1/g1ThreadLocalData.hpp index 07c8c569504..f83d503da17 100644 --- a/src/hotspot/share/gc/g1/g1ThreadLocalData.hpp +++ b/src/hotspot/share/gc/g1/g1ThreadLocalData.hpp @@ -99,11 +99,9 @@ public: data(thread)->_byte_map_base = new_byte_map_base; } -#ifndef PRODUCT static G1CardTable::CardValue* get_byte_map_base(Thread* thread) { return data(thread)->_byte_map_base; } -#endif static G1RegionPinCache& pin_count_cache(Thread* thread) { return data(thread)->_pin_cache; diff --git a/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp b/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp index 801a9bf8eb4..9dd0ddc2f40 100644 --- a/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp +++ b/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp @@ -236,16 +236,19 @@ void CompilerToVM::Data::initialize(JVMCI_TRAPS) { JVMTI_ONLY( _should_notify_object_alloc = &JvmtiExport::_should_notify_object_alloc; ) BarrierSet* bs = BarrierSet::barrier_set(); - if (bs->is_a(BarrierSet::CardTableBarrierSet)) { - CardTable::CardValue* base = ci_card_table_address(); - assert(base != nullptr, "unexpected byte_map_base"); - cardtable_start_address = base; + if (bs->is_a(BarrierSet::G1BarrierSet)) { + cardtable_start_address = nullptr; cardtable_shift = CardTable::card_shift(); #if INCLUDE_SHENANDOAHGC } else if (bs->is_a(BarrierSet::ShenandoahBarrierSet)) { cardtable_start_address = nullptr; cardtable_shift = CardTable::card_shift(); #endif + } else if (bs->is_a(BarrierSet::CardTableBarrierSet)) { + CardTable::CardValue* base = ci_card_table_address(); + assert(base != nullptr, "unexpected byte_map_base"); + cardtable_start_address = base; + cardtable_shift = CardTable::card_shift(); } else { // No card mark barriers cardtable_start_address = nullptr;