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); }
285
286 static bool contains(address addr) {
287 return
288 (_initial_stubs_code != nullptr && _initial_stubs_code->blob_contains(addr)) ||
289 (_continuation_stubs_code != nullptr && _continuation_stubs_code->blob_contains(addr)) ||
290 (_compiler_stubs_code != nullptr && _compiler_stubs_code->blob_contains(addr)) ||
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);
493 static void oop_copy_uninit(oop* src, oop* dest, size_t count);
494
495 static void arrayof_jbyte_copy (HeapWord* src, HeapWord* dest, size_t count);
496 static void arrayof_jshort_copy (HeapWord* src, HeapWord* dest, size_t count);
497 static void arrayof_jint_copy (HeapWord* src, HeapWord* dest, size_t count);
498 static void arrayof_jlong_copy (HeapWord* src, HeapWord* dest, size_t count);
499 static void arrayof_oop_copy (HeapWord* src, HeapWord* dest, size_t count);
500 static void arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count);
501 };
502
503 #endif // SHARE_RUNTIME_STUBROUTINES_HPP
|
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 static address _load_inline_type_fields_in_regs;
272 static address _store_inline_type_fields_to_buf;
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); }
288
289 static bool contains(address addr) {
290 return
291 (_initial_stubs_code != nullptr && _initial_stubs_code->blob_contains(addr)) ||
292 (_continuation_stubs_code != nullptr && _continuation_stubs_code->blob_contains(addr)) ||
293 (_compiler_stubs_code != nullptr && _compiler_stubs_code->blob_contains(addr)) ||
484
485 static address select_fill_function(BasicType t, bool aligned, const char* &name);
486
487 //
488 // Default versions of the above arraycopy functions for platforms which do
489 // not have specialized versions
490 //
491 static void jbyte_copy (jbyte* src, jbyte* dest, size_t count);
492 static void jshort_copy (jshort* src, jshort* dest, size_t count);
493 static void jint_copy (jint* src, jint* dest, size_t count);
494 static void jlong_copy (jlong* src, jlong* dest, size_t count);
495 static void oop_copy (oop* src, oop* dest, size_t count);
496 static void oop_copy_uninit(oop* src, oop* dest, size_t count);
497
498 static void arrayof_jbyte_copy (HeapWord* src, HeapWord* dest, size_t count);
499 static void arrayof_jshort_copy (HeapWord* src, HeapWord* dest, size_t count);
500 static void arrayof_jint_copy (HeapWord* src, HeapWord* dest, size_t count);
501 static void arrayof_jlong_copy (HeapWord* src, HeapWord* dest, size_t count);
502 static void arrayof_oop_copy (HeapWord* src, HeapWord* dest, size_t count);
503 static void arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count);
504
505 static address load_inline_type_fields_in_regs() { return _load_inline_type_fields_in_regs; }
506 static address store_inline_type_fields_to_buf() { return _store_inline_type_fields_to_buf; }
507 };
508
509 #endif // SHARE_RUNTIME_STUBROUTINES_HPP
|