< prev index next >

src/hotspot/share/runtime/stubRoutines.hpp

Print this page

246   static address _dsin;
247   static address _dcos;
248   static address _dlibm_sin_cos_huge;
249   static address _dlibm_reduce_pi04l;
250   static address _dlibm_tan_cot_huge;
251   static address _dtan;
252   static address _fmod;
253 
254   static address _f2hf;
255   static address _hf2f;
256 
257   static address _cont_thaw;
258   static address _cont_returnBarrier;
259   static address _cont_returnBarrierExc;
260 
261   JFR_ONLY(static RuntimeStub* _jfr_write_checkpoint_stub;)
262   JFR_ONLY(static address _jfr_write_checkpoint;)
263   JFR_ONLY(static RuntimeStub* _jfr_return_lease_stub;)
264   JFR_ONLY(static address _jfr_return_lease;)
265 



266   // Vector Math Routines
267   static address _vector_f_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP];
268   static address _vector_d_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP];
269 
270  public:
271   // Initialization/Testing
272   static void    initialize_initial_stubs();               // must happen before universe::genesis
273   static void    initialize_continuation_stubs();          // must happen after  universe::genesis
274   static void    initialize_compiler_stubs();              // must happen after  universe::genesis
275   static void    initialize_final_stubs();                 // must happen after  universe::genesis
276 
277   static bool is_stub_code(address addr)                   { return contains(addr); }
278 
279   static bool contains(address addr) {
280     return
281       (_initial_stubs_code      != nullptr && _initial_stubs_code->blob_contains(addr))  ||
282       (_continuation_stubs_code != nullptr && _continuation_stubs_code->blob_contains(addr)) ||
283       (_compiler_stubs_code     != nullptr && _compiler_stubs_code->blob_contains(addr)) ||
284       (_final_stubs_code        != nullptr && _final_stubs_code->blob_contains(addr)) ;
285   }

463 
464   static address select_fill_function(BasicType t, bool aligned, const char* &name);
465 
466   //
467   // Default versions of the above arraycopy functions for platforms which do
468   // not have specialized versions
469   //
470   static void jbyte_copy     (jbyte*  src, jbyte*  dest, size_t count);
471   static void jshort_copy    (jshort* src, jshort* dest, size_t count);
472   static void jint_copy      (jint*   src, jint*   dest, size_t count);
473   static void jlong_copy     (jlong*  src, jlong*  dest, size_t count);
474   static void oop_copy       (oop*    src, oop*    dest, size_t count);
475   static void oop_copy_uninit(oop*    src, oop*    dest, size_t count);
476 
477   static void arrayof_jbyte_copy     (HeapWord* src, HeapWord* dest, size_t count);
478   static void arrayof_jshort_copy    (HeapWord* src, HeapWord* dest, size_t count);
479   static void arrayof_jint_copy      (HeapWord* src, HeapWord* dest, size_t count);
480   static void arrayof_jlong_copy     (HeapWord* src, HeapWord* dest, size_t count);
481   static void arrayof_oop_copy       (HeapWord* src, HeapWord* dest, size_t count);
482   static void arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count);



483 };
484 
485 #endif // SHARE_RUNTIME_STUBROUTINES_HPP

246   static address _dsin;
247   static address _dcos;
248   static address _dlibm_sin_cos_huge;
249   static address _dlibm_reduce_pi04l;
250   static address _dlibm_tan_cot_huge;
251   static address _dtan;
252   static address _fmod;
253 
254   static address _f2hf;
255   static address _hf2f;
256 
257   static address _cont_thaw;
258   static address _cont_returnBarrier;
259   static address _cont_returnBarrierExc;
260 
261   JFR_ONLY(static RuntimeStub* _jfr_write_checkpoint_stub;)
262   JFR_ONLY(static address _jfr_write_checkpoint;)
263   JFR_ONLY(static RuntimeStub* _jfr_return_lease_stub;)
264   JFR_ONLY(static address _jfr_return_lease;)
265 
266   static address _load_inline_type_fields_in_regs;
267   static address _store_inline_type_fields_to_buf;
268 
269   // Vector Math Routines
270   static address _vector_f_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP];
271   static address _vector_d_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP];
272 
273  public:
274   // Initialization/Testing
275   static void    initialize_initial_stubs();               // must happen before universe::genesis
276   static void    initialize_continuation_stubs();          // must happen after  universe::genesis
277   static void    initialize_compiler_stubs();              // must happen after  universe::genesis
278   static void    initialize_final_stubs();                 // must happen after  universe::genesis
279 
280   static bool is_stub_code(address addr)                   { return contains(addr); }
281 
282   static bool contains(address addr) {
283     return
284       (_initial_stubs_code      != nullptr && _initial_stubs_code->blob_contains(addr))  ||
285       (_continuation_stubs_code != nullptr && _continuation_stubs_code->blob_contains(addr)) ||
286       (_compiler_stubs_code     != nullptr && _compiler_stubs_code->blob_contains(addr)) ||
287       (_final_stubs_code        != nullptr && _final_stubs_code->blob_contains(addr)) ;
288   }

466 
467   static address select_fill_function(BasicType t, bool aligned, const char* &name);
468 
469   //
470   // Default versions of the above arraycopy functions for platforms which do
471   // not have specialized versions
472   //
473   static void jbyte_copy     (jbyte*  src, jbyte*  dest, size_t count);
474   static void jshort_copy    (jshort* src, jshort* dest, size_t count);
475   static void jint_copy      (jint*   src, jint*   dest, size_t count);
476   static void jlong_copy     (jlong*  src, jlong*  dest, size_t count);
477   static void oop_copy       (oop*    src, oop*    dest, size_t count);
478   static void oop_copy_uninit(oop*    src, oop*    dest, size_t count);
479 
480   static void arrayof_jbyte_copy     (HeapWord* src, HeapWord* dest, size_t count);
481   static void arrayof_jshort_copy    (HeapWord* src, HeapWord* dest, size_t count);
482   static void arrayof_jint_copy      (HeapWord* src, HeapWord* dest, size_t count);
483   static void arrayof_jlong_copy     (HeapWord* src, HeapWord* dest, size_t count);
484   static void arrayof_oop_copy       (HeapWord* src, HeapWord* dest, size_t count);
485   static void arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count);
486 
487   static address load_inline_type_fields_in_regs() { return _load_inline_type_fields_in_regs; }
488   static address store_inline_type_fields_to_buf() { return _store_inline_type_fields_to_buf; }
489 };
490 
491 #endif // SHARE_RUNTIME_STUBROUTINES_HPP
< prev index next >