< prev index next >

src/hotspot/share/runtime/stubRoutines.hpp

Print this page
*** 151,11 ***
    static address _atomic_add_entry;
    static address _atomic_add_long_entry;
    static address _fence_entry;
  
    static BufferBlob* _code1;                               // code buffer for initial routines
!   static BufferBlob* _code2;                               // code buffer for all other routines
  
    // Leaf routines which implement arraycopy and their addresses
    // arraycopy operands aligned on element type boundary
    static address _jbyte_arraycopy;
    static address _jshort_arraycopy;
--- 151,12 ---
    static address _atomic_add_entry;
    static address _atomic_add_long_entry;
    static address _fence_entry;
  
    static BufferBlob* _code1;                               // code buffer for initial routines
!   static BufferBlob* _code2;
+   static BufferBlob* _code3;                               // code buffer for all other routines
  
    // Leaf routines which implement arraycopy and their addresses
    // arraycopy operands aligned on element type boundary
    static address _jbyte_arraycopy;
    static address _jshort_arraycopy;

*** 166,10 ***
--- 167,16 ---
    static address _jshort_disjoint_arraycopy;
    static address _jint_disjoint_arraycopy;
    static address _jlong_disjoint_arraycopy;
    static address _oop_disjoint_arraycopy, _oop_disjoint_arraycopy_uninit;
  
+   static bool _has_word_memcpy;
+   static address _word_memcpy_up;
+   static address _word_memcpy_down;
+   static address _word_memcpy_up_nt;
+   static address _word_memcpy_down_nt;
+ 
    // arraycopy operands aligned on zero'th element boundary
    // These are identical to the ones aligned aligned on an
    // element type boundary, except that they assume that both
    // source and destination are HeapWord aligned.
    static address _arrayof_jbyte_arraycopy;

*** 248,10 ***
--- 255,21 ---
    static address _dlibm_sin_cos_huge;
    static address _dlibm_reduce_pi04l;
    static address _dlibm_tan_cot_huge;
    static address _dtan;
  
+   static RuntimeStub* _cont_doYield_stub;
+   static address _cont_doYield;
+   static address _cont_jump_from_sp;
+   static address _cont_thaw;
+   static address _cont_returnBarrier;
+   static address _cont_returnBarrierExc;
+   static address _cont_interpreter_forced_preempt_return;
+ 
+   JFR_ONLY(static address _jfr_write_checkpoint;)
+   JFR_ONLY(static address _jfr_get_event_writer;)
+ 
    // Safefetch stubs.
    static address _safefetch32_entry;
    static address _safefetch32_fault_pc;
    static address _safefetch32_continuation_pc;
    static address _safefetchN_entry;

*** 264,10 ***
--- 282,11 ---
  
   public:
    // Initialization/Testing
    static void    initialize1();                            // must happen before universe::genesis
    static void    initialize2();                            // must happen after  universe::genesis
+   static void    initializeContinuationStubs();            // must happen after  universe::genesis
  
    static bool is_stub_code(address addr)                   { return contains(addr); }
  
    static bool contains(address addr) {
      return

*** 275,10 ***
--- 294,11 ---
        (_code2 != NULL && _code2->blob_contains(addr)) ;
    }
  
    static RuntimeBlob* code1() { return _code1; }
    static RuntimeBlob* code2() { return _code2; }
+   static RuntimeBlob* code3() { return _code3; }
  
    // Debugging
    static jint    verify_oop_count()                        { return _verify_oop_count; }
    static jint*   verify_oop_count_addr()                   { return &_verify_oop_count; }
    // a subroutine for debugging the GC

*** 323,10 ***
--- 343,17 ---
  
    static address jbyte_arraycopy()  { return _jbyte_arraycopy; }
    static address jshort_arraycopy() { return _jshort_arraycopy; }
    static address jint_arraycopy()   { return _jint_arraycopy; }
    static address jlong_arraycopy()  { return _jlong_arraycopy; }
+ 
+   static bool has_word_memcpy()        { return _has_word_memcpy; }
+   static address word_memcpy_up()      { return _word_memcpy_up; }
+   static address word_memcpy_up_nt()   { return _word_memcpy_up_nt; }
+   static address word_memcpy_down()    { return _word_memcpy_down; }
+   static address word_memcpy_down_nt() { return _word_memcpy_down_nt; }
+ 
    static address oop_arraycopy(bool dest_uninitialized = false) {
      return dest_uninitialized ? _oop_arraycopy_uninit : _oop_arraycopy;
    }
    static address jbyte_disjoint_arraycopy()  { return _jbyte_disjoint_arraycopy; }
    static address jshort_disjoint_arraycopy() { return _jshort_disjoint_arraycopy; }

*** 424,10 ***
--- 451,22 ---
    static address dlibm_reduce_pi04l()  { return _dlibm_reduce_pi04l; }
    static address dlibm_sin_cos_huge()  { return _dlibm_sin_cos_huge; }
    static address dlibm_tan_cot_huge()  { return _dlibm_tan_cot_huge; }
    static address dtan()                { return _dtan; }
  
+   static RuntimeStub* cont_doYield_stub() { return _cont_doYield_stub; }
+   static address cont_doYield()        { return _cont_doYield; }
+   static address cont_jump_from_sp()   { return _cont_jump_from_sp; }
+   static address cont_thaw()           { return _cont_thaw; }
+   static address cont_returnBarrier()  { return _cont_returnBarrier; }
+   static address cont_returnBarrierExc(){return _cont_returnBarrierExc; }
+   static address cont_interpreter_forced_preempt_return() { return _cont_interpreter_forced_preempt_return; }
+ 
+   JFR_ONLY(static address jfr_write_checkpoint() { return _jfr_write_checkpoint; })
+   JFR_ONLY(static address jfr_get_event_writer() { return _jfr_get_event_writer; })
+ 
+ 
    static address select_fill_function(BasicType t, bool aligned, const char* &name);
  
    //
    // Safefetch stub support
    //
< prev index next >