Mercurial > hg > graal-jvmci-8
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); } |