--- a/hotspot/src/share/vm/opto/library_call.cpp Fri Dec 04 16:38:04 2015 +0100
+++ b/hotspot/src/share/vm/opto/library_call.cpp Fri Dec 04 23:46:19 2015 +0300
@@ -315,6 +315,8 @@
bool inline_profileBoolean();
bool inline_isCompileConstant();
+
+ bool inline_deoptimize();
};
//---------------------------make_vm_intrinsic----------------------------
@@ -750,6 +752,9 @@
case vmIntrinsics::_hasNegatives:
return inline_hasNegatives();
+ 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.
@@ -6574,3 +6579,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;
+}