6988018: dtrace/hotspot/MethodInvocation/MethodInvocation002 crashes with client compiler
authornever
Tue, 05 Oct 2010 11:16:12 -0700
changeset 6756 01ac7b1701eb
parent 6755 58237fa09b63
child 6757 b50903cdd0b0
6988018: dtrace/hotspot/MethodInvocation/MethodInvocation002 crashes with client compiler Reviewed-by: iveresov, kvn, kamg
hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
--- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp	Tue Oct 05 08:57:20 2010 -0700
+++ b/hotspot/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();
   }
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp	Tue Oct 05 08:57:20 2010 -0700
+++ b/hotspot/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)));
   }