JVM Interpreter (original) (raw)

Kim Barrett kim.barrett at oracle.com
Sun Aug 26 03:47:41 UTC 2018


On Aug 25, 2018, at 2:39 PM, mr rupplin <mearvk at outlook.com> wrote:

I am presuming the JVM interpreter is defined/implemented in the the hotspot module since this is a JVM implementation.

This is probably more of a hotspot-dev or hotspot-runtime-dev kind of question, rather than core-libs.

I cannot seem to find any instruction in it that gets called by a simple "./java -ea Class" call. We are stumped.

For instance there are methods for local set and reference: void BytecodeInterpreter::setstackslot(intptrt *tos, address value, int offset) { *((address *)&tos[Interpreter::exprindexat(-offset)]) = value; } void BytecodeInterpreter::setstackobject(intptrt *tos, oop value, int offset) { *((oop *)&tos[Interpreter::exprindexat(-offset)]) = value; } These (and similar in same file) are not being called at all during the JVM interpreter phase (simple java program as reference). My program creates an object and calls a test method with a single object as reference. What could be the hang up? No printf statement seems to work.

I think BytecodeInterpreter is part of CppInterpreter, which I think is only used by Zero platforms, with the TemplateInterpreter used by all other platforms. So unless you are running on a platform that uses Zero, or specifically built for Zero, I think BytecodeInterpreter won't be used (and might not even be compiled in?).

Thanks.

Max Rupplin Software Engineer



More information about the core-libs-dev mailing list