hotspot/src/share/vm/prims/methodHandles.hpp
changeset 9323 20cc2230dc8a
parent 8676 9098d4e927e1
child 9630 d6419e4395e3
equal deleted inserted replaced
9141:b9b83b001cac 9323:20cc2230dc8a
   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,