Joel Dice
7164743009
fix Array.makeObjectArray regression
2010-12-01 15:44:09 -07:00
Joel Dice
84520cde51
Merge remote branch 'origin/master' into openjdk
2010-12-01 14:40:58 -07:00
Joel Dice
1d9489a76e
fix a couple of 64-bit-op-on-32-bit-system bugs
...
We weren't properly handling the case where a 64-bit value is
multipled with itself in multiplyRR, leading to wrong code. Also,
addCarryCR didn't know how to handle constants more than 8-bits wide.
2010-11-30 16:58:51 -07:00
Joel Dice
19dca18cd0
disable Math.abs(long) intrinsic on 32-bit x86
...
It never worked and caused the compiler to crash instead due to an
impossible-to-fulfill constraint.
2010-11-30 11:36:18 -07:00
Joel Dice
4f23601b56
fix corner cases which led to crashes in JIT compiler
...
Compiling the entire OpenJDK class library into a bootimage revealed
some corner cases which broke the compiler, including synchronization
in a finally block and gotos targeting the first instruction of an
unsynchronized method.
2010-11-26 12:36:43 -07:00
Joel Dice
878e98954b
add QueryDump heap dump analysis tool
2010-11-22 10:04:28 -07:00
Joel Dice
19dbc61e9f
for heapdump=true builds, optionally generate dump on OOM
...
If the VM runs out of heap space and the "avian.heap.dump" system
property was specified at startup, the VM will write a heap dump to
the filename indicated by that property. This dump may be analyzed
using e.g. DumpStats.java.
2010-11-18 10:55:00 -07:00
Joel Dice
a611ccda6f
Merge remote branch 'origin/master' into openjdk
...
Conflicts:
makefile
src/compile.cpp
src/compiler.cpp
src/type-generator.cpp
2010-11-16 10:18:08 -07:00
Joel Dice
937b7a7d34
Merge remote branch 'origin/arm'
2010-11-16 09:56:35 -07:00
Joel Dice
64601e6f3e
name VM-internal classes for heapdump=true builds
...
This makes heap dumps more useful since these classes are now refered
to by name instead of number.
This commit also adds a couple of utilities for parsing heap dumps:
PrintDump and DumpStats.
2010-11-16 09:31:49 -07:00
Joel Dice
86188cfc04
fix OS X openjdk and openjdk-src builds
2010-11-15 20:28:53 -07:00
Joel Dice
7978102cb6
use register for indexing if constant offset is too large (or too small)
...
Immediate indexes on ARM must be no more than 12 bits, so we must use
a temporary register for values which don't fit.
2010-11-09 11:36:38 -07:00
Joel Dice
75de0a621b
fix windows.cpp MySystem::now
2010-11-07 12:35:31 -07:00
Joel Dice
d0a6096eb0
add support for accessing embedded JARs as if they were directories
...
This allows OpenJDK to access time zone data which is normally found
under java.home, but which we must embed in the executable itself to
create a self-contained build. The VM intercepts various file
operations, looking for paths which start with a prefix specified by
the avian.embed.prefix property and redirecting those operations to an
embedded JAR.
For example, if avian.embed.prefix is "/avian-embedded", and code
calls File.exists() with a path of
"/avian-embedded/javahomeJar/foo.txt", the VM looks for a function
named javahomeJar via dlsym, calls the function to find the memory
region containing the embeded JAR, and finally consults the JAR to see
if the file "foo.txt" exists.
2010-11-05 13:18:28 -06:00
Joel Dice
1d4b54a9f6
fix failure to add abstract virtuals to class with no declared virtuals
2010-09-25 16:35:18 -06:00
Joel Dice
e75b57a127
don't abort when compiling an array lookup with a constant negative index
...
Instead, just compile it as a direct call to the thunk which throws an
ArrayIndexOutOfBoundsException.
2010-09-25 15:48:15 -06:00
Joel Dice
ebc54c234f
fix signedness error for wide iinc implementation
2010-09-23 08:50:09 -06:00
Joel Dice
88942a9672
search for jar file in Zip.java instead of trying to load by hard-coded name
2010-09-20 17:30:39 -06:00
Joel Dice
d0d53e2e10
fix custom-classloader-related concurrency problems and other bugs
...
The main changes in this commit ensure that we don't hold the global
class lock when doing class resolution using application-defined
classloaders. Such classloaders may do their own locking (in fact,
it's almost certain), making deadlock likely when mixed with VM-level
locking in various orders.
Other changes include a fix to avoid overflow when waiting for
extremely long intervals and a GC root stack mapping bug.
2010-09-16 20:49:02 -06:00
Joel Dice
d5b35bea6e
remove redundant import from FileOutput.java
2010-09-12 14:41:01 -06:00
Zsombor Gegesy
6752505cb8
add File.canRead()/File.canWrite() implementation
2010-09-11 21:23:46 +02:00
Joel Dice
64100d17c7
Merge branch 'master' of oss.readytalk.com:/var/local/git/avian into openjdk
2010-09-10 15:58:43 -06:00
Joel Dice
cddea7187d
preliminary support for using OpenJDK's class library
...
Whereas the GNU Classpath port used the strategy of patching Classpath
with core classes from Avian so as to minimize changes to the VM, this
port uses the opposite strategy: abstract and isolate
classpath-specific features in the VM similar to how we abstract away
platform-specific features in system.h. This allows us to use an
unmodified copy of OpenJDK's class library, including its core classes
and augmented by a few VM-specific classes in the "avian" package.
2010-09-10 15:05:29 -06:00
Joel Dice
250a77dc13
handle empty strings properly in Pattern.split
...
We were incorrectly returning an empty array when the input was empty,
whereas we ought to return an array containing a single empty string.
When the pattern to match was empty, we went into a loop to create an
infinite list of empty strings, only to crash once we've run out of
memory. This commit addresses both problems.
2010-09-06 11:16:27 -06:00
Joel Dice
7eabe13921
verify file contents in FileOutput test
2010-08-16 09:30:39 -06:00
Zsombor Gegesy
1daa93d3c4
add ability to append to files
2010-08-16 09:23:48 -06:00
Joel Dice
ddc90ef76e
fix 64-bit left shifts with constant shifts greater than or equal to 32
...
The shiftLeftC function in powerpc.cpp was miscompiling such shifts,
leading to crashes due to illegal instructions and other weirdness due
to instructions that meant something completely different. This
commit fixes that and adds a test to Longs.java to make sure it stays
fixed.
2010-07-23 10:52:58 -06:00
Joel Dice
99bb7924b0
fix stack frame mapping code for exception handlers
...
Previously, the stack frame mapping code (responsible for statically
calculating the map of GC roots for a method's stack frame during JIT
compilation) would assume that the map of GC roots on entry to an
exception handler is the same as on entry to the "try" block which the
handler is attached to. Technically, this is true, but the algorithm
we use does not consider whether a local variable is still "live"
(i.e. will be read later) when calculating the map - only whether we
can expect to find a reference there via normal (non-exceptional)
control flow. This can backfire if, within a "try" block, the stack
location which held an object reference on entry to the block gets
overwritten with a non-reference (i.e. a primitive). If an exception
is later thrown from such a block, we might end up trying to treat
that non-reference as a reference during GC, which will crash the VM.
The ideal way to fix this is to calculate the true interval for which
each value is live and use that to produce the stack frame maps. This
would provide the added benefit of ensuring that the garbage collector
does not visit references which, although still present on the stack,
will not be used again.
However, this commit uses the less invasive strategy of ANDing
together the root maps at each GC point within a "try" block and using
the result as the map on entry to the corresponding exception
handler(s). This should give us safe, if not optimal, results. Later
on, we can refine it as described above.
2010-02-04 18:03:32 -07:00
Joel Dice
45476eb591
fix handling of volatile longs and doubles on PowerPC
...
We were miscompiling methods which contained getfield, getstatic,
putfield, or putstatic instructions for volatile 64-bit primitives on
32-bit PowerPC due to not noticing that values in registers are clobbered
across function calls.
The solution is to create a separate Compiler::Operand instance for each
object monitor reference before and after the function call to avoid
confusing the compiler. To avoid duplicate entries in the constant pool,
we add code look for and, if found, reuse any existing entry for the same
constant.
2010-01-27 17:46:04 -07:00
Joel Dice
04454960ec
various bugfixes for handling 64-bit floating point values on 32-bit systems
2009-11-30 15:10:34 +00:00
Joel Dice
5ead8fab17
refactor code responsible for moving data in the compiler
...
This is partially to address incorrect code generation for 64-bit
floating-point values on x86_32 and partially to reduce unnecessary
moves.
2009-11-27 21:15:12 -07:00
Joel Dice
fb5796b740
don't use SSE for long-to-double conversion on 32-bit systems
2009-11-04 00:02:38 +00:00
Joel Dice
3b4be3decd
defer to helper thunk for frem and drem
2009-10-24 19:29:20 -06:00
Joel Dice
064ad572bc
use truncation, not rounding in float2Int instructions
2009-10-20 15:43:24 -06:00
Joel Dice
23197da679
fix handling of subroutines in methods of return type long on 32-bit systems
2009-10-06 03:17:12 +00:00
Joel Dice
4f78783ef1
various bugfixes for SSE-based floating-point support
2009-10-05 14:25:12 +00:00
Joel Dice
5dad9bddd6
snapshot
2009-10-04 19:56:48 +00:00
Joel Dice
325f93b4d1
Merge branch 'master' into wip
...
Conflicts:
src/compile.cpp
src/compiler.cpp
src/machine.h
src/x86.cpp
2009-09-20 15:43:32 -06:00
Joel Dice
7aa906d97b
support runtime-visible annotations and java.lang.reflect.Proxy
2009-09-18 18:01:54 -06:00
Joel Dice
4f794f533e
fix handling of reachable, moved weak references in postVisit
2009-09-01 17:23:30 -06:00
Joel Dice
4297fa04b3
run java finalizers in a separate thread to guarantee no application locks are held when doing so
2009-08-24 17:51:31 -06:00
Joel Dice
4c14a9ab66
implement enough of java.util.regex to ensure String methods work for trivial regular expressions
2009-08-20 11:14:05 -06:00
Joel Dice
c27aa559e5
comment out use of currently-unsupported regex functionality in Strings test
2009-08-18 14:21:40 -06:00
Joel Dice
20c1ea08e6
remove a test from Misc.java since it's been moved to Strings.java
2009-08-14 08:53:33 -06:00
Joel Dice
7fcbf9d85c
fix reading 2-byte UTF-8 constants
2009-08-14 08:52:31 -06:00
Joel Dice
935329d7cf
fix 32-bit shift case in unsignedShiftRightC
2009-08-11 12:36:25 -06:00
Josh warner
af4d82ef7e
Merge branch 'master' of git://oss.readytalk.com/avian
2009-08-10 13:42:57 -06:00
Josh warner
1d3ef1fc43
Merge branch 'master' of git://oss.readytalk.com/avian, fixed problems that occured in broader testing
...
Conflicts:
src/compile.cpp
src/compiler.cpp
src/powerpc.cpp
src/x86.S
src/x86.cpp
2009-08-10 13:20:23 -06:00
Joel Dice
012d548bbb
fix sign extension from int to long on x86_64
2009-08-07 14:48:30 -06:00
Joel Dice
e5947b5ec0
remove bashism from test.sh
2009-08-06 15:58:26 -06:00
Josh warner
04583ea534
floating point test code
2009-08-06 10:34:28 -06:00
Joel Dice
7911989055
add AbstractList and AbstractSequentialList classes to java.util and listIterator methods to java.util.List
2009-08-04 17:24:29 -06:00
Joel Dice
5b23ad3f40
remove unused inner class in Tree.java
2009-07-28 16:58:33 -06:00
Joel Dice
f869e5be21
Merge branch 'master' into gnu
...
Conflicts:
classpath/java/util/TreeSet.java
2009-07-25 18:38:57 -06:00
Joel Dice
d3a249a3fa
Merge branch 'master' of oss.readytalk.com:/var/local/git/avian
2009-07-25 18:36:27 -06:00
Joel Dice
d327f6ba5a
implement java.util.TreeMap
2009-07-25 15:41:43 -06:00
Joel Dice
3787985b25
implement basic finalization support
...
This implementation does not conform to the Java standard in that
finalize methods are called from whichever thread happens to be garbage
collecting, and that thread may hold locks, whereas the standard
guarantees that finalize will be run from a thread which holds no locks.
Also, an object will never be finalized more than once, even if its
finalize method "rescues" (i.e. makes reachable) the object such that it
might become unreachable a second time and thus a candidate for
finalization once more. It's not clear to me from the standard if this
is OK or not.
Nonwithstanding the above, this implementation is useful for "normal"
finalize methods which simply release resources associated with an
object.
2009-07-21 18:57:55 -06:00
Joel Dice
d12b441aa1
restore state from subroutine after jsr to avoid later confusion determining basic block boundaries
2009-07-20 08:26:01 -06:00
Joel Dice
5f6f8039e6
various bugfixes in subroutine stack mapping code
2009-07-13 17:49:15 -06:00
Joel Dice
b308354a3a
handle subroutines properly when generating frame maps (initial sketch)
2009-06-26 15:36:04 -06:00
Joel Dice
b35a5a6db6
add new test to Subroutine to trigger latent bug compiling multiple jsr instructions to the same address
2009-06-10 18:11:27 -06:00
Joel Dice
98be5c509e
more progress towards GNU Classpath compatibility
2009-06-03 16:17:55 -06:00
Joel Dice
a8c836d2cb
move continuations tests into test/extra
2009-05-25 23:30:40 -06:00
Joel Dice
cc6bf3f42b
bugfixes and print statements in DynamicWind
2009-05-24 22:50:11 -06:00
Joel Dice
03e7a61bfd
add test/DynamicWind.java
2009-05-24 18:20:50 -06:00
Joel Dice
db91c27441
move Continuations and Coroutines tests to top-level test directory
2009-05-18 09:17:49 -06:00
Joel Dice
8463bb4056
minor tweaks to test classes
2009-05-16 21:41:27 -06:00
Joel Dice
8573619720
refine Continuations.java and add Coroutines.java
2009-05-16 21:15:41 -06:00
Joel Dice
195d95d809
continuation bugfixes
2009-05-16 18:39:08 -06:00
Joel Dice
6dc6f01359
move extra tests (not run as part of "make test") into "extra" package
2009-05-16 02:01:32 -06:00
Joel Dice
06fd492b1a
add Continuations test
2009-05-16 02:01:07 -06:00
Joel Dice
ef12477670
more work on Integers.java
2009-03-13 18:36:11 -06:00
Joel Dice
1f35e5efb4
fix cut-and-paste foolishness in Integers.java
2009-03-13 18:29:11 -06:00
Joel Dice
eb45ec7611
add some tests to Integers.java
2009-03-13 18:22:34 -06:00
Joel Dice
68ed5e6cb5
fix addC for case where bit 15 of constant is set
2009-03-08 20:09:06 -06:00
Joel Dice
a0e503ad0a
optimize moveRR and fix andC
2009-03-05 20:21:15 -07:00
Joel Dice
ed9e54bca1
add a few more tests to Floats.java
2009-03-04 17:52:06 -07:00
Joel Dice
8410e1d683
ensure reads and writes of volatile 64-bit fields are atomic
2009-03-03 18:02:11 -07:00
Joel Dice
a1ec71423e
Merge branch 'master' into powerpc
...
Conflicts:
makefile
src/assembler.h
src/binaryToMacho.cpp
src/compile.cpp
src/compiler.cpp
src/x86.cpp
2009-02-09 16:22:01 -07:00
Joel Dice
29616c4abc
freeze target site when using temporary in maybeMove
2009-02-08 18:58:33 -07:00
Joel Dice
6297c8a906
add tests to Arrays.java and Longs.java
2009-02-02 19:12:07 -07:00
Joel Dice
5a76277b84
remove dead buddies from values so they don't accumulate without bound; when resolving sites, avoid picking those which belong to other values; various bugfixes
2009-01-11 15:53:51 -07:00
Joel Dice
54ad7c4e98
tolerate ConstantValue attributes on non-static fields, since the compiler ensures that they are initialized in any constructors for that class (i.e., the VM does not need to do anything special to initialize them)
2009-01-10 12:25:52 -07:00
Joel Dice
b23f7374e9
don't steal sites in pickJunctionSite
2008-12-20 17:45:52 -07:00
Joel Dice
75b3bf98ab
pick only unfrozen frame sites in save
2008-12-20 11:13:58 -07:00
Joel Dice
d50febe088
various control-flow related bugfixes
2008-12-11 18:09:36 -07:00
Joel Dice
14e509dfd2
add additional jsr test to Subroutine
2008-11-17 08:21:20 -07:00
Joel Dice
fb770d10fb
implement jsr/ret support
...
The Subroutine test won't pass due to a bug in the stack mapping code
such that objects may be missed during GC.
2008-11-13 17:59:21 -07:00
Joel Dice
4dd1d1eec8
add Subroutine test to cover jsr and ret instructions
2008-11-12 10:07:30 -07:00
Joel Dice
c80eb51c17
Merge branch 'master' into powerpc
...
Conflicts:
makefile
src/assembler.h
src/compile.cpp
src/compiler.cpp
src/compiler.h
src/finder.cpp
2008-11-11 08:21:48 -07:00
Joel Dice
cae5202be0
split Misc.java into four separate files
2008-11-10 17:07:15 -07:00
Joel Dice
1ba497d90a
fix Exceptions test for amd64
2008-11-02 15:25:51 -07:00
Joel Dice
04da77e95b
snapshot
2008-11-02 13:35:35 -07:00
Joel Dice
5eb905fd2d
revert accidentally-committed change to Hello.java
2008-10-21 17:42:05 -06:00
Joel Dice
6a5116e7a7
implement primitive heap dump facility for memory profiling, accessible via Runtime.dumpHeap
...
The proper way to do this is to implement a subset of JVMTI, but this
will do the job for now.
2008-10-21 17:38:20 -06:00
Joel Dice
7d6ca28b2f
snapshot
2008-10-18 18:15:57 -06:00
Joel Dice
4c307ae8c6
implement minimal, read-only versions of RandomAccessFile and ZipFile
2008-10-03 14:15:47 -06:00
Joel Dice
011cbe44e3
test a simple loop in Simple.java
2008-09-07 20:22:27 -06:00
Joel Dice
42123c4c8c
Merge branch 'master' of oss.readytalk.com:/var/local/git/avian into powerpc
2008-09-06 19:40:50 -06:00
Joel Dice
ed806ca740
working towards compiling simple methods
2008-09-06 15:25:41 -06:00
Joel Dice
e0e827596e
make Long.parseLong more efficient
2008-08-29 11:37:53 -06:00
Zsombor
e1d712ef71
java.util.BitSet implementation
2008-07-13 18:16:55 -06:00
Joel Dice
a016eeaba0
fix Long.toString for Long.MIN_VALUE case
2008-07-13 17:54:44 -06:00
Joel Dice
107ac01304
fix addCR and subtractCR for cases of 64-bit constants on amd64
2008-07-02 08:52:35 -06:00
Joel Dice
e9c37f5ffd
add more tests of operations on longs to Misc.java
2008-06-12 11:00:43 -06:00
Joel Dice
fc8c5a2ea9
fix a few bugs revealed by ProGuard optimizations, including too-early constant propagation during array loads and stores
2008-06-10 08:49:13 -06:00
Joel Dice
f05318b787
fix thinkos in d2i and friends
2008-05-22 18:08:41 -06:00
Joel Dice
3326aafdac
various 32-bit fixes
2008-05-22 11:15:18 -06:00
Joel Dice
21cb1c3c8f
remove Event::validate, since it is no longer needed and actually causes trouble
2008-05-20 16:47:53 -06:00
Joel Dice
36dbf1ad14
fix another local variable caching bug
2008-05-20 15:24:10 -06:00
Joel Dice
d604efd8f5
fix local variable caching bug
2008-05-20 13:11:42 -06:00
Joel Dice
c9f06933e2
test long addition and subtraction in Misc, as well as multidimensional array creation
2008-05-18 09:45:52 -06:00
Joel Dice
b6b84af123
various bugfixes
2008-05-17 21:32:14 -06:00
Joel Dice
7f72a6469d
more register marshalling bugfixes; simple swt apps now run on amd64
2008-05-15 17:19:23 -06:00
Joel Dice
bbd1ee5540
various register marshalling bugfixes
2008-05-15 14:00:57 -06:00
Joel Dice
bf08cc4c53
fix array bounds checks
2008-04-30 11:47:25 -06:00
Joel Dice
918193fa60
fix 32-bit right unsigned shifts on amd64
2008-04-30 11:15:21 -06:00
Joel Dice
e2b24263a2
various bugfixes
2008-04-30 09:44:17 -06:00
Joel Dice
1b5f14d847
re-enable tests in Misc and get them working
2008-04-28 09:53:48 -06:00
Joel Dice
d6c3b2327f
bugfixes; enums test now succeeds
2008-04-20 13:35:36 -06:00
Joel Dice
525f733171
Merge branch 'master' into compiler
...
Conflicts:
src/compile.cpp
src/compiler.cpp
src/compiler.h
2008-04-13 13:48:20 -06:00
Joel Dice
907382bcee
fix broken field alignment in parseFieldTable which caused longs to overlap other fields on 32-bit systems in certain cases
2008-03-31 18:34:57 -06:00
Joel Dice
9e2e614a15
various fixes to get invokevirtual working
2008-03-10 16:37:21 -06:00
Joel Dice
7cfb89bd2a
Merge branch 'master' into compiler
2008-03-09 11:31:55 -06:00
Joel Dice
ec3f42c66e
allow test.sh to work in debug-fast and fast modes
2008-03-06 13:28:28 -07:00
Joel Dice
9fe00836f7
fix stack mapping code to do as many passes as necessary
...
Previously, we had been doing exactly two passes over the event log to
caculate the stack object reference map at each trace point. It turns
out the correct number of passes depends on how many incorrect
assumptions we make about what the stack looks like at instructions with
multiple predecessors (i.e. targets of jumps and branches).
Each time we detect we've made one or more incorrect assumptions during
a pass, we must do another pass to correct those assumptions. That pass
may in turn reveal further incorrect assumptions, and so on.
2008-03-05 14:44:17 -07:00
Joel Dice
d654c943f3
various bugfixes and tweaks in new compiler, primarily related to duplicating stack operands
2008-02-17 13:57:40 -07:00
Joel Dice
b9fa7179d9
more work on new compiler; addition now works
2008-02-11 17:20:32 -07:00
Joel Dice
88a8e74a53
fix register to memory mov1 implementation
2008-01-18 15:01:50 -07:00
Joel Dice
f0d556b0ec
fix handling of call target resolution for non-virtual calls
2008-01-11 15:16:24 -07:00
Joel Dice
a9a0252209
add another test to Misc.java
2008-01-10 15:47:54 -07:00
Joel Dice
4c938d496e
fix 64-bit bitshifts on 32-bit systems
2008-01-10 13:47:55 -07:00
Joel Dice
259dd643e0
fix over-agressive state reset in state mapping code; logging tweaks
2008-01-07 14:32:41 -07:00
Joel Dice
888dce8f3c
bugfixes and cleanups for new stack mapping code
2008-01-07 09:01:35 -07:00
Joel Dice
7a0079e258
add object lifetime tests to GC.java, which currently fail with JIT
2008-01-06 12:20:30 -07:00
Joel Dice
4e3e12e9d4
test fixed-sized object support in GC.java
2008-01-01 18:09:05 -07:00
Joel Dice
f151d85f4e
intercept SIGSEGV and throw NullPointerExceptions
2007-12-31 15:40:56 -07:00
Joel Dice
5d65e7c220
handle synchronized methods properly in JIT mode
2007-12-27 17:02:05 -07:00
Joel Dice
15857135c0
more JIT fixes; all tests now pass on x86-32
2007-12-23 11:48:22 -07:00
Joel Dice
31cf1754ce
fix frame trace bug leading to incomplete stack coverage during GC; fix thinko pushing arguments in vmInvoke
2007-12-23 11:01:41 -07:00
Joel Dice
4c3a2575ba
lots of JIT bugfixes; all top-level tests now pass
2007-12-17 13:55:31 -07:00
Joel Dice
796a64a426
lots of JIT bugfixes and cleanups
2007-12-15 17:24:15 -07:00
Joel Dice
b2147c2c99
lots of JIT bugfixes and a few new instructions
2007-12-12 15:19:13 -07:00
Joel Dice
fab77e4d96
don't call prologue and epilogue from compileDefault, since we want the original rbp and rsp values
2007-12-11 18:19:03 -07:00
Joel Dice
33b2a4a1e8
support absolute operands on virtual stack and absolute to memory movs
2007-12-11 17:27:04 -07:00
Joel Dice
d70e3aaefb
JIT progress: new, invokespecial, etc.
2007-12-11 16:52:28 -07:00
Joel Dice
fdeafe46fd
2+2 test now works with new JIT code
2007-12-11 14:26:59 -07:00
James Sanders
3f8a370ba8
Implemented Runtime.exec, Process.waitFor and Process.exitValue for non-windows
2007-11-30 16:39:51 -07:00
James Sanders
8f652ce12d
Implemented native Process.exitValue and Process.waitFor on windows
2007-11-29 18:01:07 -07:00
James Sanders
3f0e8a9777
Implemented Runtime.exec(String) and Runtime.exec(String[]) and added test class
2007-11-28 17:51:00 -07:00
Joel Dice
19d36cc463
implement impdep1 instruction for lazily loading bootstrap classes
2007-11-05 08:29:43 -07:00
Joel Dice
6c0e0c37e2
snapshot
2007-11-05 07:28:46 -07:00
Joel Dice
514be2dc87
snapshot
2007-11-04 16:10:33 -07:00
Joel Dice
94e9bd0fd2
clean up bootstrap type generation to eliminate redundancy (broken)
2007-11-04 14:15:28 -07:00
Joel Dice
60072b9fdc
implement fixed object support
2007-10-27 19:54:30 -06:00
Joel Dice
5dfba99545
rename Instructions.java to Misc.java
2007-10-24 15:06:02 -06:00
Joel Dice
dbf398e6d0
fix loops to interate ITERATION_COUNT times instead of ITERATION_COUNT - 1
2007-10-23 17:22:10 -06:00
Joel Dice
cfd4ebcb21
change ITERATION_COUNT to 1 to speed up test in debug mode
2007-10-23 16:20:50 -06:00
Eric Scharff
0d6ce6f54f
A stress test of both the garbage collector and function calls in general
2007-10-16 12:15:17 -06:00
Joel Dice
5f6258045e
implement various floating point instructions; fix Floats.java to actually test something
2007-10-15 13:12:38 -06:00
Eric Scharff
71e7a6d796
Simple non-blocking client and server example programs. The client
...
actually simulates blocking IO by implementing a Socket OutputStream, and
sends a file to a port. The server listens on a port and dumps the output
to test files. Together, these classes can be used to send a file from
a client to a server machine over a socket.
2007-10-07 17:15:29 -06:00
Joel Dice
ccd7118bed
Merge branch 'master' of dice:git/vm
2007-09-28 17:41:08 -06:00
Joel Dice
79603e284d
sketch of Compiler.compileNative() and ifnull instruction implementation
2007-09-28 17:41:03 -06:00
Eric Scharff
5691ec87f0
Added a proper implementation of TreeSet, based on a Persistent set implementation.
2007-09-28 11:01:57 -06:00
Joel Dice
60eeb73e0f
Merge branch 'master' of dice:git/vm
2007-09-28 08:45:32 -06:00
Joel Dice
ddab82996c
implement invokestatic, putstatic, and bipush; respect special handling of rsp and rbp in Assembler
2007-09-28 08:45:26 -06:00
Eric Scharff
07f4a359ad
Merge branch 'master' of dice.ecovate.com:/home/dicej/git/vm
2007-09-27 16:23:30 -06:00
Eric Scharff
3fb90d4c3a
Added minimalist TreeSet implementation, as well as Test classes for trees
...
and lists.
2007-09-27 16:23:05 -06:00
Joel Dice
37ccb6cb46
Merge branch 'master' of dice:git/vm
2007-09-27 16:21:00 -06:00
Joel Dice
d1681c0918
add a few more instructions to compile.cpp and fix bugs in others; invokespecial and invokevirtual are working
2007-09-27 16:20:54 -06:00
Eric Scharff
26de9c334d
Add a default logging handler, in case the user doesn't provide any.
2007-09-27 12:42:06 -06:00
Joel Dice
554dd76495
Merge branch 'master' of dice:git/vm
2007-09-26 17:23:14 -06:00
Joel Dice
2f3f97d550
clean up compile.cpp and support both x86_64 and i386; further refactoring to support JIT
2007-09-26 17:23:03 -06:00
Eric Scharff
bb4a7c21c7
Implemented a simple but working implementation of the java logging API,
...
complete with a test class
2007-09-26 14:46:21 -06:00
Eric Scharff
a88f7c8473
Implemented proper enum toString() behavior and an enum test. it should
...
work, but it fails with the current build.
2007-09-26 12:59:18 -06:00
Joel Dice
8d983c8a39
refactoring effort to pave the way for JIT compilation
2007-09-23 19:39:03 -06:00
Joel Dice
cd990969cd
fix allocation of large objects in allocate2(); remove references to jscheme and SWT in makefile and test directory
2007-09-19 08:16:49 -06:00
Joel Dice
7cb3a30a91
sketch of Runtime.exec() and Calendar; misc bugfixes
2007-09-12 18:21:37 -06:00
Joel Dice
89609e11c9
implement floating point instructions
2007-08-13 08:06:31 -06:00
Joel Dice
bf230ee151
implement tableswitch and lookupswitch instructions plus run loop bugfixes and tweaks
2007-08-12 20:52:12 -06:00
Joel Dice
7212ba1c30
java/io bugfixes and coverage; jni bugfixes; minor refactoring
2007-07-26 18:06:05 -06:00
Joel Dice
9ab88ef619
a static jni method takes the jclass for that method as its second argument; simplify pad() and divide(), and rename divide() to ceiling(); sketch FileInputStream.cpp and FileOutputStream.cpp
2007-07-25 18:48:28 -06:00
Joel Dice
97aaa419b4
quick sketch of java/io/*
2007-07-24 18:34:45 -06:00
Joel Dice
5f3bf175e0
start work on reflection; bugfixes
2007-07-23 19:44:20 -06:00
Joel Dice
de9213ce30
finish java/lang/ref/* support; add wrapper classes for primitives
2007-07-19 21:18:25 -06:00
Joel Dice
32dff71994
GC stress fixes
2007-07-19 17:45:44 -06:00
Joel Dice
c94e70060f
teach test.sh to run valgrind when in stress testing mode
2007-07-17 19:42:14 -06:00
Joel Dice
4670055b03
implement primitive testing framework and provide for GC stress testing
2007-07-15 19:03:02 -06:00