src/share/vm/prims/methodHandles.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6829193 Sdiff src/share/vm/prims

src/share/vm/prims/methodHandles.hpp

Print this page




 413                                               KlassHandle receiver_klass,
 414                                               TRAPS);
 415 
 416   static bool same_basic_type_for_arguments(BasicType src, BasicType dst,
 417                                             bool raw = false,
 418                                             bool for_return = false);
 419   static bool same_basic_type_for_returns(BasicType src, BasicType dst, bool raw = false) {
 420     return same_basic_type_for_arguments(src, dst, raw, true);
 421   }
 422 
 423   enum {                        // arg_mask values
 424     _INSERT_NO_MASK   = -1,
 425     _INSERT_REF_MASK  = 0,
 426     _INSERT_INT_MASK  = 1,
 427     _INSERT_LONG_MASK = 3
 428   };
 429   static void insert_arg_slots(MacroAssembler* _masm,
 430                                RegisterOrConstant arg_slots,
 431                                int arg_mask,
 432                                Register argslot_reg,
 433                                Register temp_reg, Register temp2_reg);
 434 
 435   static void remove_arg_slots(MacroAssembler* _masm,
 436                                RegisterOrConstant arg_slots,
 437                                Register argslot_reg,
 438                                Register temp_reg, Register temp2_reg);
 439 };
 440 
 441 
 442 // Access methods for the "entry" field of a java.dyn.MethodHandle.
 443 // The field is primarily a jump target for compiled calls.
 444 // However, we squirrel away some nice pointers for other uses,
 445 // just before the jump target.
 446 // Aspects of a method handle entry:
 447 //  - from_compiled_entry - stub used when compiled code calls the MH
 448 //  - from_interpreted_entry - stub used when the interpreter calls the MH
 449 //  - type_checking_entry - stub for runtime casting between MHForm siblings (NYI)
 450 class MethodHandleEntry {
 451  public:
 452   class Data {
 453     friend class MethodHandleEntry;
 454     size_t              _total_size; // size including Data and code stub
 455     MethodHandleEntry*  _type_checking_entry;
 456     address             _from_interpreted_entry;
 457     MethodHandleEntry* method_entry() { return (MethodHandleEntry*)(this + 1); }
 458   };




 413                                               KlassHandle receiver_klass,
 414                                               TRAPS);
 415 
 416   static bool same_basic_type_for_arguments(BasicType src, BasicType dst,
 417                                             bool raw = false,
 418                                             bool for_return = false);
 419   static bool same_basic_type_for_returns(BasicType src, BasicType dst, bool raw = false) {
 420     return same_basic_type_for_arguments(src, dst, raw, true);
 421   }
 422 
 423   enum {                        // arg_mask values
 424     _INSERT_NO_MASK   = -1,
 425     _INSERT_REF_MASK  = 0,
 426     _INSERT_INT_MASK  = 1,
 427     _INSERT_LONG_MASK = 3
 428   };
 429   static void insert_arg_slots(MacroAssembler* _masm,
 430                                RegisterOrConstant arg_slots,
 431                                int arg_mask,
 432                                Register argslot_reg,
 433                                Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
 434 
 435   static void remove_arg_slots(MacroAssembler* _masm,
 436                                RegisterOrConstant arg_slots,
 437                                Register argslot_reg,
 438                                Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
 439 };
 440 
 441 
 442 // Access methods for the "entry" field of a java.dyn.MethodHandle.
 443 // The field is primarily a jump target for compiled calls.
 444 // However, we squirrel away some nice pointers for other uses,
 445 // just before the jump target.
 446 // Aspects of a method handle entry:
 447 //  - from_compiled_entry - stub used when compiled code calls the MH
 448 //  - from_interpreted_entry - stub used when the interpreter calls the MH
 449 //  - type_checking_entry - stub for runtime casting between MHForm siblings (NYI)
 450 class MethodHandleEntry {
 451  public:
 452   class Data {
 453     friend class MethodHandleEntry;
 454     size_t              _total_size; // size including Data and code stub
 455     MethodHandleEntry*  _type_checking_entry;
 456     address             _from_interpreted_entry;
 457     MethodHandleEntry* method_entry() { return (MethodHandleEntry*)(this + 1); }
 458   };


src/share/vm/prims/methodHandles.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File