6988018: dtrace/hotspot/MethodInvocation/MethodInvocation002 crashes with client compiler

Reviewed-by: iveresov, kvn, kamg
This commit is contained in:
Tom Rodriguez 2010-10-05 11:16:12 -07:00
parent c5191a8103
commit 84e48aee05
2 changed files with 5 additions and 2 deletions

View file

@ -420,7 +420,8 @@ int LIR_Assembler::emit_unwind_handler() {
} }
if (compilation()->env()->dtrace_method_probes()) { 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); __ call(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit), relocInfo::runtime_call_type);
__ delayed()->nop(); __ delayed()->nop();
} }

View file

@ -488,7 +488,9 @@ int LIR_Assembler::emit_unwind_handler() {
} }
if (compilation()->env()->dtrace_method_probes()) { 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))); __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit)));
} }