comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 610:70998f2e05ef

6805864: 4/3 Problem with jvmti->redefineClasses: some methods don't get redefined Summary: Remove incorrect optimization in klassItable::adjust_method_entries(). Add RedefineClasses() tracing support for obsolete method entry. Reviewed-by: acorn, swamyv
author dcubed
date Mon, 02 Mar 2009 14:03:03 -0700
parents dc7f315e41f7
children afa80fa86d22
comparison
equal deleted inserted replaced
609:ea20d7ce26b0 610:70998f2e05ef
1504 CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry), 1504 CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry),
1505 r15_thread, c_rarg1); 1505 r15_thread, c_rarg1);
1506 restore_args(masm, total_c_args, c_arg, out_regs); 1506 restore_args(masm, total_c_args, c_arg, out_regs);
1507 } 1507 }
1508 1508
1509 // RedefineClasses() tracing support for obsolete method entry
1510 if (RC_TRACE_IN_RANGE(0x00001000, 0x00002000)) {
1511 // protect the args we've loaded
1512 save_args(masm, total_c_args, c_arg, out_regs);
1513 __ movoop(c_rarg1, JNIHandles::make_local(method()));
1514 __ call_VM_leaf(
1515 CAST_FROM_FN_PTR(address, SharedRuntime::rc_trace_method_entry),
1516 r15_thread, c_rarg1);
1517 restore_args(masm, total_c_args, c_arg, out_regs);
1518 }
1519
1509 // Lock a synchronized method 1520 // Lock a synchronized method
1510 1521
1511 // Register definitions used by locking and unlocking 1522 // Register definitions used by locking and unlocking
1512 1523
1513 const Register swap_reg = rax; // Must use rax for cmpxchg instruction 1524 const Register swap_reg = rax; // Must use rax for cmpxchg instruction