src/share/vm/prims/methodHandles.hpp

changeset 2806
2a23b1b5a0a8
parent 2639
8033953d67ff
child 2895
167b70ff3abc
equal deleted inserted replaced
2767:97e8046e2562 2806:2a23b1b5a0a8
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,

mercurial