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;