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 +