- page Main Page
- An enhanced startup narrative on the main page might be useful.
- page Main Page
- Section 2.6.6, value set conversions of floating point numbers are not implemented. See note in table in this section. Likewise for section 2.18, FP-strict expressions, and section 3.8, floating point arithmetic.
- page Main Page
- The virtual execution engine is still under development as this initial contribution is being made. While the project team is working on learning what is inside the code, this final module will be completed. The relevant code is found in opcode_run in source file opcode.c
- Class jvm_pc
- Does an
arraydims item
need to be added for processing of array classes, or is the scalar concept sufficient in code?
- Global rjvm::timeslice_expired
- Verify this is okay.
- Global rthread::name
- not impl.
- Global rthread::locktarget
- This implementation can only handle ONE SINGLE monitor lock.
- File commondox.sh
- A Windows .BAT version of this script needs to be written
- File config.sh
- Support the following input parameter format:
- File config.sh
- A Windows .BAT version of this script needs to be written
- Global CONFIG_HACKED_RTJARFILE
- Put fuller definition for this symbol and its usage into the code in classpath.c .
- Global CONFIG_HACKED_RTJARFILE
- Need to find some other way to locate the class library archive in the JDK so that any JDK may be considered (initially). Need to ultimately change out the logic that uses it over time to begin looking for natively constructed class library archive instead of leaning on outside work.
- Global CONFIG_HACKED_BOOTCLASSPATH
- Put fuller definition for this symbol and its usage into the code in classpath.c and argv.c .
- Global CONFIG_HACKED_BOOTCLASSPATH
- Remove compiled absolute path name in favor or either a relative path name or removal of this symbol from the logic entirely.
- File dist-bin.sh
- This script should probably support each and every CPU platform that implements this code instad of having just a single output location for each file. However, that also involves changes to build.sh and clean.sh and common.sh, as well as config.sh. This is left as an exercise for the project team. For an example of such a multi-host script, consider that the original development was done on a Solaris platform. Such distribution should be built using ./clean.sh all followed by ./build.sh all and should contain all formats of documentation. If no CPU-specific directory level were implemented, result should look like the current distribution:
- File dist-bin.sh
- A Windows .BAT version of this script needs to be written
- File dist-doc.sh
- A Windows .BAT version of this script needs to be written
- File dist-src.sh
- A Windows .BAT version of this script needs to be written
- File dox.sh
- Identify reason for spurious message on RTF output as described above.
- File dox.sh
- A proper solution to old NetScape 4.7X processing the HTML tag <pre class="fragment"> syntax needs to be found and implemented so that <code> and @verbatim fragments, etc., may be displayed with proper framing and with proper newlines and white space. For the interim solution, see the end of this script. The problem will probably be solved by adjusting the doxygen.css (the default .css file) or supplying one that is customized for the project or perhaps just for old NetScape browsers. The scripts doxpatch.sh and doxunpatch.sh that support the interim solution might also be used in support of the proper solution if an "original" and a "patched" version of the style sheet exists in the HTML output directory. The alternative is to have an original and patched version of the HTML pages, which might be preferable, depending on the actual visual artifacts. In this case, a patch/unpatch script might either not be such a good idea or would be a bit more complex to implement. In any event, the correct approach is to find the HTML problem and fix it, probably in the style sheet.
- File dox.sh
- Perhaps the above to-do item should be generalized for the old NetScape 4.7X browser since is seems to have some overall problems with fonts in the default 'doxygen.css' style sheet. Perhaps someone with CSS experience could contribute one or more style sheets for use with different types of browsers so the HTML documents look the same on all of them.
- File dox.sh
- Consider the creation of a .css file that is customized especially for this project.
- File dox.sh
- A Windows .BAT version of this script needs to be written
- File dox_filter.sh
- A Windows .BAT version of this script needs to be written
- File doxpatch.sh
- A Windows .BAT version of this script needs to be written
- File doxunpatch.sh
- A Windows .BAT version of this script needs to be written
- File getsvndata.sh
- A Windows .BAT version of this script needs to be written
- File getsvndups.sh
- A Windows .BAT version of this script needs to be written
- File build.sh
- A Windows .BAT version of this script needs to be written
- File build.sh
- A Windows .BAT version of this script needs to be written
- File build.sh
- A Windows .BAT version of this script needs to be written
- File build.sh
- A Windows .BAT version of this script needs to be written
- File build.sh
- A Windows .BAT version of this script needs to be written
- File build.sh
- The linked binary should be converted to a shared object .so/.dll file instead.
- File build.sh
- A Windows .BAT version of this script needs to be written
- File build.sh
- The entire project should also have 'gmake' support. It would be a simple thing to add/change the 'config/*' roster files with config.sh to support this.
- File build.sh
- A Windows .BAT version of this script needs to be written
- File clean.sh
- A Windows .BAT version of this script needs to be written
- File clean.sh
- A Windows .BAT version of this script needs to be written
- File clean.sh
- A Windows .BAT version of this script needs to be written
- File clean.sh
- A Windows .BAT version of this script needs to be written
- File clean.sh
- A Windows .BAT version of this script needs to be written
- File clean.sh
- A Windows .BAT version of this script needs to be written
- File common.sh
- A Windows .BAT version of this script needs to be written
- File common.sh
- A Windows .BAT version of this script needs to be written
- File common.sh
- A Windows .BAT version of this script needs to be written
- File common.sh
- A Windows .BAT version of this script needs to be written
- File common.sh
- A Windows .BAT version of this script needs to be written
- File common.sh
- A Windows .BAT version of this script needs to be written
- Global jvm_object_hash
- In the JVM spec, an object reference seems to look like an arbitrary integer token. However, looking at the JNI header file for the Solaris JDK 1.4.2_06 implementation, it appears to be a pointer to an empty structure. The apparent purpose of this definition is to have a completely generic definition of use by any implementation. HOWEVER, there is a problem with this: What happens when the implementation is ported to a 64-bit hardware runtime environment? All pointers change from 32 bits (namely, from
sizeof(jint))
to 64 bits (namely, sizeof(jlong))
, taking a second 32-bit word. This can have significant implications for code, and not only for the JNI interface. This needs some detailed scrutiny so that the JNI interface and the implementation as a whole properly compensates for this situtation or declares it a non-issue.
- Global jvm_object_hash
- item, the consider that many GC implementations use a variation of "copying garbage collection" (sometimes with adjectives in front, such as "generational copying garbage collection," etc.). These tend to be more efficient than the old mark-and-sweep, even though they usually add an extra layer of indirection. For example, every pointer might actually be an index into a table of pointers or perhaps a pointer to a pointer. The idea is that the GC algorithm can relocate/copy the object, knowing it needs to update only one pointer and all current accesses to the object at its old location will now be able to access it at its new location without missing a beat. In this case, the 32-bit unsigned int might be an index into a table of pointers and the pointers might be 64-bits or 32-bits or anything else.
- Global jlString_intern
- Is this correct?
- Global jlThread_checkAccess
- A smart java.lang.SecurityManager will take care of this matter.
- Global jlThread_destroy
- Should this be implemented? Some JDK's probably don't implement it any more.
- Global jlThread_isAlive
- CAVEAT: Should this thread eventually get reallocated as pjvm->thread_new_last wraps around after JVMCFG_MAX_THREADS more new threads, this function will return a stale result at the real machine level. This is unlikely, however, because the allocation of
java.lang.Thread objects
will likely cover this concern at a higher level in the design.
- Global jlThread_isDaemon
- See notes elsewhere about implementation of the ISDAEMON bit.
- Global jlThread_resume
- Add logic to detect SecurityException beyond passing in an invalid objhashthis.
- Global jlThread_setDaemon
- See notes elsewhere about implementation of the ISDAEMON bit. This concept must be implemented in the JVM structures so as to know when to quit (no non-daemon threads running, that is, no user threads running). Currently, it is a status bit in the rthread.status structure named THREAD_STATUS_ISDAEMON but is typically also found as a private class member of
java.lang.Thread
. If this were always true, then the former could be eliminated. Since this code actually implements this class' native methods, either one could be eliminated if none of the other (non-native) class methods referenced the private variable without going through jlThread_isDaemon. However, this question is why this action item is present.
- Global jlThread_setPriority
- Add logic to detect SecurityException.
- Global jlThread_stop
- Add logic to detect SecurityException beyond passing in an invalid objhashthis.
- Global jlThread_suspend
- Add logic to detect SecurityException beyond passing in an invalid objhashthis.
- File arch.h
- There needs to be a Java equivalent written for the macros ARCH_COPYRIGHT_TEXT_APACHE, ARCH_LICENSE_TEXT_APACHE, and ARCH_COPYRIGHT_APACHE()
- Global cfattrib_loadattribute
- Delete this when TODO: items below satisfied
- Global cfattrib_loadattribute
- Verify "ConstantValue" attribute contents
- Global cfattrib_loadattribute
- Verify "Code" attribute contents
- Global cfattrib_loadattribute
- Verify "Exceptions" attribute contents
- Global cfattrib_loadattribute
- Verify "InnerClasses" attribute contents
- Global cfattrib_loadattribute
- "EnclosingMethod" attribute has nothing to verify
- Global cfattrib_loadattribute
- "Signature" attribute has nothing to verify
- Global cfattrib_loadattribute
- "Synthetic" attribute has nothing to verify
- Global cfattrib_loadattribute
- Verify "SourceFile" attribute contents
- Global cfattrib_loadattribute
- Verify "LineNumberTable" attribute contents
- Global cfattrib_loadattribute
- Verify "LocalVariableTable" attribute contents
- Global cfattrib_loadattribute
- Verify "LocalVariableTypeTable" attribute contents
- Global cfattrib_loadattribute
- "Deprecated" attribute has nothing to verify
- Global cfattrib_loadattribute
- Verify "RuntimeVisibleAnnotations" attribute contents
- Global cfattrib_loadattribute
- Verify "RuntimeInvisibleAnnotations" attribute contents
- Global cfattrib_loadattribute
- Verify "RuntimeVisibleParameterAnnotations" contents
- Global cfattrib_loadattribute
- Verify "RuntimeInvisibleParameterAnnotations" contents
- Global cfattrib_loadattribute
- "AnnotationDefault" attribute has nothing to verify
- Global cfattrib_loadattribute
- Ignore unrecognized attribute. There really should not be anything to do here since the return value already points to the next attribute.
- Global cfmsgs_typemsg
- Widen pointer format logic for 64-bit pointers
- Global cfmsgs_typemsg
- Above logic works, 64-bitlogic below needs testing:
- Global cfmsgs_typemsg
- Make format string properly reflect 64-bit int
- Global cfmsgs_typemsg
- Above logic works, 64-bit logic below needs testing:
- Global cfmsgs_atrmsg
- Verify (jlong) retrieval of
bytes for
both -m32 and -m64 compilations.
- Global cfmsgs_atrmsg
- Above logic works, logic below needs testing:
- Global cfmsgs_atrmsg
- Make format string properly reflect 64-bit (rlong)/(jlong)
- Global cfmsgs_atrmsg
- Verify (jfloat) retrieval of
bytes for
both -m32 and -m64 compilations.
- Global cfmsgs_atrmsg
- Verify (jdouble) retrieval of
bytes for
both -m32 and -m64 compilations.
- Global cfmsgs_atrmsg
- Above logic works, 64-bit logic below needs testing:
- Global cfmsgs_atrmsg
- Make format string properly reflect 64-bit (double)/(jdouble)
- Global cfmsgs_atrmsg
- Verify (jint) retrieval of
bytes for
both -m32 and -m64 compilations.
- Global class_load_from_cp_entry_utf
- Throw UnsupportedClassVersionError
- Global class_load_from_cp_entry_utf
- (The
<clinit> procedure
is run when the JVM virtual machine execution engine moves a new class from the START state into the RUNNABLE state.)
- Global class_load_from_cp_entry_utf
- Make sure that this superclass and all of its superclasses are not only loaded, but also linked and have
<clinit> run
also.
- Global class_static_new
- Where is this mkref's GC_CLASS_RMREF() ???
- Global class_reload
- This function needs more testing. Also, is it really needed in the implementation?
- Global class_static_delete
- Make sure all objects of this class type have been destroyed before destroying this class itself!
- Global class_static_delete
- This function may be used to declutter the class table when a class has not been used for some period of time (including any static methods and fields, watch out for static final constants), so as to free up its slot for other purposes.
- Global class_static_delete
- Determine what to do, if anything, when rfalse is returned from linkage_unresolve_class(). Is the class slot unusable? Should class_static_delete() proceed?
- Global class_static_delete
- Is there anything equivalent to calling
java.lang.Object.finalize() for
an object that must be invoked before unloading a class?
- Global class_load_resolve_clinit
- Any JAR file passed in here that has a
[
in its first one or more characters may be interpreted as an array class. I have not tested this, and it is an oddball, but somebody needs to make sure that either, (a) such a name is never passed in, which is preferred due to standard industry file naming practices, and/or (b) that no array processing happens in the lower levels.
- Global class_load_resolve_clinit
- Currently, return valid class index even if no
<clinit> was
available. Is this correct? Or should it throw a VerifyError since a method was declared, yet had no code area? Take the easy way out for now, evaluate and maybe fix later.
- Global class_get_constant_field_attribute
- Need to recognize signatures
- Global class_get_constant_field_attribute
- Above logic works, 64-bit logic below needs testing:
- Global class_get_constant_field_attribute
- Above logic works, 64-bit logic below needs testing:
- Global class_get_constant_field_attribute
- Load up this string into a
java.lang.String using
the source from
- File classfile.c
- Per spec section 5.4.1, need to verify the contents of the file read in before initializing the class, else throw VerifyError.
- File classfile.c
- Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.
- Global classfile_readjarfile
- Need a version of this that works on MS Windows
- Global classfile_readjarfile
- Check `pwd` overflow and rnull returned
- Global classfile_allocate_primative
- Need to take a hard look at the requirements for
java.lang.Class and
see if this is sufficient or even accurately implemented.
- Global classfile_allocate_primative
- Needs more thought
- Global classfile_allocate_primative
- Is this assumption valid/meaningful?
- Global classfile_loadclassdata
- Need a much better way to free partially built class structure when an error occurs. The current scheme is only piecemeal and will leave orphaned memory blocks lying around when something is freed that has the pointer to it, case in point, the constant_pool[] table when freeing the main ClassFile structure block on error. The partial solutions of adding heap pointer parameters to LOAD_SYSCALL_FAILURE() and GENERIC_FAILURExxx() macros is not useful here since so many allocations are done in this function.
- Global classfile_loadclassdata
- Throw UnsupportedClassVersionError for bad versions
- Global classfile_loadclassdata
- Need better and more complete heap free here
- Global classfile_loadclassdata
- Need to free constant_pool[0..n] also if failure
- Global classfile_loadclassdata
- HEAP_FREE_METHOD(pcfs->constan_pool[0..n]);
- Global classfile_loadclassdata
- Throw VerifyError for classes w/ questionable contents
- File classfile.h
- Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.
- Global classpath_get_from_prchar
- VM Spec section 5.3.1: Throw 'NoClassDeffoundError' if no match.
- Global classpath_list
- Add proper searching for
rt.jar file
and Xbootclasspath
. For the moment, they are defined in config.h as the CONFIG_HACKED_RTJARFILE and CONFIG_HACKED_BOOTCLASSPATH pre-processor symbols and are commented in jvmcfg.h after this fashion.
- Global gc_run_stub
- Write the object GC algorithm
- File jlObject.c
- Perform intelligent check on input parameter objhash range for all functions.
- File jlObject.c
- In real life, the objhashthis values and clsidxthis values will be valid or these functions could not be invoked since these data types are mandatory for referencing them. This probably means that the parameter valididty checking could probably be relaxed.
- File jlString.c
- Perform intelligent check on input parameter objhash range for all functions.
- File jlThread.c
- Perform intelligent check on input parameter objhash range for all functions.
- File jlThread.c
- In real life, the objhashthis values and clsidxthis values will be valid or these functions could not be invoked since these data types are mandatory for referencing them. This probably means that the parameter valididty checking could probably be relaxed.
- File jvm.c
- Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.
- Global jvm_init
- Create a
java.lang.String as
java.lang.String(byte[], int, int)
where the call is made, as it were, to java.lang.String.<init>(pjvm->argv[i], 0, strlen(pjvm->argv[i]));
- Global jvm_init
- POP_FRAME() and do new PUSH_FRAME() with startup class PC (Do
new Thread()
and hack the PC with startup class main() entry
.)
- File jvm.h
- Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.
- File jvmcfg.h
- Add proper searching for 'rt.jar' file and '-bootclasspath'. For the moment, they are defined in config.h as the CONFIG_HACKED_RTJARFILE and CONFIG_HACKED_BOOTCLASSPATH pre-processor symbols and are implemented in classpath.c in this way.
- File jvmcfg.h
- Need to evaluate if and when and how to phase out use of the configuration variables CONFIG_HACKED_RTJARFILE and CONFIG_HACKED_BOOTCLASSPATH
- Global JVMCFG_TIMESLICE_PERIOD_ENABLE
- Make sure to enable the time slicer for normal JVM operation. It may be handy to disable it for debugging, but no threading will occur in the JVM outer loop until it is enabled!
- Global DEREFERENCE_PC_GENERIC_ATTRIBUTE
- Watch out for when
codeatridx is
a BAD index, namely jvm_attribute_index_bad
- Global jvmutil_print_stack_common
- Get line numbers
- Global jvmutil_print_stack_common
- Show details of stack frame
- Global jvmutil_print_stack_common
- Show local variables in stack frame
- Global linkage_resolve_class
- What needs to happen when base type is BASETYPE_ARRAY or BASETYPE_ERROR or BASETYPE_VOID?
- Global linkage_resolve_class
- Should this instance permit use of find_registerNatives since interaces are not a part of the JVM startup, just a few foundational classes? Should it just be rfalse instead?
- Global manifest_get_main
- Although such a continuation is supported by the JAR file, this implementation does not support it (yet). With this restriction, the if only one single space separates the name of the attribute and the class name, then since a line may be up to 72 characters long (that is JVMCFG_JARFILE_MANIFEST_LINE_MAX characters), then the class name may be 61 characters long.
- Global method_return_type
- Should this throw a VerifyError instead? Is it better to let caller do this?
- Global POP_JDOUBLE
- Perform value set conversion here for native methods and elsewhere for virtual methods.
- Global POP_JFLOAT
- Perform value set conversion here for native methods and elsewhere for virtual methods.
- Global native_run_method
- Invoke the full JNI interface for this method at this place. Additional parameters will be needed.
- Global native_run_method
- Which is the better error, VerifyError or NoSuchMethodError ?
- Global object_instance_new
- case needs testing: 0 == arraylength[0]
- Global object_instance_delete
- Is the java.lang.Object.finalize() method (or its subclass) invoked by the actual Java code when an object reference is removed? Is this a GC function? Where should this method be called when tearing down this object?
- Global objectutil_synchronize
- Make sure IllegalMonitorStateException logic covers all possibilities or needs to be removed.
- Global objectutil_unsynchronize
- Make sure thread interruption logic below here is working.
- File opcode.c
- The code fragment macros used by the opcode switch in opcode_run() need to have the local variables documented as to which as required upon macro startup and which are set for use at macro completion.
- Global FORCE_JINT
- A careful review of this macro across different compilers is very much in order.
- Global FORCE_JFLOAT
- A careful review of this macro across different compilers is very much in order.
- Global PUTDATA
- The various type casting games of integer/sub-integer and integer/float/double and integer/objhash need to be carefully scrutinized for correctness at run time.
- Global PUTDATA
- Is BASTYPE_CHAR_ARRAY a legal case for PUTSTATIC and PUTFIELD ?
- Global GETDATA
- The various type casting games of integer/sub-integer and integer/float/double and integer/objhash need to be carefully scrutinized for correctness at run time.
- Global GETDATA
- Is BASTYPE_CHAR_ARRAY a legal case for GETSTATIC and GETFIELD ?
- Global opcode_end_thread_test
- Should FP condition be fp_end_program <= THREAD().fp instead of < condition?
- Global opcode_load_run_throwable
- Make this load and run the error class
<clinit> and
default <init> method
instead of/in addition to fprintf(). Other exit_throw_exception() handlers will have invoked this method, so it must be rearmed again at this point, lest an error that invokes it causes an infinite loop.
- Global opcode_run
- See if there is a better time-slicing algorithm that is just as easy to use and keeps good real clock time.
- Global opcode_run
- : having
run_init_
(parm 7) for invocations of opject_instance_new() to be rfalse the right thing to do for array initialization, namely opcodes NEWARRAY and ANEWARRAY ? Initializing an array is really not a constructor type of operation, but the individual components (elements) of the array probably would be, and with default parameters.
- Global opcode_run
- What needs to go here?
- Global opcode_run
- What needs to go here?
- Global opcode_run
- What needs to go here?
- Global opcode_run
- Get
ThreadGroup logic
working that figures out which java.lang.ThreadGroup this
thread is a part of and invoke java.lang.ThreadGroup.uncaughtException() for
that specific object instead of this general method. Probably the class library will gripe about not knowing which object to associate with the method call since java.lang.ThreadGroup.uncaughtException() is
not a static method
.
- Global opcode_run
- What needs to go here, if anything?
- Global opcode_run
- Test this opcode
- Global opcode_run
- Test this opcode
- Global opcode_run
- Test this opcode
- Global opcode_run
- Test this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Is this test needed here, or only in xRETURN ?
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Implement test for same number of locks/unlocks per JVM spec section 8.13.
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Make sure that all of "class, array, or interface type" is supported by this test:
- Global opcode_run
- : Is 'rfalse' correct?
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Test this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Write this opcode
- Global opcode_run
- Should this
if() statement
be inside of the block requesting COMPLETE state? Should a simple return(rtrue) be
there? Should this if() statement
be expanded to consider other conditions? Etc. Just needs review for other possibilities.
- Global thread_new_common
- Need to also implement java.lang.ThreadGroup as a preparatory step to instantiating java.lang.Thread
- Global thread_new_common
- Any time the isdaemon field is modified, MAKE SURE that the value in the
java.lang.Thread instance
variable is set to the same value. This should never be an issue except when instantiating a new java.lang.Thread object
since the API docs say that it can only be set once.
- Global thread_init
- What should the priority be on these threads?
- Global thread_die
- Could leave stack in place for post-mortem if it is assumed that there would be a reasonable amount of contents still valid in memory.
- Global threadutil_update_blockingevents
- Interruptible from class
java.nio.channels.InterruptibleChannel
- File threadutil.c
- Timers for Thread.sleep() and Thread.wait() and Object.wait() that use millisecond timers are supported. The variation that supports higher resolution of milliseconds and nanoseconds are not supported, but the millisecond version is used instead.
- Global timeslice_shutdown
- Is this necessary at JVM shutdown time?
- Global GETRS2
- Make sure GETRI4() works with -m64 compilations (64-bit ptrs)
- Global GETRS2
- Make sure GETRL8() works with -m64 compilations (64-bit ptrs)
- File README
- Need to verify which web document for the Java 5 class file definition is either "official", actually correct, or is the de facto standard.
- File svnstat.sh
- The
sed(1) command
as documented is not valid. See also the @bug entry for this script.
- File undox.sh
- A Windows .BAT version of this script needs to be written
Generated on Fri Sep 30 18:51:03 2005 by
1.4.4