< prev index next >

src/hotspot/share/runtime/stubRoutines.cpp

Print this page

153 address StubRoutines::_mulAdd = nullptr;
154 address StubRoutines::_montgomeryMultiply = nullptr;
155 address StubRoutines::_montgomerySquare = nullptr;
156 address StubRoutines::_bigIntegerRightShiftWorker = nullptr;
157 address StubRoutines::_bigIntegerLeftShiftWorker = nullptr;
158 
159 address StubRoutines::_vectorizedMismatch = nullptr;
160 
161 address StubRoutines::_dexp = nullptr;
162 address StubRoutines::_dlog = nullptr;
163 address StubRoutines::_dlog10 = nullptr;
164 address StubRoutines::_fmod = nullptr;
165 address StubRoutines::_dpow = nullptr;
166 address StubRoutines::_dsin = nullptr;
167 address StubRoutines::_dcos = nullptr;
168 address StubRoutines::_dlibm_sin_cos_huge = nullptr;
169 address StubRoutines::_dlibm_reduce_pi04l = nullptr;
170 address StubRoutines::_dlibm_tan_cot_huge = nullptr;
171 address StubRoutines::_dtan = nullptr;
172 



173 address StubRoutines::_f2hf = nullptr;
174 address StubRoutines::_hf2f = nullptr;
175 
176 address StubRoutines::_vector_f_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP] = {{nullptr}, {nullptr}};
177 address StubRoutines::_vector_d_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP] = {{nullptr}, {nullptr}};
178 
179 address StubRoutines::_cont_thaw          = nullptr;
180 address StubRoutines::_cont_returnBarrier = nullptr;
181 address StubRoutines::_cont_returnBarrierExc = nullptr;
182 
183 JFR_ONLY(RuntimeStub* StubRoutines::_jfr_write_checkpoint_stub = nullptr;)
184 JFR_ONLY(address StubRoutines::_jfr_write_checkpoint = nullptr;)
185 JFR_ONLY(RuntimeStub* StubRoutines::_jfr_return_lease_stub = nullptr;)
186 JFR_ONLY(address StubRoutines::_jfr_return_lease = nullptr;)
187 
188 // Initialization
189 //
190 // Note: to break cycle with universe initialization, stubs are generated in two phases.
191 // The first one generates stubs needed during universe init (e.g., _handle_must_compile_first_entry).
192 // The second phase includes all other stubs (which may depend on universe being initialized.)

