diff -r 2098785677fb -r ae7bd89bdc0d src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp --- a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp Tue Nov 21 10:21:24 2017 -0600 +++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp Tue Nov 21 09:04:42 2017 -0800 @@ -237,7 +237,7 @@ } -address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step) { +address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step, address continuation) { address entry = __ pc(); #ifndef _LP64 @@ -291,7 +291,11 @@ __ should_not_reach_here(); __ bind(L); } - __ dispatch_next(state, step); + if (continuation == NULL) { + __ dispatch_next(state, step); + } else { + __ jump_to_entry(continuation); + } return entry; }