< prev index next >

src/hotspot/share/jvmci/jvmciRuntime.hpp

Print this page




 292   // 1. Exercise -XX:+HeapDumpOnOutOfMemoryError and -XX:OnOutOfMemoryError handling and also
 293   //    post a JVMTI_EVENT_RESOURCE_EXHAUSTED event if the failure is an OutOfMemroyError
 294   // 2. Return NULL with a pending exception.
 295   // Compiled code must ensure these stubs are not called twice for the same allocation
 296   // site due to the non-repeatable side effects in the case of OOME.
 297   static void new_instance(JavaThread* thread, Klass* klass) { new_instance_common(thread, klass, false); }
 298   static void new_array(JavaThread* thread, Klass* klass, jint length) { new_array_common(thread, klass, length, false); }
 299   static void new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims) { new_multi_array_common(thread, klass, rank, dims, false); }
 300   static void dynamic_new_array(JavaThread* thread, oopDesc* element_mirror, jint length) { dynamic_new_array_common(thread, element_mirror, length, false); }
 301   static void dynamic_new_instance(JavaThread* thread, oopDesc* type_mirror) { dynamic_new_instance_common(thread, type_mirror, false); }
 302 
 303   // When allocation fails, these stubs return NULL and have no pending exception. Compiled code
 304   // can use these stubs if a failed allocation will be retried (e.g., by deoptimizing and
 305   // re-executing in the interpreter).
 306   static void new_instance_or_null(JavaThread* thread, Klass* klass) { new_instance_common(thread, klass, true); }
 307   static void new_array_or_null(JavaThread* thread, Klass* klass, jint length) { new_array_common(thread, klass, length, true); }
 308   static void new_multi_array_or_null(JavaThread* thread, Klass* klass, int rank, jint* dims) { new_multi_array_common(thread, klass, rank, dims, true); }
 309   static void dynamic_new_array_or_null(JavaThread* thread, oopDesc* element_mirror, jint length) { dynamic_new_array_common(thread, element_mirror, length, true); }
 310   static void dynamic_new_instance_or_null(JavaThread* thread, oopDesc* type_mirror) { dynamic_new_instance_common(thread, type_mirror, true); }
 311 
 312   static jboolean thread_is_interrupted(JavaThread* thread, oopDesc* obj, jboolean clear_interrupted);
 313   static void vm_message(jboolean vmError, jlong format, jlong v1, jlong v2, jlong v3);
 314   static jint identity_hash_code(JavaThread* thread, oopDesc* obj);
 315   static address exception_handler_for_pc(JavaThread* thread);
 316   static void monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock);
 317   static void monitorexit (JavaThread* thread, oopDesc* obj, BasicLock* lock);
 318   static jboolean object_notify(JavaThread* thread, oopDesc* obj);
 319   static jboolean object_notifyAll(JavaThread* thread, oopDesc* obj);
 320   static void vm_error(JavaThread* thread, jlong where, jlong format, jlong value);
 321   static oopDesc* load_and_clear_exception(JavaThread* thread);
 322   static void log_printf(JavaThread* thread, const char* format, jlong v1, jlong v2, jlong v3);
 323   static void log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline);
 324   // Print the passed in object, optionally followed by a newline.  If
 325   // as_string is true and the object is a java.lang.String then it
 326   // printed as a string, otherwise the type of the object is printed
 327   // followed by its address.
 328   static void log_object(JavaThread* thread, oopDesc* object, bool as_string, bool newline);
 329 #if INCLUDE_G1GC
 330   static void write_barrier_pre(JavaThread* thread, oopDesc* obj);
 331   static void write_barrier_post(JavaThread* thread, void* card);
 332 #endif




 292   // 1. Exercise -XX:+HeapDumpOnOutOfMemoryError and -XX:OnOutOfMemoryError handling and also
 293   //    post a JVMTI_EVENT_RESOURCE_EXHAUSTED event if the failure is an OutOfMemroyError
 294   // 2. Return NULL with a pending exception.
 295   // Compiled code must ensure these stubs are not called twice for the same allocation
 296   // site due to the non-repeatable side effects in the case of OOME.
 297   static void new_instance(JavaThread* thread, Klass* klass) { new_instance_common(thread, klass, false); }
 298   static void new_array(JavaThread* thread, Klass* klass, jint length) { new_array_common(thread, klass, length, false); }
 299   static void new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims) { new_multi_array_common(thread, klass, rank, dims, false); }
 300   static void dynamic_new_array(JavaThread* thread, oopDesc* element_mirror, jint length) { dynamic_new_array_common(thread, element_mirror, length, false); }
 301   static void dynamic_new_instance(JavaThread* thread, oopDesc* type_mirror) { dynamic_new_instance_common(thread, type_mirror, false); }
 302 
 303   // When allocation fails, these stubs return NULL and have no pending exception. Compiled code
 304   // can use these stubs if a failed allocation will be retried (e.g., by deoptimizing and
 305   // re-executing in the interpreter).
 306   static void new_instance_or_null(JavaThread* thread, Klass* klass) { new_instance_common(thread, klass, true); }
 307   static void new_array_or_null(JavaThread* thread, Klass* klass, jint length) { new_array_common(thread, klass, length, true); }
 308   static void new_multi_array_or_null(JavaThread* thread, Klass* klass, int rank, jint* dims) { new_multi_array_common(thread, klass, rank, dims, true); }
 309   static void dynamic_new_array_or_null(JavaThread* thread, oopDesc* element_mirror, jint length) { dynamic_new_array_common(thread, element_mirror, length, true); }
 310   static void dynamic_new_instance_or_null(JavaThread* thread, oopDesc* type_mirror) { dynamic_new_instance_common(thread, type_mirror, true); }
 311 

 312   static void vm_message(jboolean vmError, jlong format, jlong v1, jlong v2, jlong v3);
 313   static jint identity_hash_code(JavaThread* thread, oopDesc* obj);
 314   static address exception_handler_for_pc(JavaThread* thread);
 315   static void monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock);
 316   static void monitorexit (JavaThread* thread, oopDesc* obj, BasicLock* lock);
 317   static jboolean object_notify(JavaThread* thread, oopDesc* obj);
 318   static jboolean object_notifyAll(JavaThread* thread, oopDesc* obj);
 319   static void vm_error(JavaThread* thread, jlong where, jlong format, jlong value);
 320   static oopDesc* load_and_clear_exception(JavaThread* thread);
 321   static void log_printf(JavaThread* thread, const char* format, jlong v1, jlong v2, jlong v3);
 322   static void log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline);
 323   // Print the passed in object, optionally followed by a newline.  If
 324   // as_string is true and the object is a java.lang.String then it
 325   // printed as a string, otherwise the type of the object is printed
 326   // followed by its address.
 327   static void log_object(JavaThread* thread, oopDesc* object, bool as_string, bool newline);
 328 #if INCLUDE_G1GC
 329   static void write_barrier_pre(JavaThread* thread, oopDesc* obj);
 330   static void write_barrier_post(JavaThread* thread, void* card);
 331 #endif


< prev index next >