6988018: dtrace/hotspot/MethodInvocation/MethodInvocation002 crashes with client compiler
authornever
Tue Oct 05 11:16:12 2010 -0700 (2 years ago)
changeset 1988c53baab9d988
parent 1987243e95e6a37d
child 198961e2d45faa7f
6988018: dtrace/hotspot/MethodInvocation/MethodInvocation002 crashes with client compiler
Reviewed-by: iveresov, kvn, kamg
src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
--- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Wed Sep 08 20:28:57 2010 -0700
+++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Tue Oct 05 11:16:12 2010 -0700
@@ -420,7 +420,8 @@ int LIR_Assembler::emit_unwind_handler()
}
if (compilation()->env()->dtrace_method_probes()) {
- jobject2reg(method()->constant_encoding(), O0);
+ __ mov(G2_thread, O0);
+ jobject2reg(method()->constant_encoding(), O1);
__ call(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit), relocInfo::runtime_call_type);
__ delayed()->nop();
}
--- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Wed Sep 08 20:28:57 2010 -0700
+++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Oct 05 11:16:12 2010 -0700
@@ -488,7 +488,9 @@ int LIR_Assembler::emit_unwind_handler()
}
if (compilation()->env()->dtrace_method_probes()) {
- __ movoop(Address(rsp, 0), method()->constant_encoding());
+ __ get_thread(rax);
+ __ movptr(Address(rsp, 0), rax);
+ __ movoop(Address(rsp, sizeof(void*)), method()->constant_encoding());
__ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit)));
}