comparison src/share/vm/interpreter/interpreterRuntime.cpp @ 4988:eb5b24d1499f

Merge
author Christian Haeubl <christian.haeubl@oracle.com>
date Mon, 27 Feb 2012 15:06:36 -0800
parents 18a5539bf19b
children 957c266d8bc5
comparison
equal deleted inserted replaced
4987:f292f9c590ba 4988:eb5b24d1499f
443 should_repeat = true; 443 should_repeat = true;
444 } 444 }
445 } 445 }
446 } while (should_repeat == true); 446 } while (should_repeat == true);
447 447
448 #ifdef GRAAL
448 if (h_method->method_data() != NULL) { 449 if (h_method->method_data() != NULL) {
449 ResourceMark rm(thread); 450 ResourceMark rm(thread);
450 ProfileData* pdata = h_method->method_data()->allocate_bci_to_data(current_bci); 451 ProfileData* pdata = h_method->method_data()->allocate_bci_to_data(current_bci);
451 if (pdata != NULL) { 452 if (pdata != NULL) {
452 int tstate0 = pdata->trap_state(); 453 int tstate0 = pdata->trap_state();
454 if (tstate1 != tstate0) { 455 if (tstate1 != tstate0) {
455 pdata->set_trap_state(tstate1); 456 pdata->set_trap_state(tstate1);
456 } 457 }
457 } 458 }
458 } 459 }
460 #endif
459 461
460 // notify JVMTI of an exception throw; JVMTI will detect if this is a first 462 // notify JVMTI of an exception throw; JVMTI will detect if this is a first
461 // time throw or a stack unwinding throw and accordingly notify the debugger 463 // time throw or a stack unwinding throw and accordingly notify the debugger
462 if (JvmtiExport::can_post_on_exceptions()) { 464 if (JvmtiExport::can_post_on_exceptions()) {
463 JvmtiExport::post_exception_throw(thread, h_method(), bcp(thread), h_exception()); 465 JvmtiExport::post_exception_throw(thread, h_method(), bcp(thread), h_exception());
869 assert(fr.is_interpreted_frame(), "must come from interpreter"); 871 assert(fr.is_interpreted_frame(), "must come from interpreter");
870 methodHandle method(thread, fr.interpreter_frame_method()); 872 methodHandle method(thread, fr.interpreter_frame_method());
871 const int branch_bci = branch_bcp != NULL ? method->bci_from(branch_bcp) : InvocationEntryBci; 873 const int branch_bci = branch_bcp != NULL ? method->bci_from(branch_bcp) : InvocationEntryBci;
872 const int bci = branch_bcp != NULL ? method->bci_from(fr.interpreter_frame_bcp()) : InvocationEntryBci; 874 const int bci = branch_bcp != NULL ? method->bci_from(fr.interpreter_frame_bcp()) : InvocationEntryBci;
873 875
876 assert(!HAS_PENDING_EXCEPTION, "Should not have any exceptions pending");
874 nmethod* osr_nm = CompilationPolicy::policy()->event(method, method, branch_bci, bci, CompLevel_none, NULL, thread); 877 nmethod* osr_nm = CompilationPolicy::policy()->event(method, method, branch_bci, bci, CompLevel_none, NULL, thread);
878 assert(!HAS_PENDING_EXCEPTION, "Event handler should not throw any exceptions");
875 879
876 if (osr_nm != NULL) { 880 if (osr_nm != NULL) {
877 // We may need to do on-stack replacement which requires that no 881 // We may need to do on-stack replacement which requires that no
878 // monitors in the activation are biased because their 882 // monitors in the activation are biased because their
879 // BasicObjectLocks will need to migrate during OSR. Force 883 // BasicObjectLocks will need to migrate during OSR. Force