diff src/share/vm/jvmci/jvmciRuntime.hpp @ 23334:e0a15983ab51

Create exception throwing routines for exceptions with complex messages.
author Roland Schatz <roland.schatz@oracle.com>
date Tue, 22 Mar 2016 15:55:59 +0100
parents bc5552dc384b
children 62804a7d3877
line wrap: on
line diff
--- a/src/share/vm/jvmci/jvmciRuntime.hpp	Wed Mar 23 10:42:47 2016 +0100
+++ b/src/share/vm/jvmci/jvmciRuntime.hpp	Tue Mar 22 15:55:59 2016 +0100
@@ -203,7 +203,6 @@
   static address exception_handler_for_pc(JavaThread* thread);
   static void monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock);
   static void monitorexit (JavaThread* thread, oopDesc* obj, BasicLock* lock);
-  static void throw_and_post_jvmti_exception(JavaThread* thread, Symbol* name, const char* message);
   static void vm_error(JavaThread* thread, jlong where, jlong format, jlong value);
   static oopDesc* load_and_clear_exception(JavaThread* thread);
   static void log_printf(JavaThread* thread, oopDesc* format, jlong v1, jlong v2, jlong v3);
@@ -218,6 +217,12 @@
   static jboolean validate_object(JavaThread* thread, oopDesc* parent, oopDesc* child);
   static void new_store_pre_barrier(JavaThread* thread);
 
+  // used to throw exceptions from compiled JVMCI code
+  static void throw_and_post_jvmti_exception(JavaThread* thread, Symbol* exception, const char* message);
+  // helper methods to throw exception with complex messages
+  static void throw_klass_external_name_exception(JavaThread* thread, Symbol* exception, Klass* klass);
+  static void throw_class_cast_exception(JavaThread* thread, Symbol* exception, Klass* objKlass, Klass* targetKlass, const char* desc);
+
   // Test only function
   static int test_deoptimize_call_int(JavaThread* thread, int value);
 };