8043314: Fix for JDK-8041934 causes assert(is_interpreted_frame()) failed: interpreted frame expected

Back out fix for JDK-8041934

Reviewed-by: coleenp, sspitsyn
This commit is contained in:
Staffan Larsen 2014-05-20 20:35:39 +02:00
parent 024bb79ec8
commit 7f721c111b
5 changed files with 0 additions and 82 deletions

View File

@ -2657,30 +2657,6 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
__ bind(done);
}
{
// Normally we do not post method_entry and method_exit events from
// compiled code, only from the interpreter. If method_entry/exit
// events are switched on at runtime, we will deoptimize everything
// (see VM_EnterInterpOnlyMode) on the stack and call method_entry/exit
// from the interpreter. But when we do that, we will not deoptimize
// this native wrapper frame. Thus we have an extra check here to see
// if we are now in interp_only_mode and in that case we do the jvmti
// callback.
Label skip_jvmti_method_exit;
__ ld(G2_thread, JavaThread::interp_only_mode_offset(), G3_scratch);
__ cmp_and_br_short(G3_scratch, 0, Assembler::zero, Assembler::pt, skip_jvmti_method_exit);
save_native_result(masm, ret_type, stack_slots);
__ set_metadata_constant(method(), G3_scratch);
__ call_VM(
noreg,
CAST_FROM_FN_PTR(address, SharedRuntime::jvmti_method_exit),
G2_thread, G3_scratch,
true);
restore_native_result(masm, ret_type, stack_slots);
__ bind(skip_jvmti_method_exit);
}
// Tell dtrace about this method exit
{
SkipIfEqual skip_if(

View File

@ -2238,30 +2238,6 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
}
{
// Normally we do not post method_entry and method_exit events from
// compiled code, only from the interpreter. If method_entry/exit
// events are switched on at runtime, we will deoptimize everything
// (see VM_EnterInterpOnlyMode) on the stack and call method_entry/exit
// from the interpreter. But when we do that, we will not deoptimize
// this native wrapper frame. Thus we have an extra check here to see
// if we are now in interp_only_mode and in that case we do the jvmti
// callback.
Label skip_jvmti_method_exit;
__ cmpl(Address(thread, JavaThread::interp_only_mode_offset()), 0);
__ jcc(Assembler::zero, skip_jvmti_method_exit, true);
save_native_result(masm, ret_type, stack_slots);
__ mov_metadata(rax, method());
__ call_VM(
noreg,
CAST_FROM_FN_PTR(address, SharedRuntime::jvmti_method_exit),
thread, rax,
true);
restore_native_result(masm, ret_type, stack_slots);
__ bind(skip_jvmti_method_exit);
}
{
SkipIfEqual skip_if(masm, &DTraceMethodProbes, 0);
// Tell dtrace about this method exit

View File

@ -2484,31 +2484,6 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
__ bind(done);
}
{
// Normally we do not post method_entry and method_exit events from
// compiled code, only from the interpreter. If method_entry/exit
// events are switched on at runtime, we will deoptimize everything
// (see VM_EnterInterpOnlyMode) on the stack and call method_entry/exit
// from the interpreter. But when we do that, we will not deoptimize
// this native wrapper frame. Thus we have an extra check here to see
// if we are now in interp_only_mode and in that case we do the jvmti
// callback.
Label skip_jvmti_method_exit;
__ cmpl(Address(r15_thread, JavaThread::interp_only_mode_offset()), 0);
__ jcc(Assembler::zero, skip_jvmti_method_exit, true);
save_native_result(masm, ret_type, stack_slots);
__ mov_metadata(c_rarg1, method());
__ call_VM(
noreg,
CAST_FROM_FN_PTR(address, SharedRuntime::jvmti_method_exit),
r15_thread, c_rarg1,
true);
restore_native_result(masm, ret_type, stack_slots);
__ bind(skip_jvmti_method_exit);
}
{
SkipIfEqual skip(masm, &DTraceMethodProbes, false);
save_native_result(masm, ret_type, stack_slots);

View File

@ -993,12 +993,6 @@ JRT_LEAF(int, SharedRuntime::dtrace_method_exit(
return 0;
JRT_END
JRT_ENTRY(int, SharedRuntime::jvmti_method_exit(
JavaThread* thread, Method* method))
JvmtiExport::post_method_exit(thread, method, thread->last_frame());
return 0;
JRT_END
// Finds receiver, CallInfo (i.e. receiver method), and calling bytecode)
// for a call current in progress, i.e., arguments has been pushed on stack

View File

@ -263,9 +263,6 @@ class SharedRuntime: AllStatic {
static int dtrace_method_entry(JavaThread* thread, Method* m);
static int dtrace_method_exit(JavaThread* thread, Method* m);
// jvmti notification
static int jvmti_method_exit(JavaThread* thread, Method* m);
// Utility method for retrieving the Java thread id, returns 0 if the
// thread is not a well formed Java thread.
static jlong get_java_tid(Thread* thread);