Mercurial > hg > truffle
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: { |