Mercurial > hg > truffle
comparison src/cpu/x86/vm/sharedRuntime_x86_32.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 |
---|---|
1530 __ call_VM_leaf( | 1530 __ call_VM_leaf( |
1531 CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry), | 1531 CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry), |
1532 thread, rax); | 1532 thread, rax); |
1533 } | 1533 } |
1534 | 1534 |
1535 // RedefineClasses() tracing support for obsolete method entry | |
1536 if (RC_TRACE_IN_RANGE(0x00001000, 0x00002000)) { | |
1537 __ movoop(rax, JNIHandles::make_local(method())); | |
1538 __ call_VM_leaf( | |
1539 CAST_FROM_FN_PTR(address, SharedRuntime::rc_trace_method_entry), | |
1540 thread, rax); | |
1541 } | |
1542 | |
1535 | 1543 |
1536 // These are register definitions we need for locking/unlocking | 1544 // These are register definitions we need for locking/unlocking |
1537 const Register swap_reg = rax; // Must use rax, for cmpxchg instruction | 1545 const Register swap_reg = rax; // Must use rax, for cmpxchg instruction |
1538 const Register obj_reg = rcx; // Will contain the oop | 1546 const Register obj_reg = rcx; // Will contain the oop |
1539 const Register lock_reg = rdx; // Address of compiler lock object (BasicLock) | 1547 const Register lock_reg = rdx; // Address of compiler lock object (BasicLock) |