< prev index next >

src/share/vm/jvmci/jvmciCompilerToVM.cpp

Print this page
rev 12906 : [mq]: gc_interface

@@ -30,10 +30,11 @@
 #include "memory/resourceArea.hpp"
 #include "oops/generateOopMap.hpp"
 #include "oops/fieldStreams.hpp"
 #include "oops/oop.inline.hpp"
 #include "oops/objArrayOop.inline.hpp"
+#include "oops/typeArrayOop.inline.hpp"
 #include "runtime/fieldDescriptor.hpp"
 #include "runtime/javaCalls.hpp"
 #include "jvmci/jvmciRuntime.hpp"
 #include "compiler/abstractCompiler.hpp"
 #include "compiler/compileBroker.hpp"

@@ -45,10 +46,11 @@
 #include "jvmci/jvmciEnv.hpp"
 #include "jvmci/jvmciJavaClasses.hpp"
 #include "jvmci/jvmciCodeInstaller.hpp"
 #include "jvmci/vmStructs_jvmci.hpp"
 #include "gc/g1/heapRegion.hpp"
+#include "gc/shared/cardTable.hpp"
 #include "runtime/javaCalls.hpp"
 #include "runtime/deoptimization.hpp"
 #include "runtime/timerTrace.hpp"
 #include "runtime/vframe.hpp"
 #include "runtime/vframe_hp.hpp"

@@ -201,30 +203,19 @@
 
   symbol_init = (address) vmSymbols::object_initializer_name();
   symbol_clinit = (address) vmSymbols::class_initializer_name();
 
   BarrierSet* bs = Universe::heap()->barrier_set();
-  switch (bs->kind()) {
-  case BarrierSet::CardTableModRef:
-  case BarrierSet::CardTableForRS:
-  case BarrierSet::CardTableExtension:
-  case BarrierSet::G1SATBCT:
-  case BarrierSet::G1SATBCTLogging: {
-    jbyte* base = barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base;
+  if (bs->is_a(BarrierSet::CardTableModRef)) {
+    jbyte* base = barrier_set_cast<CardTableModRefBS>(bs)->card_table()->byte_map_base();
     assert(base != 0, "unexpected byte_map_base");
     cardtable_start_address = base;
-    cardtable_shift = CardTableModRefBS::card_shift;
-    break;
-  }
-  case BarrierSet::ModRef:
+    cardtable_shift = CardTable::card_shift;
+  } else {
+    // No card mark barriers
     cardtable_start_address = 0;
     cardtable_shift = 0;
-    // No post barriers
-    break;
-  default:
-    JVMCI_ERROR("Unsupported BarrierSet kind %d", bs->kind());
-    break;
   }
 
   vm_page_size = os::vm_page_size();
 
 #define SET_TRIGFUNC(name)                                      \
< prev index next >