< prev index next >

src/hotspot/share/jvmci/jvmciRuntime.hpp

Print this page

478   // Compiled code must ensure these stubs are not called twice for the same allocation
479   // site due to the non-repeatable side effects in the case of OOME.
480   static void new_instance(JavaThread* current, Klass* klass) { new_instance_common(current, klass, false); }
481   static void new_array(JavaThread* current, Klass* klass, jint length) { new_array_common(current, klass, length, false); }
482   static void new_multi_array(JavaThread* current, Klass* klass, int rank, jint* dims) { new_multi_array_common(current, klass, rank, dims, false); }
483   static void dynamic_new_array(JavaThread* current, oopDesc* element_mirror, jint length) { dynamic_new_array_common(current, element_mirror, length, false); }
484   static void dynamic_new_instance(JavaThread* current, oopDesc* type_mirror) { dynamic_new_instance_common(current, type_mirror, false); }
485 
486   // When allocation fails, these stubs return NULL and have no pending exception. Compiled code
487   // can use these stubs if a failed allocation will be retried (e.g., by deoptimizing and
488   // re-executing in the interpreter).
489   static void new_instance_or_null(JavaThread* thread, Klass* klass) { new_instance_common(thread, klass, true); }
490   static void new_array_or_null(JavaThread* thread, Klass* klass, jint length) { new_array_common(thread, klass, length, true); }
491   static void new_multi_array_or_null(JavaThread* thread, Klass* klass, int rank, jint* dims) { new_multi_array_common(thread, klass, rank, dims, true); }
492   static void dynamic_new_array_or_null(JavaThread* thread, oopDesc* element_mirror, jint length) { dynamic_new_array_common(thread, element_mirror, length, true); }
493   static void dynamic_new_instance_or_null(JavaThread* thread, oopDesc* type_mirror) { dynamic_new_instance_common(thread, type_mirror, true); }
494 
495   static void vm_message(jboolean vmError, jlong format, jlong v1, jlong v2, jlong v3);
496   static jint identity_hash_code(JavaThread* current, oopDesc* obj);
497   static address exception_handler_for_pc(JavaThread* current);
498   static void monitorenter(JavaThread* current, oopDesc* obj, BasicLock* lock);
499   static void monitorexit (JavaThread* current, oopDesc* obj, BasicLock* lock);
500   static jboolean object_notify(JavaThread* current, oopDesc* obj);
501   static jboolean object_notifyAll(JavaThread* current, oopDesc* obj);
502   static void vm_error(JavaThread* current, jlong where, jlong format, jlong value);
503   static oopDesc* load_and_clear_exception(JavaThread* thread);
504   static void log_printf(JavaThread* thread, const char* format, jlong v1, jlong v2, jlong v3);
505   static void log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline);
506   // Print the passed in object, optionally followed by a newline.  If
507   // as_string is true and the object is a java.lang.String then it
508   // printed as a string, otherwise the type of the object is printed
509   // followed by its address.
510   static void log_object(JavaThread* thread, oopDesc* object, bool as_string, bool newline);
511 #if INCLUDE_G1GC
512   using CardValue = G1CardTable::CardValue;
513   static void write_barrier_pre(JavaThread* thread, oopDesc* obj);
514   static void write_barrier_post(JavaThread* thread, volatile CardValue* card);
515 #endif
516   static jboolean validate_object(JavaThread* thread, oopDesc* parent, oopDesc* child);
517 
518   // used to throw exceptions from compiled JVMCI code
519   static int throw_and_post_jvmti_exception(JavaThread* current, const char* exception, const char* message);

478   // Compiled code must ensure these stubs are not called twice for the same allocation
479   // site due to the non-repeatable side effects in the case of OOME.
480   static void new_instance(JavaThread* current, Klass* klass) { new_instance_common(current, klass, false); }
481   static void new_array(JavaThread* current, Klass* klass, jint length) { new_array_common(current, klass, length, false); }
482   static void new_multi_array(JavaThread* current, Klass* klass, int rank, jint* dims) { new_multi_array_common(current, klass, rank, dims, false); }
483   static void dynamic_new_array(JavaThread* current, oopDesc* element_mirror, jint length) { dynamic_new_array_common(current, element_mirror, length, false); }
484   static void dynamic_new_instance(JavaThread* current, oopDesc* type_mirror) { dynamic_new_instance_common(current, type_mirror, false); }
485 
486   // When allocation fails, these stubs return NULL and have no pending exception. Compiled code
487   // can use these stubs if a failed allocation will be retried (e.g., by deoptimizing and
488   // re-executing in the interpreter).
489   static void new_instance_or_null(JavaThread* thread, Klass* klass) { new_instance_common(thread, klass, true); }
490   static void new_array_or_null(JavaThread* thread, Klass* klass, jint length) { new_array_common(thread, klass, length, true); }
491   static void new_multi_array_or_null(JavaThread* thread, Klass* klass, int rank, jint* dims) { new_multi_array_common(thread, klass, rank, dims, true); }
492   static void dynamic_new_array_or_null(JavaThread* thread, oopDesc* element_mirror, jint length) { dynamic_new_array_common(thread, element_mirror, length, true); }
493   static void dynamic_new_instance_or_null(JavaThread* thread, oopDesc* type_mirror) { dynamic_new_instance_common(thread, type_mirror, true); }
494 
495   static void vm_message(jboolean vmError, jlong format, jlong v1, jlong v2, jlong v3);
496   static jint identity_hash_code(JavaThread* current, oopDesc* obj);
497   static address exception_handler_for_pc(JavaThread* current);
498   static void monitorenter(JavaThread* current, oopDesc* obj);
499   static void monitorexit (JavaThread* current, oopDesc* obj);
500   static jboolean object_notify(JavaThread* current, oopDesc* obj);
501   static jboolean object_notifyAll(JavaThread* current, oopDesc* obj);
502   static void vm_error(JavaThread* current, jlong where, jlong format, jlong value);
503   static oopDesc* load_and_clear_exception(JavaThread* thread);
504   static void log_printf(JavaThread* thread, const char* format, jlong v1, jlong v2, jlong v3);
505   static void log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline);
506   // Print the passed in object, optionally followed by a newline.  If
507   // as_string is true and the object is a java.lang.String then it
508   // printed as a string, otherwise the type of the object is printed
509   // followed by its address.
510   static void log_object(JavaThread* thread, oopDesc* object, bool as_string, bool newline);
511 #if INCLUDE_G1GC
512   using CardValue = G1CardTable::CardValue;
513   static void write_barrier_pre(JavaThread* thread, oopDesc* obj);
514   static void write_barrier_post(JavaThread* thread, volatile CardValue* card);
515 #endif
516   static jboolean validate_object(JavaThread* thread, oopDesc* parent, oopDesc* child);
517 
518   // used to throw exceptions from compiled JVMCI code
519   static int throw_and_post_jvmti_exception(JavaThread* current, const char* exception, const char* message);
< prev index next >