src/hotspot/share/runtime/sharedRuntime.hpp
changeset 57574 6a159c6c23cc
parent 55293 d19dc5b10fbb
child 57710 05ff6e27de45
equal deleted inserted replaced
57573:7e8f6c56c285 57574:6a159c6c23cc
   634  private:
   634  private:
   635   AdapterFingerPrint* _fingerprint;
   635   AdapterFingerPrint* _fingerprint;
   636   address _i2c_entry;
   636   address _i2c_entry;
   637   address _c2i_entry;
   637   address _c2i_entry;
   638   address _c2i_unverified_entry;
   638   address _c2i_unverified_entry;
       
   639   address _c2i_no_clinit_check_entry;
   639 
   640 
   640 #ifdef ASSERT
   641 #ifdef ASSERT
   641   // Captures code and signature used to generate this adapter when
   642   // Captures code and signature used to generate this adapter when
   642   // verifying adapter equivalence.
   643   // verifying adapter equivalence.
   643   unsigned char* _saved_code;
   644   unsigned char* _saved_code;
   644   int            _saved_code_length;
   645   int            _saved_code_length;
   645 #endif
   646 #endif
   646 
   647 
   647   void init(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry) {
   648   void init(AdapterFingerPrint* fingerprint, address i2c_entry, address c2i_entry, address c2i_unverified_entry, address c2i_no_clinit_check_entry) {
   648     _fingerprint = fingerprint;
   649     _fingerprint = fingerprint;
   649     _i2c_entry = i2c_entry;
   650     _i2c_entry = i2c_entry;
   650     _c2i_entry = c2i_entry;
   651     _c2i_entry = c2i_entry;
   651     _c2i_unverified_entry = c2i_unverified_entry;
   652     _c2i_unverified_entry = c2i_unverified_entry;
       
   653     _c2i_no_clinit_check_entry = c2i_no_clinit_check_entry;
   652 #ifdef ASSERT
   654 #ifdef ASSERT
   653     _saved_code = NULL;
   655     _saved_code = NULL;
   654     _saved_code_length = 0;
   656     _saved_code_length = 0;
   655 #endif
   657 #endif
   656   }
   658   }
   659 
   661 
   660   // should never be used
   662   // should never be used
   661   AdapterHandlerEntry();
   663   AdapterHandlerEntry();
   662 
   664 
   663  public:
   665  public:
   664   address get_i2c_entry()            const { return _i2c_entry; }
   666   address get_i2c_entry()                  const { return _i2c_entry; }
   665   address get_c2i_entry()            const { return _c2i_entry; }
   667   address get_c2i_entry()                  const { return _c2i_entry; }
   666   address get_c2i_unverified_entry() const { return _c2i_unverified_entry; }
   668   address get_c2i_unverified_entry()       const { return _c2i_unverified_entry; }
       
   669   address get_c2i_no_clinit_check_entry()  const { return _c2i_no_clinit_check_entry; }
       
   670 
   667   address base_address();
   671   address base_address();
   668   void relocate(address new_base);
   672   void relocate(address new_base);
   669 
   673 
   670   AdapterFingerPrint* fingerprint() const { return _fingerprint; }
   674   AdapterFingerPrint* fingerprint() const { return _fingerprint; }
   671 
   675 
   707   static AdapterHandlerEntry* get_adapter0(const methodHandle& method);
   711   static AdapterHandlerEntry* get_adapter0(const methodHandle& method);
   708 
   712 
   709  public:
   713  public:
   710 
   714 
   711   static AdapterHandlerEntry* new_entry(AdapterFingerPrint* fingerprint,
   715   static AdapterHandlerEntry* new_entry(AdapterFingerPrint* fingerprint,
   712                                         address i2c_entry, address c2i_entry, address c2i_unverified_entry);
   716                                         address i2c_entry,
       
   717                                         address c2i_entry,
       
   718                                         address c2i_unverified_entry,
       
   719                                         address c2i_no_clinit_check_entry = NULL);
   713   static void create_native_wrapper(const methodHandle& method);
   720   static void create_native_wrapper(const methodHandle& method);
   714   static AdapterHandlerEntry* get_adapter(const methodHandle& method);
   721   static AdapterHandlerEntry* get_adapter(const methodHandle& method);
   715 
   722 
   716   static void print_handler(const CodeBlob* b) { print_handler_on(tty, b); }
   723   static void print_handler(const CodeBlob* b) { print_handler_on(tty, b); }
   717   static void print_handler_on(outputStream* st, const CodeBlob* b);
   724   static void print_handler_on(outputStream* st, const CodeBlob* b);