Joel Dice
747e7b0371
set minimum value for initial nextGen2 capacity; profile support
2007-08-18 16:42:11 -06:00
Joel Dice
3bbc119516
add System::now()
2007-08-18 16:35:22 -06:00
Joel Dice
215a52ba54
simplify heap.cpp by allocating segments pessimistically
2007-08-18 15:24:29 -06:00
Joel Dice
aa5e751e69
clean up Array.get(), Array.set(), and Method.invoke() implementations
2007-08-18 11:53:30 -06:00
Joel Dice
d169e4eadf
clean up Field.get() and Field.set() implementations
2007-08-18 11:15:03 -06:00
Joel Dice
3625a02910
fix handling of class references in ldc instruction
2007-08-14 20:08:43 -06:00
Joel Dice
f22dda0df1
bugfixes
2007-08-14 19:14:55 -06:00
Joel Dice
71c7013808
more bugfixes
2007-08-14 07:27:10 -06:00
Joel Dice
587dbeb163
bugfixes
2007-08-13 20:35:49 -06:00
Joel Dice
d0e519d992
bugfixes
2007-08-13 19:44:47 -06:00
Joel Dice
ab3ca38580
various bugfixes
2007-08-13 18:37:00 -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
c20219df19
flesh out serialization/deserialization code and fix build
2007-08-12 18:50:25 -06:00
Joel Dice
d3931b4853
flesh out resource URL scheme implementation
2007-08-10 17:45:47 -06:00
Joel Dice
1997ea6b8c
acquire class lock before running static initializer; wrap exceptions thrown from static initializers in ExceptionInInitializerError instances
2007-08-01 17:48:36 -06:00
Joel Dice
b56eed68be
implement Thread.[get|set]ContextClassloader()
2007-07-31 18:08:20 -06:00
Joel Dice
38d4ee6e07
flesh out ClassLoader, etc.
2007-07-30 17:19:05 -06:00
Joel Dice
da692a539f
inherit thread locals at thread creation time, not start time
2007-07-29 19:27:42 -06:00
Joel Dice
73155c6196
fix failure to remove thread from wait list in System::Monitor::notifyAll()
2007-07-29 19:18:18 -06:00
Joel Dice
a2bd7d0668
GC stress fixes and other bugfixes; classpath progress
2007-07-29 17:32:23 -06:00
Joel Dice
d5a00c4556
break native hashMap type into hashMap and weakHashMap; start investgating GC stress failures related to or uncovered by new string interning support
2007-07-29 12:52:08 -06:00
Joel Dice
c96a4a5b39
implement String.intern()
2007-07-28 18:02:32 -06:00
Joel Dice
0e373727a2
implement Thread.interrupt()
2007-07-28 15:28:25 -06:00
Joel Dice
abd9c2bc8d
fix primitive class resolution to avoid mistaking normal classes with names like 'B' for primitive classes
2007-07-28 10:55:24 -06:00
Joel Dice
41bee5829e
misc. bugfixes and tweaks
2007-07-28 10:10:13 -06:00
Joel Dice
363801af1c
classpath progress
2007-07-27 17:56:19 -06:00
Joel Dice
c9f9b039e6
classpath progress
2007-07-26 20:39:53 -06:00
Joel Dice
7212ba1c30
java/io bugfixes and coverage; jni bugfixes; minor refactoring
2007-07-26 18:06:05 -06:00
Joel Dice
b00fcd4463
superficial tweaks
2007-07-25 18:52:10 -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
38a982c7dd
handle unresolvable catch types more appropriately when unwinding
2007-07-24 20:02:25 -06:00
Joel Dice
6b0792c881
exception handling and parseMethodTable() bugfixes
2007-07-24 19:56:05 -06:00
Joel Dice
97aaa419b4
quick sketch of java/io/*
2007-07-24 18:34:45 -06:00
Joel Dice
ab47fa7884
fix member/parameter confusion in Thread::Thread()
2007-07-23 21:35:03 -06:00
Joel Dice
527f46d53d
bugfixes; add NullPointerException.java
2007-07-23 21:31:28 -06:00
Joel Dice
823d764998
working reflection
2007-07-23 21:16:59 -06:00
Joel Dice
5f3bf175e0
start work on reflection; bugfixes
2007-07-23 19:44:20 -06:00
Joel Dice
472ecb1713
flesh out some classpath classes
2007-07-22 13:06:21 -06:00
Joel Dice
da17490206
fun with collections
2007-07-21 21:47:08 -06:00
Joel Dice
90d60b3459
more classpath classes
2007-07-21 16:36:51 -06:00
Joel Dice
fd770fd884
sketch a few more classpath classes
2007-07-21 14:44:39 -06:00
Joel Dice
48226f988c
add a bunch of classes to classpath and flesh out a few existing ones
2007-07-21 11:50:26 -06:00
Joel Dice
108f8d7bc0
fix i386 build error
2007-07-20 08:39:50 -06:00
Joel Dice
0f7a2137bf
factor system.cpp and class-finder.cpp out of main.cpp
2007-07-20 08:36:31 -06:00
Joel Dice
9f91f221dd
GC stress fix in make()
2007-07-19 21:29:34 -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
faf9b63798
more work on java/lang/ref/* support
2007-07-19 19:07:30 -06:00
Joel Dice
b213ec0ef8
sketch of java/lang/ref/*
2007-07-19 18:18:47 -06:00
Joel Dice
32dff71994
GC stress fixes
2007-07-19 17:45:44 -06:00
Joel Dice
65c876b5f7
more GC stress fixes
2007-07-17 19:33:00 -06:00
Joel Dice
b848c09a34
more GC stress fixes
2007-07-17 07:22:29 -06:00
Joel Dice
e3e9981031
more GC stress fixes
2007-07-16 19:55:49 -06:00
Joel Dice
6bac351874
more GC stress fixes
2007-07-16 18:23:23 -06:00
Joel Dice
6dec1cbd42
fix various bugs uncovered in GC stress test
2007-07-16 17:58:37 -06:00
Joel Dice
7dab93de00
fix stack overflow in stress() due to StateResource destructor
2007-07-15 19:07:13 -06:00
Joel Dice
4670055b03
implement primitive testing framework and provide for GC stress testing
2007-07-15 19:03:02 -06:00
Joel Dice
3121002ffd
implement Throwable.resolveTrace(); bugfixes
2007-07-14 12:37:04 -06:00
Joel Dice
2df8a60a78
support object arrays of various element types and dimensions; clean up weak hash map support
2007-07-14 11:31:01 -06:00
Joel Dice
0099aa396b
make builtin class type a bootstrap version of java/lang/Class
2007-07-12 17:46:08 -06:00
Joel Dice
69eed6ba5a
fix method and field lookup to check superclasses
2007-07-11 18:06:57 -06:00
Joel Dice
9a2dbe6596
fix handling of newly-tenured finalizers and weak references in postVisit()
2007-07-11 07:35:28 -06:00
Joel Dice
01d858e1bc
more bugfixes, mainly monitor-related
2007-07-10 22:19:26 -06:00
Joel Dice
93748f2df9
heap o' bugfixes
2007-07-10 19:38:06 -06:00
Joel Dice
eba6a42700
replace Debug constant in machine.h with DebugMonitors
2007-07-10 17:34:53 -06:00
Joel Dice
950e1eb5cb
set stack index to the correct value when unwinding to an exception handler
2007-07-10 17:32:03 -06:00
Joel Dice
9d4c589ab1
fix typo in types.def
2007-07-10 17:31:13 -06:00
Joel Dice
3bffa44824
fix ordering bug in postVisit() and remove debug logging
2007-07-10 08:21:22 -06:00
Joel Dice
4decde57e6
more weak reference work, plus debug logging
2007-07-09 21:04:49 -06:00
Joel Dice
b70e4b368f
sketch of finalizer/weak reference overhaul; type generator bugfixes involving array member layout
2007-07-09 19:43:43 -06:00
Joel Dice
a77693fb29
snapshot; known bug: finalizers and weak references don't work correctly wrt tenured objects
2007-07-07 19:06:32 -06:00
Joel Dice
f71c77298c
bugfixes
2007-07-07 17:47:35 -06:00
Joel Dice
e5bea7a455
progress on thread support
2007-07-07 12:09:16 -06:00
Joel Dice
3bd267b47a
more refactoring
2007-07-06 17:50:26 -06:00
Joel Dice
96000a7c67
a bit more refactoring
2007-07-06 17:18:40 -06:00
Joel Dice
427dbedd0f
factor a lot of code out of vm.cpp, since it was becoming unwieldy
2007-07-06 09:24:06 -06:00
Joel Dice
6678d31d5c
fix stack overflow calculation
2007-07-05 19:10:23 -06:00
Joel Dice
dc8232eddf
store frame data on the stack, not the heap
2007-07-05 19:06:06 -06:00
Joel Dice
56467e61d7
exception handler selection bugfixes
2007-07-04 20:44:01 -06:00
Joel Dice
d2ef4dabc4
interface-related bugfixes
2007-07-04 20:25:25 -06:00
Joel Dice
c3320c2c97
flesh out classpath enough to test threading; fix indexing bug in parsePool()
2007-07-04 16:27:08 -06:00
Joel Dice
1182ea9540
Revert "fix ordering of weak reference and finalization processing"
...
This reverts commit 0a32a7b7af
.
Actually, I had it right the first time, somewhat by accident.
2007-07-04 12:43:42 -06:00
Joel Dice
0a32a7b7af
fix ordering of weak reference and finalization processing
2007-07-04 12:40:31 -06:00
Joel Dice
da844719ab
fix off-by-one thinko in GetStringUTFChars; call dlclose() in ~Library()
2007-07-04 12:15:03 -06:00
Joel Dice
25a7aae0f8
lots of bugfixes
2007-07-04 11:58:27 -06:00
Joel Dice
cabc069b16
weak reference support
2007-07-04 09:56:55 -06:00
Joel Dice
da1e12b589
fix stack overflow calculation
2007-07-03 22:13:52 -06:00
Joel Dice
9039daa375
convert thread stack to a more efficient representation
...
The stack is now represented as alternating type tags and values instead
of object references. This removes the need to store stack primitives
on the heap.
2007-07-03 20:56:02 -06:00
Joel Dice
acd254544c
zero locals when invoking method
2007-07-03 09:38:35 -06:00
Joel Dice
32b5d070fb
simplify monitor lookup; add finalization
2007-07-02 08:19:05 -06:00
Joel Dice
8acb32e4cb
store frame locals on stack and avoid need to copy parameters
2007-07-02 07:11:51 -06:00
Joel Dice
db529925e2
simplify mappedMonitor() and eliminate System::ReadWriteLock
2007-07-01 22:03:44 -06:00
Joel Dice
bb16d8e62b
snapshot (broken)
2007-07-01 19:42:35 -06:00
Joel Dice
f698d347ac
eliminate conditional when calculating object size
2007-07-01 15:47:26 -06:00
Joel Dice
38cea04322
progress towards thread support
...
This includes support for using the least significant bits of the class
pointer to indicate object state, which we'll use to indicate the
presence of a monitor pointer, among other things.
2007-07-01 15:34:22 -06:00
Joel Dice
051e3bc7a8
respect string offset and length when printing exception message
2007-06-29 20:45:45 -06:00
Joel Dice
b33f0c311d
push method frame for native invocations (so we'll see them in stack traces)
2007-06-29 20:41:49 -06:00
Joel Dice
4020f13fb0
update references to class in fields and methods in updateBootstrapClass()
2007-06-29 20:38:16 -06:00
Joel Dice
b8e009075c
stack trace work
2007-06-29 20:39:01 -06:00
Joel Dice
c34ee64988
classloading bugfixes and stack trace work
2007-06-29 19:37:45 -06:00
Joel Dice
e529d60a69
hello, world
2007-06-29 10:42:39 -06:00
Joel Dice
2057e72956
more JNI work
2007-06-28 20:58:48 -06:00
Joel Dice
f0bc4dbe76
various bugfixes
2007-06-24 20:20:35 -06:00
Joel Dice
cd2c1a2836
JNI up the wazoo
2007-06-24 20:02:24 -06:00
Joel Dice
400b3633d7
more JNI work
2007-06-24 19:34:07 -06:00
Joel Dice
f606f2d30a
more progress on JNI
2007-06-24 15:49:04 -06:00
Joel Dice
ef806e73f0
progress on JNI and bootstrap class handling
2007-06-24 13:57:00 -06:00
Joel Dice
9dc8b0529d
snapshot
2007-06-23 19:39:49 -06:00
Joel Dice
f68f455d59
prepare for native method support
2007-06-22 17:43:31 -06:00
Joel Dice
137fdcb69e
specify a more conservative initial capacity in initNextGen{1,2}()
2007-06-22 17:29:15 -06:00
Joel Dice
39bbcc03eb
refactor assertions so they can be disabled easily at compile time; fix a couple of method invocation bugs
2007-06-22 17:17:13 -06:00
Joel Dice
5ee38e259a
enable large object support; various GC bugfixes and tweaks
2007-06-22 16:47:57 -06:00
Joel Dice
4d202e4945
fix iinc instruction to use set() instead of direct assignment; add Thread::HeapSizeInWords and Thread::StackSizeInWords
2007-06-22 15:31:45 -06:00
Joel Dice
3a6da507ec
various GC bugfixes
2007-06-22 14:55:11 -06:00
Joel Dice
09f6a34510
snapshot
2007-06-21 21:16:42 -06:00
Joel Dice
d5ce307a2a
switch to a linked heap implementation
2007-06-21 20:13:17 -06:00
Joel Dice
3238b34723
fix thinko in visitRoots()
2007-06-21 17:23:43 -06:00
Joel Dice
c1d70499c2
add Debug and Verbose constants to heap.cpp
2007-06-21 16:51:55 -06:00
Joel Dice
e794fdb57f
fix jump calculation for various instructions
2007-06-21 16:50:52 -06:00
Joel Dice
31e2da3e05
various GC bugfixes
2007-06-21 16:23:35 -06:00
Joel Dice
8d0c5f4186
snapshot
2007-06-21 14:44:35 -06:00
Joel Dice
1992482236
snapshot
2007-06-21 13:43:33 -06:00
Joel Dice
29f9bb84ca
snapshot
2007-06-21 12:35:24 -06:00
Joel Dice
95c4bff51b
lots of bugfixes
2007-06-20 19:38:02 -06:00
Joel Dice
91b9dc7382
various bugfixes
2007-06-20 15:27:22 -06:00
Joel Dice
4e07acb26c
it builds!
2007-06-20 13:20:25 -06:00
Joel Dice
d4d155c834
snapshot
2007-06-20 11:42:13 -06:00
Joel Dice
1a05eb2739
snapshot
2007-06-20 10:58:35 -06:00
Joel Dice
a6e79cc417
snapshot
2007-06-19 23:16:43 -06:00
Joel Dice
459acc3419
snapshot
2007-06-19 22:26:36 -06:00
Joel Dice
caac00e5ff
start rough sketch of GC code in heap.cpp
2007-06-19 20:28:31 -06:00
Joel Dice
36152603f4
provide bounds checking for array indexing; store bootstrap types in Machine::types
2007-06-18 15:13:21 -06:00
Joel Dice
6756ade3bd
update generated type code and fix most link errors
2007-06-18 13:23:44 -06:00
Joel Dice
d595a2fd61
compiles but doesn't link
2007-06-17 22:25:42 -06:00
Joel Dice
1cb866aac1
clean up sketch of parseClass() and friends; etc.
2007-06-17 22:09:02 -06:00
Joel Dice
f99425d944
snapshot
2007-06-17 17:25:58 -06:00
Joel Dice
4493fe824e
snapshot
2007-06-17 16:03:27 -06:00
Joel Dice
1301a6a1c8
snapshot
2007-06-16 15:39:05 -06:00
Joel Dice
9e356c1b40
sketch parseClass()
2007-06-15 19:02:24 -06:00
Joel Dice
bb2494be83
use ACQUIRE_RAW instead of ACQUIRE in set(), since it will only block for a bounded interval; rename some Heap methods
2007-06-15 10:00:08 -06:00
Joel Dice
1d02290ed1
add call To ClassFinder::free() in resolveClass()
2007-06-14 20:03:33 -06:00
Joel Dice
1853ea825e
change Heap::markTenured() return type to void
2007-06-14 18:51:48 -06:00
Joel Dice
f5cb9b3bf1
implement/update ACQUIRE and ACQUIRE_RAW macros; refine set() implementation
2007-06-14 18:50:55 -06:00
Joel Dice
375715fb72
simplify byteArrayEqual()
2007-06-14 17:56:40 -06:00
Joel Dice
8d7cd5482f
resolveClass() sketch
2007-06-14 17:55:06 -06:00
Joel Dice
7904fa40a3
finish sketch of resolveField() and resolveMethod() implementations
2007-06-13 20:41:59 -06:00
Joel Dice
ef48f14839
sketch of resolveField() and resolveMethod() implementations
2007-06-13 20:12:28 -06:00
Joel Dice
5e225c94a3
implement helper methods for invokespecial; add thread type
2007-06-13 08:03:08 -06:00
Joel Dice
8cc54280d9
implement more helper functions; add fields to class, field, and method types
2007-06-11 17:40:24 -06:00
Joel Dice
587fb18685
fix thinko in memset() call
2007-06-08 20:33:26 -06:00
Joel Dice
a29dc10313
implement instanceOf(); add interface type; etc.
2007-06-08 20:29:56 -06:00
Joel Dice
86b7a75977
implement set(); minor tweaks elsewhere
2007-06-08 08:23:04 -06:00
Joel Dice
26bfa24c16
add various bootstrap types; implement more helper functions; add LIKELY() and UNLIKELY() macro invocations where appropriate; add PROTECT() macro
2007-06-07 18:23:12 -06:00
Joel Dice
94338e15a8
implement makeJString(); minor tweaks elsewhere
2007-06-06 18:30:16 -06:00
Joel Dice
48e49f1fa1
more build fixes
2007-06-05 20:24:09 -06:00
Joel Dice
2176c32cee
lots of build fixes
2007-06-05 18:41:04 -06:00
Joel Dice
45f5417827
snapshot
2007-06-04 18:28:52 -06:00
Joel Dice
35de3dc128
copy input.h and output.h from mess project
2007-06-04 17:48:35 -06:00
Joel Dice
2d44143944
type-generator now builds
2007-06-04 17:39:59 -06:00
Joel Dice
f35d89cfa4
more type-generator refinements
2007-06-04 08:16:17 -06:00
Joel Dice
e95478650c
convert PUSH and POP macros to inline functions
2007-06-04 07:12:22 -06:00
Joel Dice
f354e410c4
frame should have handle to method, not just code
2007-06-03 17:18:05 -06:00
Joel Dice
3ba88c12b0
copy makefile, stdc++.cpp, and type-generator.cpp from mess project
...
and began customizing them for this project
2007-06-03 17:16:07 -06:00
Joel Dice
4ecf7917cc
sketch Machine and Thread classes; refine allocation and thread state transitions
2007-06-02 20:00:23 -06:00
Joel Dice
f6e369c424
add public access specifiers to Heap::Vistor and Heap::Iterator
2007-06-02 19:58:47 -06:00
Joel Dice
d0a6a78022
add system.h for interfacing with system-level features
2007-06-02 19:57:37 -06:00
Joel Dice
253723b5cc
add common.h for common includes, macros, etc.
2007-06-02 19:56:57 -06:00
Joel Dice
3a2f478521
add heap.h
2007-06-02 17:36:55 -06:00
Joel Dice
c5ed0cf810
snapshot
2007-06-01 18:06:06 -06:00
Joel Dice
a8ca8c7512
finish sketch of essential instructions
2007-05-30 18:29:07 -06:00
Joel Dice
81c0e507f7
snapshot
2007-05-29 18:08:10 -06:00
Joel Dice
9076e2fbfa
snapshot
2007-05-25 08:48:07 -06:00
Joel Dice
9bc6b0db0b
snapshot
2007-05-21 18:05:29 -06:00
Joel Dice
9ed7dbb3d5
initial commit
2007-05-21 09:47:44 -06:00