src/share/vm/c1/c1_Runtime1.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7083786 Sdiff src/share/vm/c1

src/share/vm/c1/c1_Runtime1.cpp

Print this page




 358 
 359   assert(oop(klass)->is_klass(), "not a class");
 360   assert(rank >= 1, "rank must be nonzero");
 361   oop obj = arrayKlass::cast(klass)->multi_allocate(rank, dims, CHECK);
 362   thread->set_vm_result(obj);
 363 JRT_END
 364 
 365 
 366 JRT_ENTRY(void, Runtime1::unimplemented_entry(JavaThread* thread, StubID id))
 367   tty->print_cr("Runtime1::entry_for(%d) returned unimplemented entry point", id);
 368 JRT_END
 369 
 370 
 371 JRT_ENTRY(void, Runtime1::throw_array_store_exception(JavaThread* thread, oopDesc* obj))
 372   ResourceMark rm(thread);
 373   const char* klass_name = Klass::cast(obj->klass())->external_name();
 374   SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_ArrayStoreException(), klass_name);
 375 JRT_END
 376 
 377 
 378 JRT_ENTRY(void, Runtime1::post_jvmti_exception_throw(JavaThread* thread))
 379   if (JvmtiExport::can_post_on_exceptions()) {
 380     vframeStream vfst(thread, true);
 381     address bcp = vfst.method()->bcp_from(vfst.bci());
 382     JvmtiExport::post_exception_throw(thread, vfst.method(), bcp, thread->exception_oop());
 383   }
 384 JRT_END
 385 
 386 // counter_overflow() is called from within C1-compiled methods. The enclosing method is the method
 387 // associated with the top activation record. The inlinee (that is possibly included in the enclosing
 388 // method) method oop is passed as an argument. In order to do that it is embedded in the code as
 389 // a constant.
 390 static nmethod* counter_overflow_helper(JavaThread* THREAD, int branch_bci, methodOopDesc* m) {
 391   nmethod* osr_nm = NULL;
 392   methodHandle method(THREAD, m);
 393 
 394   RegisterMap map(THREAD, false);
 395   frame fr =  THREAD->last_frame().sender(&map);
 396   nmethod* nm = (nmethod*) fr.cb();
 397   assert(nm!= NULL && nm->is_nmethod(), "Sanity check");
 398   methodHandle enclosing_method(THREAD, nm->method());
 399 
 400   CompLevel level = (CompLevel)nm->comp_level();
 401   int bci = InvocationEntryBci;
 402   if (branch_bci != InvocationEntryBci) {
 403     // Compute desination bci
 404     address pc = method()->code_base() + branch_bci;
 405     Bytecodes::Code branch = Bytecodes::code_at(method(), pc);




 358 
 359   assert(oop(klass)->is_klass(), "not a class");
 360   assert(rank >= 1, "rank must be nonzero");
 361   oop obj = arrayKlass::cast(klass)->multi_allocate(rank, dims, CHECK);
 362   thread->set_vm_result(obj);
 363 JRT_END
 364 
 365 
 366 JRT_ENTRY(void, Runtime1::unimplemented_entry(JavaThread* thread, StubID id))
 367   tty->print_cr("Runtime1::entry_for(%d) returned unimplemented entry point", id);
 368 JRT_END
 369 
 370 
 371 JRT_ENTRY(void, Runtime1::throw_array_store_exception(JavaThread* thread, oopDesc* obj))
 372   ResourceMark rm(thread);
 373   const char* klass_name = Klass::cast(obj->klass())->external_name();
 374   SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_ArrayStoreException(), klass_name);
 375 JRT_END
 376 
 377 








 378 // counter_overflow() is called from within C1-compiled methods. The enclosing method is the method
 379 // associated with the top activation record. The inlinee (that is possibly included in the enclosing
 380 // method) method oop is passed as an argument. In order to do that it is embedded in the code as
 381 // a constant.
 382 static nmethod* counter_overflow_helper(JavaThread* THREAD, int branch_bci, methodOopDesc* m) {
 383   nmethod* osr_nm = NULL;
 384   methodHandle method(THREAD, m);
 385 
 386   RegisterMap map(THREAD, false);
 387   frame fr =  THREAD->last_frame().sender(&map);
 388   nmethod* nm = (nmethod*) fr.cb();
 389   assert(nm!= NULL && nm->is_nmethod(), "Sanity check");
 390   methodHandle enclosing_method(THREAD, nm->method());
 391 
 392   CompLevel level = (CompLevel)nm->comp_level();
 393   int bci = InvocationEntryBci;
 394   if (branch_bci != InvocationEntryBci) {
 395     // Compute desination bci
 396     address pc = method()->code_base() + branch_bci;
 397     Bytecodes::Code branch = Bytecodes::code_at(method(), pc);


src/share/vm/c1/c1_Runtime1.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File