--- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Mon Mar 09 13:34:00 2009 -0700
+++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Thu Mar 12 18:16:36 2009 -0700
@@ -1350,7 +1350,7 @@
{
Label L;
__ mov(rax, rsp);
- __ andptr(rax, -16); // must be 16 byte boundry (see amd64 ABI)
+ __ andptr(rax, -16); // must be 16 byte boundary (see amd64 ABI)
__ cmpptr(rax, rsp);
__ jcc(Assembler::equal, L);
__ stop("improperly aligned stack");
@@ -1508,6 +1508,17 @@
restore_args(masm, total_c_args, c_arg, out_regs);
}
+ // RedefineClasses() tracing support for obsolete method entry
+ if (RC_TRACE_IN_RANGE(0x00001000, 0x00002000)) {
+ // protect the args we've loaded
+ save_args(masm, total_c_args, c_arg, out_regs);
+ __ movoop(c_rarg1, JNIHandles::make_local(method()));
+ __ call_VM_leaf(
+ CAST_FROM_FN_PTR(address, SharedRuntime::rc_trace_method_entry),
+ r15_thread, c_rarg1);
+ restore_args(masm, total_c_args, c_arg, out_regs);
+ }
+
// Lock a synchronized method
// Register definitions used by locking and unlocking