857 assert(fr.is_interpreted_frame(), "must come from interpreter"); |
857 assert(fr.is_interpreted_frame(), "must come from interpreter"); |
858 methodHandle method(thread, fr.interpreter_frame_method()); |
858 methodHandle method(thread, fr.interpreter_frame_method()); |
859 const int branch_bci = branch_bcp != NULL ? method->bci_from(branch_bcp) : InvocationEntryBci; |
859 const int branch_bci = branch_bcp != NULL ? method->bci_from(branch_bcp) : InvocationEntryBci; |
860 const int bci = branch_bcp != NULL ? method->bci_from(fr.interpreter_frame_bcp()) : InvocationEntryBci; |
860 const int bci = branch_bcp != NULL ? method->bci_from(fr.interpreter_frame_bcp()) : InvocationEntryBci; |
861 |
861 |
|
862 assert(!HAS_PENDING_EXCEPTION, "Should not have any exceptions pending"); |
862 nmethod* osr_nm = CompilationPolicy::policy()->event(method, method, branch_bci, bci, CompLevel_none, NULL, thread); |
863 nmethod* osr_nm = CompilationPolicy::policy()->event(method, method, branch_bci, bci, CompLevel_none, NULL, thread); |
|
864 assert(!HAS_PENDING_EXCEPTION, "Event handler should not throw any exceptions"); |
863 |
865 |
864 if (osr_nm != NULL) { |
866 if (osr_nm != NULL) { |
865 // We may need to do on-stack replacement which requires that no |
867 // We may need to do on-stack replacement which requires that no |
866 // monitors in the activation are biased because their |
868 // monitors in the activation are biased because their |
867 // BasicObjectLocks will need to migrate during OSR. Force |
869 // BasicObjectLocks will need to migrate during OSR. Force |