< prev index next >

src/hotspot/share/runtime/stubRoutines.hpp

Print this page

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



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

463   static address hf2f_adr()            { return _hf2f; }
464 
465   static jshort f2hf(jfloat x) {
466     assert(_f2hf != nullptr, "stub is not implemented on this platform");
467     MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXExec, Thread::current());) // About to call into code cache
468     typedef jshort (*f2hf_stub_t)(jfloat x);
469     return ((f2hf_stub_t)_f2hf)(x);
470   }
471   static jfloat hf2f(jshort x) {
472     assert(_hf2f != nullptr, "stub is not implemented on this platform");
473     MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXExec, Thread::current());) // About to call into code cache
474     typedef jfloat (*hf2f_stub_t)(jshort x);
475     return ((hf2f_stub_t)_hf2f)(x);
476   }
477 
478   static address method_entry_barrier() { return _method_entry_barrier; }
479 
480   static address cont_thaw()           { return _cont_thaw; }
481   static address cont_returnBarrier()  { return _cont_returnBarrier; }
482   static address cont_returnBarrierExc(){return _cont_returnBarrierExc; }



483 
484   JFR_ONLY(static address jfr_write_checkpoint() { return _jfr_write_checkpoint; })
485   JFR_ONLY(static address jfr_return_lease() { return _jfr_return_lease; })
486 
487   static address upcall_stub_exception_handler() {
488     assert(_upcall_stub_exception_handler != nullptr, "not implemented");
489     return _upcall_stub_exception_handler;
490   }
491 
492   static address lookup_secondary_supers_table_stub(u1 slot) {
493     assert(slot < Klass::SECONDARY_SUPERS_TABLE_SIZE, "out of bounds");
494     assert(_lookup_secondary_supers_table_stubs[slot] != nullptr, "not implemented");
495     return _lookup_secondary_supers_table_stubs[slot];
496   }
497 
498   static address lookup_secondary_supers_table_slow_path_stub() {
499     assert(_lookup_secondary_supers_table_slow_path_stub != nullptr, "not implemented");
500     return _lookup_secondary_supers_table_slow_path_stub;
501   }
502 

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

466   static address hf2f_adr()            { return _hf2f; }
467 
468   static jshort f2hf(jfloat x) {
469     assert(_f2hf != nullptr, "stub is not implemented on this platform");
470     MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXExec, Thread::current());) // About to call into code cache
471     typedef jshort (*f2hf_stub_t)(jfloat x);
472     return ((f2hf_stub_t)_f2hf)(x);
473   }
474   static jfloat hf2f(jshort x) {
475     assert(_hf2f != nullptr, "stub is not implemented on this platform");
476     MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXExec, Thread::current());) // About to call into code cache
477     typedef jfloat (*hf2f_stub_t)(jshort x);
478     return ((hf2f_stub_t)_hf2f)(x);
479   }
480 
481   static address method_entry_barrier() { return _method_entry_barrier; }
482 
483   static address cont_thaw()           { return _cont_thaw; }
484   static address cont_returnBarrier()  { return _cont_returnBarrier; }
485   static address cont_returnBarrierExc(){return _cont_returnBarrierExc; }
486   static address cont_preempt_stub()   { return _cont_preempt_stub; }
487   static address cont_preempt_monitorenter_redo()   { return _cont_preempt_monitorenter_redo; }
488   static address cont_preempt_rerun_compiler_adapter() { return _cont_preempt_rerun_compiler_adapter; }
489 
490   JFR_ONLY(static address jfr_write_checkpoint() { return _jfr_write_checkpoint; })
491   JFR_ONLY(static address jfr_return_lease() { return _jfr_return_lease; })
492 
493   static address upcall_stub_exception_handler() {
494     assert(_upcall_stub_exception_handler != nullptr, "not implemented");
495     return _upcall_stub_exception_handler;
496   }
497 
498   static address lookup_secondary_supers_table_stub(u1 slot) {
499     assert(slot < Klass::SECONDARY_SUPERS_TABLE_SIZE, "out of bounds");
500     assert(_lookup_secondary_supers_table_stubs[slot] != nullptr, "not implemented");
501     return _lookup_secondary_supers_table_stubs[slot];
502   }
503 
504   static address lookup_secondary_supers_table_slow_path_stub() {
505     assert(_lookup_secondary_supers_table_slow_path_stub != nullptr, "not implemented");
506     return _lookup_secondary_supers_table_slow_path_stub;
507   }
508 
< prev index next >