< prev index next >

src/hotspot/share/code/compiledMethod.hpp

Print this page
rev 47406 : [mq]: assembler_cmpxchg


 271   virtual address handler_table_begin() const = 0;
 272   virtual address handler_table_end() const = 0;
 273   bool handler_table_contains(address addr) const { return handler_table_begin() <= addr && addr < handler_table_end(); }
 274   int handler_table_size() const { return handler_table_end() - handler_table_begin(); }
 275 
 276   virtual address exception_begin() const = 0;
 277 
 278   virtual address nul_chk_table_begin() const = 0;
 279   virtual address nul_chk_table_end() const = 0;
 280   bool nul_chk_table_contains(address addr) const { return nul_chk_table_begin() <= addr && addr < nul_chk_table_end(); }
 281   int nul_chk_table_size() const { return nul_chk_table_end() - nul_chk_table_begin(); }
 282 
 283   virtual oop* oop_addr_at(int index) const = 0;
 284   virtual Metadata** metadata_addr_at(int index) const = 0;
 285   virtual void    set_original_pc(const frame* fr, address pc) = 0;
 286 
 287   // Exception cache support
 288   // Note: _exception_cache may be read concurrently. We rely on memory_order_consume here.
 289   ExceptionCache* exception_cache() const         { return _exception_cache; }
 290   void set_exception_cache(ExceptionCache *ec)    { _exception_cache = ec; }
 291   void release_set_exception_cache(ExceptionCache *ec) { OrderAccess::release_store_ptr(&_exception_cache, ec); }
 292   address handler_for_exception_and_pc(Handle exception, address pc);
 293   void add_handler_for_exception_and_pc(Handle exception, address pc, address handler);
 294   void clean_exception_cache(BoolObjectClosure* is_alive);
 295 
 296   void add_exception_cache_entry(ExceptionCache* new_entry);
 297   ExceptionCache* exception_cache_entry_for_exception(Handle exception);
 298 
 299   // MethodHandle
 300   bool is_method_handle_return(address return_pc);
 301   address deopt_mh_handler_begin() const  { return _deopt_mh_handler_begin; }
 302 
 303   address deopt_handler_begin() const { return _deopt_handler_begin; }
 304   virtual address get_original_pc(const frame* fr) = 0;
 305   // Deopt
 306   // Return true is the PC is one would expect if the frame is being deopted.
 307   bool is_deopt_pc      (address pc) { return is_deopt_entry(pc) || is_deopt_mh_entry(pc); }
 308   bool is_deopt_mh_entry(address pc) { return pc == deopt_mh_handler_begin(); }
 309   bool is_deopt_entry(address pc);
 310 
 311   virtual bool can_convert_to_zombie() = 0;




 271   virtual address handler_table_begin() const = 0;
 272   virtual address handler_table_end() const = 0;
 273   bool handler_table_contains(address addr) const { return handler_table_begin() <= addr && addr < handler_table_end(); }
 274   int handler_table_size() const { return handler_table_end() - handler_table_begin(); }
 275 
 276   virtual address exception_begin() const = 0;
 277 
 278   virtual address nul_chk_table_begin() const = 0;
 279   virtual address nul_chk_table_end() const = 0;
 280   bool nul_chk_table_contains(address addr) const { return nul_chk_table_begin() <= addr && addr < nul_chk_table_end(); }
 281   int nul_chk_table_size() const { return nul_chk_table_end() - nul_chk_table_begin(); }
 282 
 283   virtual oop* oop_addr_at(int index) const = 0;
 284   virtual Metadata** metadata_addr_at(int index) const = 0;
 285   virtual void    set_original_pc(const frame* fr, address pc) = 0;
 286 
 287   // Exception cache support
 288   // Note: _exception_cache may be read concurrently. We rely on memory_order_consume here.
 289   ExceptionCache* exception_cache() const         { return _exception_cache; }
 290   void set_exception_cache(ExceptionCache *ec)    { _exception_cache = ec; }
 291   void release_set_exception_cache(ExceptionCache *ec) { OrderAccess::release_store(&_exception_cache, ec); }
 292   address handler_for_exception_and_pc(Handle exception, address pc);
 293   void add_handler_for_exception_and_pc(Handle exception, address pc, address handler);
 294   void clean_exception_cache(BoolObjectClosure* is_alive);
 295 
 296   void add_exception_cache_entry(ExceptionCache* new_entry);
 297   ExceptionCache* exception_cache_entry_for_exception(Handle exception);
 298 
 299   // MethodHandle
 300   bool is_method_handle_return(address return_pc);
 301   address deopt_mh_handler_begin() const  { return _deopt_mh_handler_begin; }
 302 
 303   address deopt_handler_begin() const { return _deopt_handler_begin; }
 304   virtual address get_original_pc(const frame* fr) = 0;
 305   // Deopt
 306   // Return true is the PC is one would expect if the frame is being deopted.
 307   bool is_deopt_pc      (address pc) { return is_deopt_entry(pc) || is_deopt_mh_entry(pc); }
 308   bool is_deopt_mh_entry(address pc) { return pc == deopt_mh_handler_begin(); }
 309   bool is_deopt_entry(address pc);
 310 
 311   virtual bool can_convert_to_zombie() = 0;


< prev index next >