263 |
263 |
264 static inline address from_compiled_entry(EntryKind ek); |
264 static inline address from_compiled_entry(EntryKind ek); |
265 static inline address from_interpreted_entry(EntryKind ek); |
265 static inline address from_interpreted_entry(EntryKind ek); |
266 |
266 |
267 // helpers for decode_method. |
267 // helpers for decode_method. |
268 static methodOop decode_methodOop(methodOop m, int& decode_flags_result); |
268 static methodOop decode_methodOop(methodOop m, int& decode_flags_result); |
269 static methodOop decode_vmtarget(oop vmtarget, int vmindex, oop mtype, klassOop& receiver_limit_result, int& decode_flags_result); |
269 static methodHandle decode_vmtarget(oop vmtarget, int vmindex, oop mtype, KlassHandle& receiver_limit_result, int& decode_flags_result); |
270 static methodOop decode_MemberName(oop mname, klassOop& receiver_limit_result, int& decode_flags_result); |
270 static methodHandle decode_MemberName(oop mname, KlassHandle& receiver_limit_result, int& decode_flags_result); |
271 static methodOop decode_MethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result); |
271 static methodHandle decode_MethodHandle(oop mh, KlassHandle& receiver_limit_result, int& decode_flags_result); |
272 static methodOop decode_DirectMethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result); |
272 static methodHandle decode_DirectMethodHandle(oop mh, KlassHandle& receiver_limit_result, int& decode_flags_result); |
273 static methodOop decode_BoundMethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result); |
273 static methodHandle decode_BoundMethodHandle(oop mh, KlassHandle& receiver_limit_result, int& decode_flags_result); |
274 static methodOop decode_AdapterMethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result); |
274 static methodHandle decode_AdapterMethodHandle(oop mh, KlassHandle& receiver_limit_result, int& decode_flags_result); |
275 |
275 |
276 // Find out how many stack slots an mh pushes or pops. |
276 // Find out how many stack slots an mh pushes or pops. |
277 // The result is *not* reported as a multiple of stack_move_unit(); |
277 // The result is *not* reported as a multiple of stack_move_unit(); |
278 // It is a signed net number of pushes (a difference in vmslots). |
278 // It is a signed net number of pushes (a difference in vmslots). |
279 // To compare with a stack_move value, first multiply by stack_move_unit(). |
279 // To compare with a stack_move value, first multiply by stack_move_unit(). |
315 _dmf_binds_argument = 0x10, |
315 _dmf_binds_argument = 0x10, |
316 _DMF_BOUND_MASK = (_dmf_binds_argument*2 - _dmf_binds_method), |
316 _DMF_BOUND_MASK = (_dmf_binds_argument*2 - _dmf_binds_method), |
317 _dmf_adapter_lsb = 0x20, |
317 _dmf_adapter_lsb = 0x20, |
318 _DMF_ADAPTER_MASK = (_dmf_adapter_lsb << CONV_OP_LIMIT) - _dmf_adapter_lsb |
318 _DMF_ADAPTER_MASK = (_dmf_adapter_lsb << CONV_OP_LIMIT) - _dmf_adapter_lsb |
319 }; |
319 }; |
320 static methodOop decode_method(oop x, klassOop& receiver_limit_result, int& decode_flags_result); |
320 static methodHandle decode_method(oop x, KlassHandle& receiver_limit_result, int& decode_flags_result); |
321 enum { |
321 enum { |
322 // format of query to getConstant: |
322 // format of query to getConstant: |
323 GC_JVM_PUSH_LIMIT = 0, |
323 GC_JVM_PUSH_LIMIT = 0, |
324 GC_JVM_STACK_MOVE_UNIT = 1, |
324 GC_JVM_STACK_MOVE_UNIT = 1, |
325 GC_CONV_OP_IMPLEMENTED_MASK = 2, |
325 GC_CONV_OP_IMPLEMENTED_MASK = 2, |