src/share/vm/opto/runtime.cpp
Print this page
rev 1086 : merge with latest hotspot/hotspot and change global flag name to CheckExceptionEventsNeeded
*** 575,584 ****
--- 575,600 ----
const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+2, fields);
return TypeFunc::make(domain, range);
}
+
+ const TypeFunc* OptoRuntime::must_post_exception_events_Type() {
+ // create input type (domain), no input args
+ const Type **fields = TypeTuple::fields(0);
+ const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+0, fields);
+
+ // create result type (range)
+ fields = TypeTuple::fields(1);
+ fields[TypeFunc::Parms+0] = TypeInt::INT;
+ const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+1, fields);
+
+ return TypeFunc::make(domain, range);
+ }
+
+
+
// arraycopy stub variations:
enum ArrayCopyType {
ac_fast, // void(ptr, ptr, size_t)
ac_checkcast, // int(ptr, ptr, size_t, size_t, ptr)
ac_slow, // void(ptr, int, ptr, int, int)
*** 808,818 ****
fatal("Native mathod should not have path to exception handling");
} else {
// we are switching to old paradigm: search for exception handler in caller_frame
// instead in exception handler of caller_frame.sender()
! if (JvmtiExport::can_post_exceptions()) {
// "Full-speed catching" is not necessary here,
// since we're notifying the VM on every catch.
// Force deoptimization and the rest of the lookup
// will be fine.
deoptimize_caller_frame(thread, true);
--- 824,836 ----
fatal("Native mathod should not have path to exception handling");
} else {
// we are switching to old paradigm: search for exception handler in caller_frame
// instead in exception handler of caller_frame.sender()
! // if CheckExceptionEventsNeeded is set we only need to deoptimize
! // if we really need exception event notification
! if (JvmtiExport::can_post_exceptions() && (!CheckExceptionEventsNeeded || JvmtiExport::must_post_exception_events())) {
// "Full-speed catching" is not necessary here,
// since we're notifying the VM on every catch.
// Force deoptimization and the rest of the lookup
// will be fine.
deoptimize_caller_frame(thread, true);
*** 1206,1210 ****
--- 1224,1229 ----
JRT_LEAF(void, OptoRuntime::zap_dead_native_locals_C(JavaThread* thread))
zap_dead_java_or_native_locals(thread, is_native_frame);
JRT_END
# endif
+