# HG changeset patch # User never # Date 1286302572 25200 # Node ID a3f7f95b01656298438aab2fadec7b019c526089 # Parent fe08403130db4318135b95acb492d2b2dc301397 6988018: dtrace/hotspot/MethodInvocation/MethodInvocation002 crashes with client compiler Reviewed-by: iveresov, kvn, kamg diff -r fe08403130db -r a3f7f95b0165 src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp --- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Tue Oct 05 08:57:20 2010 -0700 +++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Tue Oct 05 11:16:12 2010 -0700 @@ -420,7 +420,8 @@ } 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(); } diff -r fe08403130db -r a3f7f95b0165 src/cpu/x86/vm/c1_LIRAssembler_x86.cpp --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Oct 05 08:57:20 2010 -0700 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Oct 05 11:16:12 2010 -0700 @@ -488,7 +488,9 @@ } 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))); }