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