--- old/src/share/vm/opto/library_call.cpp 2015-10-30 00:19:40.000000000 +0300 +++ new/src/share/vm/opto/library_call.cpp 2015-10-30 00:19:40.000000000 +0300 @@ -305,6 +305,8 @@ bool inline_profileBoolean(); bool inline_isCompileConstant(); + + bool inline_deoptimize(); }; //---------------------------make_vm_intrinsic---------------------------- @@ -711,6 +713,9 @@ case vmIntrinsics::_isCompileConstant: return inline_isCompileConstant(); + case vmIntrinsics::_deoptimize: + return inline_deoptimize(); + default: // If you get here, it may be that someone has added a new intrinsic // to the list in vmSymbols.hpp without implementing it here. @@ -6329,3 +6334,12 @@ set_result(n->is_Con() ? intcon(1) : intcon(0)); return true; } + +bool LibraryCallKit::inline_deoptimize() { + assert(WhiteBoxAPI, ""); + PreserveReexecuteState preexecs(this); + jvms()->set_should_reexecute(false); + uncommon_trap(Deoptimization::Reason_intrinsic, + Deoptimization::Action_none); + return true; +}