Mercurial > hg > graal-compiler
comparison src/cpu/sparc/vm/sharedRuntime_sparc.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 | f8199438385b |
children | e5b0439ef4ae |
comparison
equal
deleted
inserted
replaced
609:ea20d7ce26b0 | 610:70998f2e05ef |
---|---|
2159 CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry), | 2159 CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry), |
2160 G2_thread, O1); | 2160 G2_thread, O1); |
2161 __ restore(); | 2161 __ restore(); |
2162 } | 2162 } |
2163 | 2163 |
2164 // RedefineClasses() tracing support for obsolete method entry | |
2165 if (RC_TRACE_IN_RANGE(0x00001000, 0x00002000)) { | |
2166 // create inner frame | |
2167 __ save_frame(0); | |
2168 __ mov(G2_thread, L7_thread_cache); | |
2169 __ set_oop_constant(JNIHandles::make_local(method()), O1); | |
2170 __ call_VM_leaf(L7_thread_cache, | |
2171 CAST_FROM_FN_PTR(address, SharedRuntime::rc_trace_method_entry), | |
2172 G2_thread, O1); | |
2173 __ restore(); | |
2174 } | |
2175 | |
2164 // We are in the jni frame unless saved_frame is true in which case | 2176 // We are in the jni frame unless saved_frame is true in which case |
2165 // we are in one frame deeper (the "inner" frame). If we are in the | 2177 // we are in one frame deeper (the "inner" frame). If we are in the |
2166 // "inner" frames the args are in the Iregs and if the jni frame then | 2178 // "inner" frames the args are in the Iregs and if the jni frame then |
2167 // they are in the Oregs. | 2179 // they are in the Oregs. |
2168 // If we ever need to go to the VM (for locking, jvmti) then | 2180 // If we ever need to go to the VM (for locking, jvmti) then |