comparison src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @ 1830:a3f7f95b0165

6988018: dtrace/hotspot/MethodInvocation/MethodInvocation002 crashes with client compiler Reviewed-by: iveresov, kvn, kamg
author never
date Tue, 05 Oct 2010 11:16:12 -0700
parents 3a294e483abc
children 22e4420d19f7
comparison
equal deleted inserted replaced
1829:fe08403130db 1830:a3f7f95b0165
486 __ unlock_object(rdi, rbx, rax, *stub->entry()); 486 __ unlock_object(rdi, rbx, rax, *stub->entry());
487 __ bind(*stub->continuation()); 487 __ bind(*stub->continuation());
488 } 488 }
489 489
490 if (compilation()->env()->dtrace_method_probes()) { 490 if (compilation()->env()->dtrace_method_probes()) {
491 __ movoop(Address(rsp, 0), method()->constant_encoding()); 491 __ get_thread(rax);
492 __ movptr(Address(rsp, 0), rax);
493 __ movoop(Address(rsp, sizeof(void*)), method()->constant_encoding());
492 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit))); 494 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit)));
493 } 495 }
494 496
495 if (method()->is_synchronized() || compilation()->env()->dtrace_method_probes()) { 497 if (method()->is_synchronized() || compilation()->env()->dtrace_method_probes()) {
496 __ mov(rax, rsi); // Restore the exception 498 __ mov(rax, rsi); // Restore the exception