On Aug 25, 2018, at 2:39 PM, mr rupplin <mearvk@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::set_stack_slot(intptr_t *tos, address value, int offset) {
*((address *)&tos[Interpreter::expr_index_at(-offset)]) = value; }
void BytecodeInterpreter::set_stack_object(intptr_t *tos, oop value, int offset) {
*((oop *)&tos[Interpreter::expr_index_at(-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