C++ Interpreter

steve goldman Steve.Goldman at Sun.COM
Thu Nov 8 08:58:50 PST 2007

Volker Simonis wrote:
> Hi folks,
> here finally comes the patche-set to get the C++-Interpreter running
> under Solaris/SPARC in 64-bit mode.


> The file 'bytecodeInterpreter.cpp.patch' contains a patch to get the
> C++ Interpreter working in the opt-build on 'i486' machines. I include
> it here just for your convenience, as I already posted it to this list
> before.
> The other three files
> bytecodeInterpreter_sparc.hpp.patch
> cppInterpreter_sparc.cpp.patch
> parseHelper.cpp.patch
> contain the patches for Solaris/SPARC in 64-bit mode. Now, everything
> in 64-bit should work as in the 32-bit mode (at least JVM98 passes
> without errors).

> There was an error with OSR in 64-bit mode that I could only fixed in
> shared code (in 'parseHelper.cpp'). The problem is related to the fact
> that the counters are 64-bit values in 64-bit mode, but are updated as
> 32-bit values in JITed code. This led to errors on big-endian
> archtectures like SPARC because the wrong half of the 64-bit counter
> was incremented.

In my work on producing a 64bit c1 on x86 I've also found that counters 
are being treated in a dubious manner between 32/64 bit. I don't believe 
the mdo really needs 64bit counters in the first place so in the end I 
think the proper fix will be to clean everything up to be 32bits. At the 
moment I have my own set of hacks for c1.

BTW 64bit c1 is working fairly well at the moment. Unfortunately It'll 
be a while before it shows up what with reviews and the switch to mercurial.


More information about the hotspot-dev mailing list