--- old/src/share/vm/runtime/vm_operations.cpp 2015-10-08 07:24:37.000000000 -1000 +++ new/src/share/vm/runtime/vm_operations.cpp 2015-10-08 07:24:37.000000000 -1000 @@ -117,14 +117,16 @@ NMethodSweeper::mark_active_nmethods(); } -VM_DeoptimizeFrame::VM_DeoptimizeFrame(JavaThread* thread, intptr_t* id) { +VM_DeoptimizeFrame::VM_DeoptimizeFrame(JavaThread* thread, intptr_t* id, int reason) { _thread = thread; _id = id; + _reason = reason; } void VM_DeoptimizeFrame::doit() { - Deoptimization::deoptimize_frame_internal(_thread, _id); + assert(_reason > Deoptimization::Reason_none && _reason < Deoptimization::Reason_LIMIT, "invalid deopt reason"); + Deoptimization::deoptimize_frame_internal(_thread, _id, (Deoptimization::DeoptReason)_reason); }