CC_INTERP broken in jdk7 hotspot on x86_64

Gary Benson gbenson at redhat.com
Thu Feb 25 09:15:23 PST 2010


Hi Ivo,

I don't believe the C++ interpreter ever worked on x86_64, only
on SPARC and on 32-bit x86.  I don't know of anybody at Sun who
builds using the C++ interpreter, but we use it for Zero[1] and
it definitely works there.  That doesn't touch anything under
hotspot/src/cpu/x86 though.

Cheers,
Gary

[1] http://icedtea.classpath.org/wiki/ZeroSharkFaq

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/libjvm.so:
> 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

-- 
http://gbenson.net/


More information about the hotspot-dev mailing list