< prev index next >

src/hotspot/share/runtime/stubRoutines.hpp

Print this page

245   static address _dexp;
246   static address _dlog;
247   static address _dlog10;
248   static address _dpow;
249   static address _dsin;
250   static address _dcos;
251   static address _dlibm_sin_cos_huge;
252   static address _dlibm_reduce_pi04l;
253   static address _dlibm_tan_cot_huge;
254   static address _dtan;
255   static address _fmod;
256 
257   static address _f2hf;
258   static address _hf2f;
259 
260   static address _method_entry_barrier;
261 
262   static address _cont_thaw;
263   static address _cont_returnBarrier;
264   static address _cont_returnBarrierExc;



265 
266   JFR_ONLY(static RuntimeStub* _jfr_write_checkpoint_stub;)
267   JFR_ONLY(static address _jfr_write_checkpoint;)
268   JFR_ONLY(static RuntimeStub* _jfr_return_lease_stub;)
269   JFR_ONLY(static address _jfr_return_lease;)
270 
271   // Vector Math Routines
272   static address _vector_f_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP];
273   static address _vector_d_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP];
274 
275   static address _upcall_stub_exception_handler;
276 
277  public:
278   // Initialization/Testing
279   static void    initialize_initial_stubs();               // must happen before universe::genesis
280   static void    initialize_continuation_stubs();          // must happen after  universe::genesis
281   static void    initialize_compiler_stubs();              // must happen after  universe::genesis
282   static void    initialize_final_stubs();                 // must happen after  universe::genesis
283 
284   static bool is_stub_code(address addr)                   { return contains(addr); }

453   static address hf2f_adr()            { return _hf2f; }
454 
455   static jshort f2hf(jfloat x) {
456     assert(_f2hf != nullptr, "stub is not implemented on this platform");
457     MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXExec, Thread::current());) // About to call into code cache
458     typedef jshort (*f2hf_stub_t)(jfloat x);
459     return ((f2hf_stub_t)_f2hf)(x);
460   }
461   static jfloat hf2f(jshort x) {
462     assert(_hf2f != nullptr, "stub is not implemented on this platform");
463     MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXExec, Thread::current());) // About to call into code cache
464     typedef jfloat (*hf2f_stub_t)(jshort x);
465     return ((hf2f_stub_t)_hf2f)(x);
466   }
467 
468   static address method_entry_barrier() { return _method_entry_barrier; }
469 
470   static address cont_thaw()           { return _cont_thaw; }
471   static address cont_returnBarrier()  { return _cont_returnBarrier; }
472   static address cont_returnBarrierExc(){return _cont_returnBarrierExc; }



473 
474   JFR_ONLY(static address jfr_write_checkpoint() { return _jfr_write_checkpoint; })
475   JFR_ONLY(static address jfr_return_lease() { return _jfr_return_lease; })
476 
477   static address upcall_stub_exception_handler() {
478     assert(_upcall_stub_exception_handler != nullptr, "not implemented");
479     return _upcall_stub_exception_handler;
480   }
481 
482   static address select_fill_function(BasicType t, bool aligned, const char* &name);
483 
484   //
485   // Default versions of the above arraycopy functions for platforms which do
486   // not have specialized versions
487   //
488   static void jbyte_copy     (jbyte*  src, jbyte*  dest, size_t count);
489   static void jshort_copy    (jshort* src, jshort* dest, size_t count);
490   static void jint_copy      (jint*   src, jint*   dest, size_t count);
491   static void jlong_copy     (jlong*  src, jlong*  dest, size_t count);
492   static void oop_copy       (oop*    src, oop*    dest, size_t count);

245   static address _dexp;
246   static address _dlog;
247   static address _dlog10;
248   static address _dpow;
249   static address _dsin;
250   static address _dcos;
251   static address _dlibm_sin_cos_huge;
252   static address _dlibm_reduce_pi04l;
253   static address _dlibm_tan_cot_huge;
254   static address _dtan;
255   static address _fmod;
256 
257   static address _f2hf;
258   static address _hf2f;
259 
260   static address _method_entry_barrier;
261 
262   static address _cont_thaw;
263   static address _cont_returnBarrier;
264   static address _cont_returnBarrierExc;
265   static address _cont_preempt_stub;
266   static address _cont_preempt_monitorenter_redo;
267   static address _cont_preempt_rerun_compiler_adapter;
268 
269   JFR_ONLY(static RuntimeStub* _jfr_write_checkpoint_stub;)
270   JFR_ONLY(static address _jfr_write_checkpoint;)
271   JFR_ONLY(static RuntimeStub* _jfr_return_lease_stub;)
272   JFR_ONLY(static address _jfr_return_lease;)
273 
274   // Vector Math Routines
275   static address _vector_f_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP];
276   static address _vector_d_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP];
277 
278   static address _upcall_stub_exception_handler;
279 
280  public:
281   // Initialization/Testing
282   static void    initialize_initial_stubs();               // must happen before universe::genesis
283   static void    initialize_continuation_stubs();          // must happen after  universe::genesis
284   static void    initialize_compiler_stubs();              // must happen after  universe::genesis
285   static void    initialize_final_stubs();                 // must happen after  universe::genesis
286 
287   static bool is_stub_code(address addr)                   { return contains(addr); }

456   static address hf2f_adr()            { return _hf2f; }
457 
458   static jshort f2hf(jfloat x) {
459     assert(_f2hf != nullptr, "stub is not implemented on this platform");
460     MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXExec, Thread::current());) // About to call into code cache
461     typedef jshort (*f2hf_stub_t)(jfloat x);
462     return ((f2hf_stub_t)_f2hf)(x);
463   }
464   static jfloat hf2f(jshort x) {
465     assert(_hf2f != nullptr, "stub is not implemented on this platform");
466     MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXExec, Thread::current());) // About to call into code cache
467     typedef jfloat (*hf2f_stub_t)(jshort x);
468     return ((hf2f_stub_t)_hf2f)(x);
469   }
470 
471   static address method_entry_barrier() { return _method_entry_barrier; }
472 
473   static address cont_thaw()           { return _cont_thaw; }
474   static address cont_returnBarrier()  { return _cont_returnBarrier; }
475   static address cont_returnBarrierExc(){return _cont_returnBarrierExc; }
476   static address cont_preempt_stub()   { return _cont_preempt_stub; }
477   static address cont_preempt_monitorenter_redo()   { return _cont_preempt_monitorenter_redo; }
478   static address cont_preempt_rerun_compiler_adapter() { return _cont_preempt_rerun_compiler_adapter; }
479 
480   JFR_ONLY(static address jfr_write_checkpoint() { return _jfr_write_checkpoint; })
481   JFR_ONLY(static address jfr_return_lease() { return _jfr_return_lease; })
482 
483   static address upcall_stub_exception_handler() {
484     assert(_upcall_stub_exception_handler != nullptr, "not implemented");
485     return _upcall_stub_exception_handler;
486   }
487 
488   static address select_fill_function(BasicType t, bool aligned, const char* &name);
489 
490   //
491   // Default versions of the above arraycopy functions for platforms which do
492   // not have specialized versions
493   //
494   static void jbyte_copy     (jbyte*  src, jbyte*  dest, size_t count);
495   static void jshort_copy    (jshort* src, jshort* dest, size_t count);
496   static void jint_copy      (jint*   src, jint*   dest, size_t count);
497   static void jlong_copy     (jlong*  src, jlong*  dest, size_t count);
498   static void oop_copy       (oop*    src, oop*    dest, size_t count);
< prev index next >