This patch adds support for loading Java 1.5 classes
and the new LDC <class literal=""> bytecode. Class
literals are recognized by making values in the
constant pool either positive, indicating a JTOC
offset, or negative, indicating a type reference ID. As
class references can't be generated in the JTOC at boot
image writing time, we fill them in
VM.createClassObjects (so we record their use using
VM.deferClassObjectCreation). So far I've only built
the patch using Sun's JDK 1.5 on Intel Linux with a
prototype build. Jikes 1.22 was run with "-target 1.5".
Jikes with -target 1.5 generates anonymous classes with
a "-<num>" extension rather than "$<num>" which
currently isn't supported by Classpath's
Character.isJavaIdentifierPart. It seems that the class
names are in a slight state of flux, and this causes
problems when putting strings in jconfigure and when
calling VM.runClassInitiazer. I will work on the
necessary opt compiler, 64bit PowerPC and splitting
this patch from my JDWP patch tomorrow but the patch as
it stands can give you an early heads up. SPEC JBB 2005
isn't yet running, we pass the sanity checks and then
die as shown at the end of this description. I will
look for other Java 1.5 test cases and I haven't tried
the classpath generics branch.
Ian
Loading Warehouse 1...
Exception in thread "main":
gnu.xml.dom.DomDOMException: The node doesn't belong here.
More Information: can't append COMMENT_NODE to node of
type DOCUMENT_TYPE_NODE
Node Name: JBB-Document
at gnu.xml.dom.DomNode.checkMisc(DomNode.java:377)
at
gnu.xml.dom.DomNode.appendChild(DomNode.java:550)
at gnu.xml.dom.DomNode.cloneNode(DomNode.java:1120)
at gnu.xml.dom.DomNode.cloneNode(DomNode.java:1118)
at
spec.jbb.infra.Util.XMLTransactionLog.copy(VM_StackTrace.print():
UNEXPECTED Throwable while displaying stack trace # 217
The Throwable was: java.lang.NullPointerException
VM_StackTrace.print(): And its stack trace was:
java.lang.NullPointerException
at com.ibm.JikesRVM.PrintLN.print(PrintLN.java:149)
at
com.ibm.JikesRVM.VM_BaselineCompiledMethod.printStackTrace(VM_BaselineCompiledMethod.java:184)
at
com.ibm.JikesRVM.VM_StackTrace.print4Real(VM_StackTrace.java:360)
at
com.ibm.JikesRVM.VM_StackTrace.print(VM_StackTrace.java:262)
at
java.lang.Throwable.doPrintStackTrace(Throwable.java:269)
at
java.lang.Throwable.printStackTrace(Throwable.java:238)
at
java.lang.Throwable.printStackTrace(Throwable.java:218)
at
java.lang.Throwable.printStackTrace(Throwable.java:353)
at
java.lang.Throwable.printStackTrace(Throwable.java:197)
at
java.lang.Throwable.printStackTrace(Throwable.java:166)
at
com.ibm.JikesRVM.VM_Runtime.deliverException(VM_Runtime.java:901)
at
com.ibm.JikesRVM.VM_Runtime.athrow(VM_Runtime.java:576)
at spec.jbb.JBBmain.main(
Patch containing provisional Java 1.5 support for Intel Linux
Baseline and opt compiler java 1.5 support for Intel
Logged In: YES
user_id=308843
Here is a new patch that shows support for Java 1.5 class
constants in the baseline and optimizing compilers. It still
needs something to normalize class constants in the PowerPC
optimizing compiler - which will be very similar to String
constants. I've also refactored the getType and isXX methods
in OPT_Operand. My config file has jikes "-target 1.5" and
for some reason that generates anonymous classes with -
instead of $ separators in the class name (this appears to
be a jikes bug). I'm also building on Sun's JDK 1.5.0 with
the CVS head. The build will run SpecJVM but still fails
SpecJBB'05 but this may be a classpath issue.
Ian
The new class constant operand
Logged In: YES
user_id=308843
This is the final patch I think is necessary to enable
support for Java 1.5 on Intel and PowerPC. I found the
PowerPC quick compiler to not compile, so I've also fixed
this. I will submit this patch when I get chance.
Ian
Fixes for PowerPC base, quick and opt compilers plus 1.5 changes for all architectures