hotspot/src/share/vm/runtime/sharedRuntime.hpp
changeset 9976 6fef34e63df1
parent 9630 d6419e4395e3
child 10004 190e88f7edd1
equal deleted inserted replaced
9975:82190b49ce14 9976:6fef34e63df1
    50                                      bool is_virtual,
    50                                      bool is_virtual,
    51                                      bool is_optimized, TRAPS);
    51                                      bool is_optimized, TRAPS);
    52 
    52 
    53   // Shared stub locations
    53   // Shared stub locations
    54 
    54 
    55   static RuntimeStub* _wrong_method_blob;
    55   static RuntimeStub*        _wrong_method_blob;
    56   static RuntimeStub* _ic_miss_blob;
    56   static RuntimeStub*        _ic_miss_blob;
    57   static RuntimeStub* _resolve_opt_virtual_call_blob;
    57   static RuntimeStub*        _resolve_opt_virtual_call_blob;
    58   static RuntimeStub* _resolve_virtual_call_blob;
    58   static RuntimeStub*        _resolve_virtual_call_blob;
    59   static RuntimeStub* _resolve_static_call_blob;
    59   static RuntimeStub*        _resolve_static_call_blob;
    60 
    60 
    61   static RicochetBlob* _ricochet_blob;
    61   static DeoptimizationBlob* _deopt_blob;
    62 
    62   static RicochetBlob*       _ricochet_blob;
    63   static SafepointBlob* _polling_page_safepoint_handler_blob;
    63 
    64   static SafepointBlob* _polling_page_return_handler_blob;
    64   static SafepointBlob*      _polling_page_safepoint_handler_blob;
       
    65   static SafepointBlob*      _polling_page_return_handler_blob;
       
    66 
    65 #ifdef COMPILER2
    67 #ifdef COMPILER2
    66   static ExceptionBlob*       _exception_blob;
    68   static UncommonTrapBlob*   _uncommon_trap_blob;
    67   static UncommonTrapBlob*    _uncommon_trap_blob;
       
    68 #endif // COMPILER2
    69 #endif // COMPILER2
    69 
    70 
    70 #ifndef PRODUCT
    71 #ifndef PRODUCT
    71 
       
    72   // Counters
    72   // Counters
    73   static int     _nof_megamorphic_calls;         // total # of megamorphic calls (through vtable)
    73   static int     _nof_megamorphic_calls;         // total # of megamorphic calls (through vtable)
    74 
       
    75 #endif // !PRODUCT
    74 #endif // !PRODUCT
       
    75 
       
    76  private:
       
    77   static SafepointBlob* generate_handler_blob(address call_ptr, bool cause_return);
       
    78   static RuntimeStub*   generate_resolve_blob(address destination, const char* name);
       
    79 
    76  public:
    80  public:
       
    81   static void generate_stubs(void);
    77 
    82 
    78   // max bytes for each dtrace string parameter
    83   // max bytes for each dtrace string parameter
    79   enum { max_dtrace_string_size = 256 };
    84   enum { max_dtrace_string_size = 256 };
    80 
    85 
    81   // The following arithmetic routines are used on platforms that do
    86   // The following arithmetic routines are used on platforms that do
   324   // compiled code.
   329   // compiled code.
   325   static methodHandle resolve_helper(JavaThread *thread,
   330   static methodHandle resolve_helper(JavaThread *thread,
   326                                      bool is_virtual,
   331                                      bool is_virtual,
   327                                      bool is_optimized, TRAPS);
   332                                      bool is_optimized, TRAPS);
   328 
   333 
   329   static void generate_stubs(void);
       
   330 
       
   331   private:
   334   private:
   332   // deopt blob
   335   // deopt blob
   333   static void generate_deopt_blob(void);
   336   static void generate_deopt_blob(void);
   334   static DeoptimizationBlob* _deopt_blob;
       
   335 
   337 
   336   public:
   338   public:
   337   static DeoptimizationBlob* deopt_blob(void)      { return _deopt_blob; }
   339   static DeoptimizationBlob* deopt_blob(void)      { return _deopt_blob; }
   338 
   340 
   339   // Resets a call-site in compiled code so it will get resolved again.
   341   // Resets a call-site in compiled code so it will get resolved again.