Commit Graph

296 Commits

Author SHA1 Message Date
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