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
|