CC_INTERP broken in jdk7 hotspot on x86_64

Ivo Anjo ivo.anjo at
Thu Feb 25 13:49:35 PST 2010

Thanks for all the quick answers, and sorry for missing the older
thread that couldn't be more obvious: "C++ Interpreter on 64-bit

The usage of the C++ interpreter would be interesting because it would
allow me to run it in tandem with the JIT stuff, but maybe I was
aiming too high anyway, so Zero is probably the best way to start.

Again, thanks for all the feedback
Ivo Anjo

On Thu, Feb 25, 2010 at 6:54 PM, Tom Rodriguez <Thomas.Rodriguez at> wrote:
> It's not actively maintained by the hotspot team but we will accept fixes.  There were customers who wanted the C++ interpreter so we've included it but none of our standard configurations use it.  It worked for several configuration when it was first introduced but things have diverged a bit since then.
> tom
> On Feb 25, 2010, at 8:52 AM, Ivo Anjo wrote:
>> I was looking into prototyping some changes using the C++ interpreter
>> with the latest (tested with builds 81 and 84) openjdk.
>> I edited hotspot/make/linux/platform_amd64 adding -DCC_INTERP, but am
>> getting multiple compile errors, possibly due to the fact that this
>> combination is not used by default, and the methods referenced are
>> inside #ifndef CC_INTERP blocks.
>> jdk7-b84/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp: In member
>> function 'unsigned char*
>> InterpreterGenerator::generate_abstract_entry()':
>> jdk7-b84/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp:282: error:
>> 'class InterpreterMacroAssembler' has no member named
>> 'empty_expression_stack'
>> jdk7-b84/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp:284: error:
>> 'class InterpreterMacroAssembler' has no member named 'restore_locals'
>> jdk7-b84/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp: In static
>> member function 'static unsigned char*
>> MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*)':
>> jdk7-b84/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp:95: error:
>> 'throw_WrongMethodType_entry' is not a member of 'Interpreter'
>> jdk7-b84/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp: In static
>> member function 'static void
>> MethodHandles::generate_method_handle_stub(MacroAssembler*,
>> MethodHandles::EntryKind)':
>> jdk7-b84/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp:404: error:
>> 'throw_WrongMethodType_entry' is not a member of 'Interpreter'
>> and finally
>> Linking launcher...
>> jdk7-b84/build/linux-amd64/hotspot/outputdir/linux_amd64_compiler2/product/
>> undefined reference to
>> `AbstractInterpreter::can_be_compiled(methodHandle)'
>> collect2: ld returned 1 exit status
>> As I am new to hotspot development, may I ask if CC_INTERP is supposed
>> to be working for x86_64, or is it just considered "dead code" that is
>> kept around for historical reasons and there are no plans to fix it?
>> Thanks,
>> Ivo Anjo

More information about the hotspot-dev mailing list