1378 // since we return a continuation to the deopt_blob below. |
1378 // since we return a continuation to the deopt_blob below. |
1379 JavaThread* thread = JavaThread::current(); |
1379 JavaThread* thread = JavaThread::current(); |
1380 RegisterMap reg_map(thread, UseBiasedLocking); |
1380 RegisterMap reg_map(thread, UseBiasedLocking); |
1381 frame runtime_frame = thread->last_frame(); |
1381 frame runtime_frame = thread->last_frame(); |
1382 frame caller_frame = runtime_frame.sender(®_map); |
1382 frame caller_frame = runtime_frame.sender(®_map); |
1383 assert(caller_frame.cb()->as_nmethod_or_null() == cm, "expect top frame nmethod"); |
1383 assert(caller_frame.cb()->as_compiled_method_or_null() == cm, "expect top frame compiled method"); |
1384 Deoptimization::deoptimize(thread, caller_frame, ®_map, Deoptimization::Reason_not_compiled_exception_handler); |
1384 Deoptimization::deoptimize(thread, caller_frame, ®_map, Deoptimization::Reason_not_compiled_exception_handler); |
1385 |
1385 |
1386 MethodData* trap_mdo = get_method_data(thread, cm->method(), true); |
1386 MethodData* trap_mdo = get_method_data(thread, cm->method(), true); |
1387 if (trap_mdo != NULL) { |
1387 if (trap_mdo != NULL) { |
1388 trap_mdo->inc_trap_count(Deoptimization::Reason_not_compiled_exception_handler); |
1388 trap_mdo->inc_trap_count(Deoptimization::Reason_not_compiled_exception_handler); |