403 #define RETURN_STUB(xxx_fill) { \
404   name = #xxx_fill; \
405   return StubRoutines::xxx_fill(); }
406 
407   switch (t) {
408   case T_BYTE:
409   case T_BOOLEAN:
410     if (!aligned) RETURN_STUB(jbyte_fill);
411     RETURN_STUB(arrayof_jbyte_fill);
412   case T_CHAR:
413   case T_SHORT:
414     if (!aligned) RETURN_STUB(jshort_fill);
415     RETURN_STUB(arrayof_jshort_fill);
416   case T_INT:
417   case T_FLOAT:
418     if (!aligned) RETURN_STUB(jint_fill);
419     RETURN_STUB(arrayof_jint_fill);
420   case T_DOUBLE:
421   case T_LONG:
422   case T_ARRAY:

423   case T_OBJECT:
424   case T_NARROWOOP:
425   case T_NARROWKLASS:
426   case T_ADDRESS:
427   case T_VOID:
428     // Currently unsupported
429     return nullptr;
430 
431   default:
432     ShouldNotReachHere();
433     return nullptr;
434   }
435 
436 #undef RETURN_STUB
437 }
438 
439 // constants for computing the copy function
440 enum {
441   COPYFUNC_UNALIGNED = 0,
442   COPYFUNC_ALIGNED = 1,                 // src, dest aligned to HeapWordSize

153 address StubRoutines::_mulAdd = nullptr;
154 address StubRoutines::_montgomeryMultiply = nullptr;
155 address StubRoutines::_montgomerySquare = nullptr;
156 address StubRoutines::_bigIntegerRightShiftWorker = nullptr;
157 address StubRoutines::_bigIntegerLeftShiftWorker = nullptr;
158 
159 address StubRoutines::_vectorizedMismatch = nullptr;
160 
161 address StubRoutines::_dexp = nullptr;
162 address StubRoutines::_dlog = nullptr;
163 address StubRoutines::_dlog10 = nullptr;
164 address StubRoutines::_fmod = nullptr;
165 address StubRoutines::_dpow = nullptr;
166 address StubRoutines::_dsin = nullptr;
167 address StubRoutines::_dcos = nullptr;
168 address StubRoutines::_dlibm_sin_cos_huge = nullptr;
169 address StubRoutines::_dlibm_reduce_pi04l = nullptr;
170 address StubRoutines::_dlibm_tan_cot_huge = nullptr;
171 address StubRoutines::_dtan = nullptr;
172 
173 address StubRoutines::_load_inline_type_fields_in_regs = nullptr;
174 address StubRoutines::_store_inline_type_fields_to_buf = nullptr;
175 
176 address StubRoutines::_f2hf = nullptr;
177 address StubRoutines::_hf2f = nullptr;
178 
179 address StubRoutines::_vector_f_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP] = {{nullptr}, {nullptr}};
180 address StubRoutines::_vector_d_math[VectorSupport::NUM_VEC_SIZES][VectorSupport::NUM_SVML_OP] = {{nullptr}, {nullptr}};
181 
182 address StubRoutines::_cont_thaw          = nullptr;
183 address StubRoutines::_cont_returnBarrier = nullptr;
184 address StubRoutines::_cont_returnBarrierExc = nullptr;
185 
186 JFR_ONLY(RuntimeStub* StubRoutines::_jfr_write_checkpoint_stub = nullptr;)
187 JFR_ONLY(address StubRoutines::_jfr_write_checkpoint = nullptr;)
188 JFR_ONLY(RuntimeStub* StubRoutines::_jfr_return_lease_stub = nullptr;)
189 JFR_ONLY(address StubRoutines::_jfr_return_lease = nullptr;)
190 
191 // Initialization
192 //
193 // Note: to break cycle with universe initialization, stubs are generated in two phases.
194 // The first one generates stubs needed during universe init (e.g., _handle_must_compile_first_entry).
195 // The second phase includes all other stubs (which may depend on universe being initialized.)

406 #define RETURN_STUB(xxx_fill) { \
407   name = #xxx_fill; \
408   return StubRoutines::xxx_fill(); }
409 
410   switch (t) {
411   case T_BYTE:
412   case T_BOOLEAN:
413     if (!aligned) RETURN_STUB(jbyte_fill);
414     RETURN_STUB(arrayof_jbyte_fill);
415   case T_CHAR:
416   case T_SHORT:
417     if (!aligned) RETURN_STUB(jshort_fill);
418     RETURN_STUB(arrayof_jshort_fill);
419   case T_INT:
420   case T_FLOAT:
421     if (!aligned) RETURN_STUB(jint_fill);
422     RETURN_STUB(arrayof_jint_fill);
423   case T_DOUBLE:
424   case T_LONG:
425   case T_ARRAY:
426   case T_PRIMITIVE_OBJECT:
427   case T_OBJECT:
428   case T_NARROWOOP:
429   case T_NARROWKLASS:
430   case T_ADDRESS:
431   case T_VOID:
432     // Currently unsupported
433     return nullptr;
434 
435   default:
436     ShouldNotReachHere();
437     return nullptr;
438   }
439 
440 #undef RETURN_STUB
441 }
442 
443 // constants for computing the copy function
444 enum {
445   COPYFUNC_UNALIGNED = 0,
446   COPYFUNC_ALIGNED = 1,                 // src, dest aligned to HeapWordSize
< prev index next >