diff src/share/vm/c1x/c1x_VMEntries.cpp @ 1434:72cfb36c6bb2

* enabled all jtt tests * added proxy that counts jni calls * honor hotspot stackshadowpages * constant pool caching * monitor enter/exit * arithmetic stubs (frem, drem, ...) * create stack values for debug info * some doc
author Lukas Stadler <lukas.stadler@oracle.com>
date Thu, 30 Sep 2010 17:19:48 -0700
parents efba53f86c4f
children a7b84a5e16c6
line wrap: on
line diff
--- a/src/share/vm/c1x/c1x_VMEntries.cpp	Thu Sep 16 19:42:20 2010 -0700
+++ b/src/share/vm/c1x/c1x_VMEntries.cpp	Thu Sep 30 17:19:48 2010 -0700
@@ -316,21 +316,8 @@
 // public RiType getPrimitiveArrayType(CiKind kind);
 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_getPrimitiveArrayType(JNIEnv *env, jobject, jobject kind) {
   VM_ENTRY_MARK;
-  BasicType type;
-  switch(CiKind::typeChar(kind)) {
-    case 'z': type = T_BOOLEAN; break;
-    case 'b': type = T_BYTE; break;
-    case 's': type = T_SHORT; break;
-    case 'c': type = T_CHAR; break;
-    case 'i': type = T_INT; break;
-    case 'f': type = T_FLOAT; break;
-    case 'l': type = T_LONG; break;
-    case 'd': type = T_DOUBLE; break;
-    case 'a':
-    default:
-      fatal("unexpected CiKind in getPrimitiveArrayType");
-      break;
-  }
+  BasicType type = C1XCompiler::kindToBasicType(CiKind::typeChar(kind));
+  assert(type != T_OBJECT, "primitive type expecteds");
   ciKlass* klass = ciTypeArrayKlass::make(type);
   return JNIHandles::make_local(THREAD, C1XCompiler::get_RiType(klass, NULL, THREAD));
 }
@@ -412,8 +399,9 @@
   set_long(env, config, "throwClassCastException", VmIds::addStub(Runtime1::entry_for(Runtime1::throw_class_cast_exception_id)));
   set_long(env, config, "throwArrayStoreException", VmIds::addStub(Runtime1::entry_for(Runtime1::throw_array_store_exception_id)));
   set_long(env, config, "throwArrayIndexException", VmIds::addStub(Runtime1::entry_for(Runtime1::throw_range_check_failed_id)));
-  set_long(env, config, "monitorEnterStub", VmIds::addStub(Runtime1::entry_for(Runtime1::monitorenter_nofpu_id)));
-  set_long(env, config, "monitorExitStub", VmIds::addStub(Runtime1::entry_for(Runtime1::monitorexit_nofpu_id)));
+  set_long(env, config, "monitorEnterStub", VmIds::addStub(Runtime1::entry_for(Runtime1::c1x_monitorenter_id)));
+  set_long(env, config, "monitorExitStub", VmIds::addStub(Runtime1::entry_for(Runtime1::c1x_monitorexit_id)));
+  set_long(env, config, "safepointPollingAddress", (jlong)(os::get_polling_page() + (SafepointPollOffset % os::vm_page_size())));
 
   BarrierSet* bs = Universe::heap()->barrier_set();
   switch (bs->kind()) {