hotspot/src/share/vm/runtime/sharedRuntime.hpp
changeset 13883 6979b9850feb
parent 13881 a326d528f3e1
child 15482 470d0b0c09f1
equal deleted inserted replaced
13882:80d5d0d21b75 13883:6979b9850feb
    60   static RuntimeStub*        _resolve_virtual_call_blob;
    60   static RuntimeStub*        _resolve_virtual_call_blob;
    61   static RuntimeStub*        _resolve_static_call_blob;
    61   static RuntimeStub*        _resolve_static_call_blob;
    62 
    62 
    63   static DeoptimizationBlob* _deopt_blob;
    63   static DeoptimizationBlob* _deopt_blob;
    64 
    64 
       
    65   static SafepointBlob*      _polling_page_vectors_safepoint_handler_blob;
    65   static SafepointBlob*      _polling_page_safepoint_handler_blob;
    66   static SafepointBlob*      _polling_page_safepoint_handler_blob;
    66   static SafepointBlob*      _polling_page_return_handler_blob;
    67   static SafepointBlob*      _polling_page_return_handler_blob;
    67 
    68 
    68 #ifdef COMPILER2
    69 #ifdef COMPILER2
    69   static UncommonTrapBlob*   _uncommon_trap_blob;
    70   static UncommonTrapBlob*   _uncommon_trap_blob;
    73   // Counters
    74   // Counters
    74   static int     _nof_megamorphic_calls;         // total # of megamorphic calls (through vtable)
    75   static int     _nof_megamorphic_calls;         // total # of megamorphic calls (through vtable)
    75 #endif // !PRODUCT
    76 #endif // !PRODUCT
    76 
    77 
    77  private:
    78  private:
    78   static SafepointBlob* generate_handler_blob(address call_ptr, bool cause_return);
    79   enum { POLL_AT_RETURN,  POLL_AT_LOOP, POLL_AT_VECTOR_LOOP };
       
    80   static SafepointBlob* generate_handler_blob(address call_ptr, int poll_type);
    79   static RuntimeStub*   generate_resolve_blob(address destination, const char* name);
    81   static RuntimeStub*   generate_resolve_blob(address destination, const char* name);
    80 
    82 
    81  public:
    83  public:
    82   static void generate_stubs(void);
    84   static void generate_stubs(void);
    83 
    85 
   221     return _resolve_static_call_blob->entry_point();
   223     return _resolve_static_call_blob->entry_point();
   222   }
   224   }
   223 
   225 
   224   static SafepointBlob* polling_page_return_handler_blob()     { return _polling_page_return_handler_blob; }
   226   static SafepointBlob* polling_page_return_handler_blob()     { return _polling_page_return_handler_blob; }
   225   static SafepointBlob* polling_page_safepoint_handler_blob()  { return _polling_page_safepoint_handler_blob; }
   227   static SafepointBlob* polling_page_safepoint_handler_blob()  { return _polling_page_safepoint_handler_blob; }
       
   228   static SafepointBlob* polling_page_vectors_safepoint_handler_blob()  { return _polling_page_vectors_safepoint_handler_blob; }
   226 
   229 
   227   // Counters
   230   // Counters
   228 #ifndef PRODUCT
   231 #ifndef PRODUCT
   229   static address nof_megamorphic_calls_addr() { return (address)&_nof_megamorphic_calls; }
   232   static address nof_megamorphic_calls_addr() { return (address)&_nof_megamorphic_calls; }
   230 #endif // PRODUCT
   233 #endif // PRODUCT
   413   // otherwise be preserved.
   416   // otherwise be preserved.
   414   // On Intel these are not necessary and the value can be zero.
   417   // On Intel these are not necessary and the value can be zero.
   415   // On Sparc this describes the words reserved for storing a register window
   418   // On Sparc this describes the words reserved for storing a register window
   416   // when an interrupt occurs.
   419   // when an interrupt occurs.
   417   static uint out_preserve_stack_slots();
   420   static uint out_preserve_stack_slots();
       
   421 
       
   422   // Is vector's size (in bytes) bigger than a size saved by default?
       
   423   // For example, on x86 16 bytes XMM registers are saved by default.
       
   424   static bool is_wide_vector(int size);
   418 
   425 
   419   // Save and restore a native result
   426   // Save and restore a native result
   420   static void    save_native_result(MacroAssembler *_masm, BasicType ret_type, int frame_slots );
   427   static void    save_native_result(MacroAssembler *_masm, BasicType ret_type, int frame_slots );
   421   static void restore_native_result(MacroAssembler *_masm, BasicType ret_type, int frame_slots );
   428   static void restore_native_result(MacroAssembler *_masm, BasicType ret_type, int frame_slots );
   422 
   429