comparison 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
comparison
equal deleted inserted replaced
1433:efba53f86c4f 1434:72cfb36c6bb2
314 } 314 }
315 315
316 // public RiType getPrimitiveArrayType(CiKind kind); 316 // public RiType getPrimitiveArrayType(CiKind kind);
317 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_getPrimitiveArrayType(JNIEnv *env, jobject, jobject kind) { 317 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_getPrimitiveArrayType(JNIEnv *env, jobject, jobject kind) {
318 VM_ENTRY_MARK; 318 VM_ENTRY_MARK;
319 BasicType type; 319 BasicType type = C1XCompiler::kindToBasicType(CiKind::typeChar(kind));
320 switch(CiKind::typeChar(kind)) { 320 assert(type != T_OBJECT, "primitive type expecteds");
321 case 'z': type = T_BOOLEAN; break;
322 case 'b': type = T_BYTE; break;
323 case 's': type = T_SHORT; break;
324 case 'c': type = T_CHAR; break;
325 case 'i': type = T_INT; break;
326 case 'f': type = T_FLOAT; break;
327 case 'l': type = T_LONG; break;
328 case 'd': type = T_DOUBLE; break;
329 case 'a':
330 default:
331 fatal("unexpected CiKind in getPrimitiveArrayType");
332 break;
333 }
334 ciKlass* klass = ciTypeArrayKlass::make(type); 321 ciKlass* klass = ciTypeArrayKlass::make(type);
335 return JNIHandles::make_local(THREAD, C1XCompiler::get_RiType(klass, NULL, THREAD)); 322 return JNIHandles::make_local(THREAD, C1XCompiler::get_RiType(klass, NULL, THREAD));
336 } 323 }
337 324
338 // public RiType getType(Class<?> javaClass); 325 // public RiType getType(Class<?> javaClass);
410 set_long(env, config, "unwindExceptionStub", VmIds::addStub(Runtime1::entry_for(Runtime1::c1x_unwind_exception_call_id))); 397 set_long(env, config, "unwindExceptionStub", VmIds::addStub(Runtime1::entry_for(Runtime1::c1x_unwind_exception_call_id)));
411 set_long(env, config, "handleExceptionStub", VmIds::addStub(Runtime1::entry_for(Runtime1::handle_exception_nofpu_id))); 398 set_long(env, config, "handleExceptionStub", VmIds::addStub(Runtime1::entry_for(Runtime1::handle_exception_nofpu_id)));
412 set_long(env, config, "throwClassCastException", VmIds::addStub(Runtime1::entry_for(Runtime1::throw_class_cast_exception_id))); 399 set_long(env, config, "throwClassCastException", VmIds::addStub(Runtime1::entry_for(Runtime1::throw_class_cast_exception_id)));
413 set_long(env, config, "throwArrayStoreException", VmIds::addStub(Runtime1::entry_for(Runtime1::throw_array_store_exception_id))); 400 set_long(env, config, "throwArrayStoreException", VmIds::addStub(Runtime1::entry_for(Runtime1::throw_array_store_exception_id)));
414 set_long(env, config, "throwArrayIndexException", VmIds::addStub(Runtime1::entry_for(Runtime1::throw_range_check_failed_id))); 401 set_long(env, config, "throwArrayIndexException", VmIds::addStub(Runtime1::entry_for(Runtime1::throw_range_check_failed_id)));
415 set_long(env, config, "monitorEnterStub", VmIds::addStub(Runtime1::entry_for(Runtime1::monitorenter_nofpu_id))); 402 set_long(env, config, "monitorEnterStub", VmIds::addStub(Runtime1::entry_for(Runtime1::c1x_monitorenter_id)));
416 set_long(env, config, "monitorExitStub", VmIds::addStub(Runtime1::entry_for(Runtime1::monitorexit_nofpu_id))); 403 set_long(env, config, "monitorExitStub", VmIds::addStub(Runtime1::entry_for(Runtime1::c1x_monitorexit_id)));
404 set_long(env, config, "safepointPollingAddress", (jlong)(os::get_polling_page() + (SafepointPollOffset % os::vm_page_size())));
417 405
418 BarrierSet* bs = Universe::heap()->barrier_set(); 406 BarrierSet* bs = Universe::heap()->barrier_set();
419 switch (bs->kind()) { 407 switch (bs->kind()) {
420 case BarrierSet::CardTableModRef: 408 case BarrierSet::CardTableModRef:
421 case BarrierSet::CardTableExtension: { 409 case BarrierSet::CardTableExtension: {