< prev index next >

src/hotspot/share/runtime/stubRoutines.hpp

Print this page

211   DEFINE_ENTRY_GETTER(blob_name, stub_name, field_name, getter_name)
212 
213 #define DEFINE_ENTRY_GETTER_ARRAY(blob_name, stub_name, field_name, getter_name, count) \
214   static address getter_name(int idx) {                                 \
215     assert(idx < count, "out of bounds");                               \
216     return STUB_FIELD_NAME(field_name)[idx];                            \
217   }                                                                     \
218 
219 public:
220   STUBGEN_ENTRIES_DO(DEFINE_ENTRY_GETTER, DEFINE_ENTRY_GETTER_INIT, DEFINE_ENTRY_GETTER_ARRAY);
221 
222 #undef DEFINE_ENTRY_GETTER_ARRAY
223 #undef DEFINE_ENTRY_GETTER_INIT
224 #undef DEFINE_ENTRY_GETTER
225 
226 public:
227 
228 #define DECLARE_BLOB_INIT_METHOD(blob_name)     \
229   static void initialize_ ## blob_name ## _stubs();
230 



231   STUBGEN_BLOBS_DO(DECLARE_BLOB_INIT_METHOD)
232 
233 #undef DECLARE_BLOB_INIT_METHOD
234 
235 public:
236 
237   // Calls to Java
238   typedef void (*CallStub)(
239     address   link,
240     intptr_t* result,
241     int       result_type, /* BasicType on 4 bytes */
242     Method* method,
243     address   entry_point,
244     intptr_t* parameters,
245     int       size_of_parameters,
246     TRAPS
247   );
248 
249   static jint    _verify_oop_count;
250 

353 
354   static address select_fill_function(BasicType t, bool aligned, const char* &name);
355 
356   // Default versions of some of the arraycopy functions for platforms
357   // which do not have specialized versions
358   //
359   static void jbyte_copy     (jbyte*  src, jbyte*  dest, size_t count);
360   static void jshort_copy    (jshort* src, jshort* dest, size_t count);
361   static void jint_copy      (jint*   src, jint*   dest, size_t count);
362   static void jlong_copy     (jlong*  src, jlong*  dest, size_t count);
363   static void oop_copy       (oop*    src, oop*    dest, size_t count);
364   static void oop_copy_uninit(oop*    src, oop*    dest, size_t count);
365 
366   static void arrayof_jbyte_copy     (HeapWord* src, HeapWord* dest, size_t count);
367   static void arrayof_jshort_copy    (HeapWord* src, HeapWord* dest, size_t count);
368   static void arrayof_jint_copy      (HeapWord* src, HeapWord* dest, size_t count);
369   static void arrayof_jlong_copy     (HeapWord* src, HeapWord* dest, size_t count);
370   static void arrayof_oop_copy       (HeapWord* src, HeapWord* dest, size_t count);
371   static void arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count);
372 



373 };
374 
375 #endif // SHARE_RUNTIME_STUBROUTINES_HPP

211   DEFINE_ENTRY_GETTER(blob_name, stub_name, field_name, getter_name)
212 
213 #define DEFINE_ENTRY_GETTER_ARRAY(blob_name, stub_name, field_name, getter_name, count) \
214   static address getter_name(int idx) {                                 \
215     assert(idx < count, "out of bounds");                               \
216     return STUB_FIELD_NAME(field_name)[idx];                            \
217   }                                                                     \
218 
219 public:
220   STUBGEN_ENTRIES_DO(DEFINE_ENTRY_GETTER, DEFINE_ENTRY_GETTER_INIT, DEFINE_ENTRY_GETTER_ARRAY);
221 
222 #undef DEFINE_ENTRY_GETTER_ARRAY
223 #undef DEFINE_ENTRY_GETTER_INIT
224 #undef DEFINE_ENTRY_GETTER
225 
226 public:
227 
228 #define DECLARE_BLOB_INIT_METHOD(blob_name)     \
229   static void initialize_ ## blob_name ## _stubs();
230 
231   static address _load_inline_type_fields_in_regs;
232   static address _store_inline_type_fields_to_buf;
233 
234   STUBGEN_BLOBS_DO(DECLARE_BLOB_INIT_METHOD)
235 
236 #undef DECLARE_BLOB_INIT_METHOD
237 
238 public:
239 
240   // Calls to Java
241   typedef void (*CallStub)(
242     address   link,
243     intptr_t* result,
244     int       result_type, /* BasicType on 4 bytes */
245     Method* method,
246     address   entry_point,
247     intptr_t* parameters,
248     int       size_of_parameters,
249     TRAPS
250   );
251 
252   static jint    _verify_oop_count;
253 

356 
357   static address select_fill_function(BasicType t, bool aligned, const char* &name);
358 
359   // Default versions of some of the arraycopy functions for platforms
360   // which do not have specialized versions
361   //
362   static void jbyte_copy     (jbyte*  src, jbyte*  dest, size_t count);
363   static void jshort_copy    (jshort* src, jshort* dest, size_t count);
364   static void jint_copy      (jint*   src, jint*   dest, size_t count);
365   static void jlong_copy     (jlong*  src, jlong*  dest, size_t count);
366   static void oop_copy       (oop*    src, oop*    dest, size_t count);
367   static void oop_copy_uninit(oop*    src, oop*    dest, size_t count);
368 
369   static void arrayof_jbyte_copy     (HeapWord* src, HeapWord* dest, size_t count);
370   static void arrayof_jshort_copy    (HeapWord* src, HeapWord* dest, size_t count);
371   static void arrayof_jint_copy      (HeapWord* src, HeapWord* dest, size_t count);
372   static void arrayof_jlong_copy     (HeapWord* src, HeapWord* dest, size_t count);
373   static void arrayof_oop_copy       (HeapWord* src, HeapWord* dest, size_t count);
374   static void arrayof_oop_copy_uninit(HeapWord* src, HeapWord* dest, size_t count);
375 
376   static address load_inline_type_fields_in_regs() { return _load_inline_type_fields_in_regs; }
377   static address store_inline_type_fields_to_buf() { return _store_inline_type_fields_to_buf; }
378 
379 };
380 
381 #endif // SHARE_RUNTIME_STUBROUTINES_HPP
< prev index next >