< prev index next >

src/hotspot/share/runtime/stubRoutines.hpp

Print this page

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



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

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



365 };
366 
367 #endif // SHARE_RUNTIME_STUBROUTINES_HPP

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

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