RFR: 8152634: generalize exception throwing routines in JVMCIRuntime

Roland Schatz roland.schatz at oracle.com
Thu Mar 24 13:30:19 UTC 2016


Hi,

Please review the following changes:
http://cr.openjdk.java.net/~rschatz/JDK-8152634/webrev.00/

This change directly exposes `throw_and_post_jvmti_exception` for JVMCI 
compilers, instead of the two hardcoded routines for null and index out 
of bounds.
That way, the compiler can generate its own stubs for arbitrary 
exceptions, or even embed the exception construction code inline in a 
method.

There are still two special case functions exported, for the exceptions 
that want to use `Klass::external_name()` in their message. This method 
is not easy to call from JVMCI compiled code because it uses resource 
allocation.

Since `throw_and_post_jvmti_exception` has a Symbol* argument, we also 
need to add support for dealing with Symbol* pointers to the JVMCI 
interface. That's what most of the changes in this patch are about. This 
is using the same mechanisms that are already in place for Klass* and 
Method* pointers.

Thanks,
Roland


More information about the hotspot-compiler-dev mailing list