RFR: 8152634: generalize exception throwing routines in JVMCIRuntime

Christian Thalinger christian.thalinger at oracle.com
Thu Mar 24 18:12:14 UTC 2016


I’ve mentioned this before internally but I would like to keep HotSpotVmSymbols.  The reason is Symbols are organized in a SymbolTable and lookup is complicated but vmSymbols is an array which can be indexed.

HotSpotSymbol.symbolAt(int index) is very confusing.

> On Mar 24, 2016, at 3:30 AM, Roland Schatz <roland.schatz at oracle.com> wrote:
> 
> 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