comparison src/share/vm/code/nmethod.hpp @ 2019:09b4dd4f152b

7004582: Add GetThisObject() function to JVMTI 1.2 Summary: Add 'GetThisObject' function Reviewed-by: never, coleenp
author kamg
date Thu, 09 Dec 2010 15:04:26 -0500
parents f95d63e2154a
children 06f017f7daa7 bf8517f4e4d0
comparison
equal deleted inserted replaced
2018:642e54d1850a 2019:09b4dd4f152b
208 long _stack_traversal_mark; 208 long _stack_traversal_mark;
209 209
210 ExceptionCache *_exception_cache; 210 ExceptionCache *_exception_cache;
211 PcDescCache _pc_desc_cache; 211 PcDescCache _pc_desc_cache;
212 212
213 // These are only used for compiled synchronized native methods to 213 // These are used for compiled synchronized native methods to
214 // locate the owner and stack slot for the BasicLock so that we can 214 // locate the owner and stack slot for the BasicLock so that we can
215 // properly revoke the bias of the owner if necessary. They are 215 // properly revoke the bias of the owner if necessary. They are
216 // needed because there is no debug information for compiled native 216 // needed because there is no debug information for compiled native
217 // wrappers and the oop maps are insufficient to allow 217 // wrappers and the oop maps are insufficient to allow
218 // frame::retrieve_receiver() to work. Currently they are expected 218 // frame::retrieve_receiver() to work. Currently they are expected
219 // to be byte offsets from the Java stack pointer for maximum code 219 // to be byte offsets from the Java stack pointer for maximum code
220 // sharing between platforms. Note that currently biased locking 220 // sharing between platforms. Note that currently biased locking
221 // will never cause Class instances to be biased but this code 221 // will never cause Class instances to be biased but this code
222 // handles the static synchronized case as well. 222 // handles the static synchronized case as well.
223 ByteSize _compiled_synchronized_native_basic_lock_owner_sp_offset; 223 // JVMTI's GetLocalInstance() also uses these offsets to find the receiver
224 ByteSize _compiled_synchronized_native_basic_lock_sp_offset; 224 // for non-static native wrapper frames.
225 ByteSize _native_receiver_sp_offset;
226 ByteSize _native_basic_lock_sp_offset;
225 227
226 friend class nmethodLocker; 228 friend class nmethodLocker;
227 229
228 // For native wrappers 230 // For native wrappers
229 nmethod(methodOop method, 231 nmethod(methodOop method,
674 676
675 // is it ok to patch at address? 677 // is it ok to patch at address?
676 bool is_patchable_at(address instr_address); 678 bool is_patchable_at(address instr_address);
677 679
678 // UseBiasedLocking support 680 // UseBiasedLocking support
679 ByteSize compiled_synchronized_native_basic_lock_owner_sp_offset() { 681 ByteSize native_receiver_sp_offset() {
680 return _compiled_synchronized_native_basic_lock_owner_sp_offset; 682 return _native_receiver_sp_offset;
681 } 683 }
682 ByteSize compiled_synchronized_native_basic_lock_sp_offset() { 684 ByteSize native_basic_lock_sp_offset() {
683 return _compiled_synchronized_native_basic_lock_sp_offset; 685 return _native_basic_lock_sp_offset;
684 } 686 }
685 687
686 // support for code generation 688 // support for code generation
687 static int verified_entry_point_offset() { return offset_of(nmethod, _verified_entry_point); } 689 static int verified_entry_point_offset() { return offset_of(nmethod, _verified_entry_point); }
688 static int osr_entry_point_offset() { return offset_of(nmethod, _osr_entry_point); } 690 static int osr_entry_point_offset() { return offset_of(nmethod, _osr_entry_point); }