< prev index next >

src/hotspot/share/runtime/stubRoutines.hpp

Print this page

257   DEFINE_ENTRY_GETTER(blob_name, stub_name, field_name, getter_name)
258 
259 #define DEFINE_ENTRY_GETTER_ARRAY(blob_name, stub_name, field_name, getter_name, count) \
260   static address getter_name(int idx) {                                 \
261     assert(idx < count, "out of bounds");                               \
262     return STUB_FIELD_NAME(field_name)[idx];                            \
263   }                                                                     \
264 
265 public:
266   STUBGEN_ENTRIES_DO(DEFINE_ENTRY_GETTER, DEFINE_ENTRY_GETTER_INIT, DEFINE_ENTRY_GETTER_ARRAY);
267 
268 #undef DEFINE_ENTRY_GETTER_ARRAY
269 #undef DEFINE_ENTRY_GETTER_INIT
270 #undef DEFINE_ENTRY_GETTER
271 
272 public:
273 
274 #define DECLARE_BLOB_INIT_METHOD(blob_name)     \
275   static void initialize_ ## blob_name ## _stubs();
276 



277   STUBGEN_BLOBS_DO(DECLARE_BLOB_INIT_METHOD)
278 
279 #undef DECLARE_BLOB_INIT_METHOD
280 
281 public:
282 
283   // Calls to Java
284   typedef void (*CallStub)(
285     address   link,
286     intptr_t* result,
287     int       result_type, /* BasicType on 4 bytes */
288     Method* method,
289     address   entry_point,
290     intptr_t* parameters,
291     int       size_of_parameters,
292     TRAPS
293   );
294 
295   static jint    _verify_oop_count;
296 

393 
394   static address select_fill_function(BasicType t, bool aligned, const char* &name);
395 
396   // Default versions of some of the arraycopy functions for platforms
397   // which do not have specialized versions
398   //
399   static void jbyte_copy     (jbyte*  src, jbyte*  dest, size_t count);
400   static void jshort_copy    (jshort* src, jshort* dest, size_t count);
401   static void jint_copy      (jint*   src, jint*   dest, size_t count);
402   static void jlong_copy     (jlong*  src, jlong*  dest, size_t count);
403   static void oop_copy       (oop*    src, oop*    dest, size_t count);
404   static void oop_copy_uninit(oop*    src, oop*    dest, size_t count);
405 
406   static void arrayof_jbyte_copy     (HeapWord* src, HeapWord* dest, size_t count);
407   static void arrayof_jshort_copy    (HeapWord* src, HeapWord* dest, size_t count);
408   static void arrayof_jint_copy      (HeapWord* src, HeapWord* dest, size_t count);
409   static void arrayof_jlong_copy     (HeapWord* src, HeapWord* dest, size_t count);
410   static void arrayof_oop_copy       (HeapWord* src, HeapWord* dest, size_t count);
411   static void arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count);
412 



413 };
414 
415 #endif // SHARE_RUNTIME_STUBROUTINES_HPP

257   DEFINE_ENTRY_GETTER(blob_name, stub_name, field_name, getter_name)
258 
259 #define DEFINE_ENTRY_GETTER_ARRAY(blob_name, stub_name, field_name, getter_name, count) \
260   static address getter_name(int idx) {                                 \
261     assert(idx < count, "out of bounds");                               \
262     return STUB_FIELD_NAME(field_name)[idx];                            \
263   }                                                                     \
264 
265 public:
266   STUBGEN_ENTRIES_DO(DEFINE_ENTRY_GETTER, DEFINE_ENTRY_GETTER_INIT, DEFINE_ENTRY_GETTER_ARRAY);
267 
268 #undef DEFINE_ENTRY_GETTER_ARRAY
269 #undef DEFINE_ENTRY_GETTER_INIT
270 #undef DEFINE_ENTRY_GETTER
271 
272 public:
273 
274 #define DECLARE_BLOB_INIT_METHOD(blob_name)     \
275   static void initialize_ ## blob_name ## _stubs();
276 
277   static address _load_inline_type_fields_in_regs;
278   static address _store_inline_type_fields_to_buf;
279 
280   STUBGEN_BLOBS_DO(DECLARE_BLOB_INIT_METHOD)
281 
282 #undef DECLARE_BLOB_INIT_METHOD
283 
284 public:
285 
286   // Calls to Java
287   typedef void (*CallStub)(
288     address   link,
289     intptr_t* result,
290     int       result_type, /* BasicType on 4 bytes */
291     Method* method,
292     address   entry_point,
293     intptr_t* parameters,
294     int       size_of_parameters,
295     TRAPS
296   );
297 
298   static jint    _verify_oop_count;
299 

396 
397   static address select_fill_function(BasicType t, bool aligned, const char* &name);
398 
399   // Default versions of some of the arraycopy functions for platforms
400   // which do not have specialized versions
401   //
402   static void jbyte_copy     (jbyte*  src, jbyte*  dest, size_t count);
403   static void jshort_copy    (jshort* src, jshort* dest, size_t count);
404   static void jint_copy      (jint*   src, jint*   dest, size_t count);
405   static void jlong_copy     (jlong*  src, jlong*  dest, size_t count);
406   static void oop_copy       (oop*    src, oop*    dest, size_t count);
407   static void oop_copy_uninit(oop*    src, oop*    dest, size_t count);
408 
409   static void arrayof_jbyte_copy     (HeapWord* src, HeapWord* dest, size_t count);
410   static void arrayof_jshort_copy    (HeapWord* src, HeapWord* dest, size_t count);
411   static void arrayof_jint_copy      (HeapWord* src, HeapWord* dest, size_t count);
412   static void arrayof_jlong_copy     (HeapWord* src, HeapWord* dest, size_t count);
413   static void arrayof_oop_copy       (HeapWord* src, HeapWord* dest, size_t count);
414   static void arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count);
415 
416   static address load_inline_type_fields_in_regs() { return _load_inline_type_fields_in_regs; }
417   static address store_inline_type_fields_to_buf() { return _store_inline_type_fields_to_buf; }
418 
419 };
420 
421 #endif // SHARE_RUNTIME_STUBROUTINES_HPP
< prev index next >