142 Commits

Author SHA1 Message Date
Joel Dice
8e5ce11047 refactor memory management code
We now support immortal objects, which the GC will scan for references
but not consider for collection.  On x86_64, we allocate JIT code memory
via mmap, which lets us map memory into the bottom 2GB of the address
space, ensuring that 32-bit relative jumps and calls work.
2008-01-09 18:20:36 -07:00
Joel Dice
72f7115323 add FORCE_ALIGN attribute to non-trivial functions called from Java land 2008-01-07 15:49:34 -07:00
Joel Dice
5fa7b074b4 various threading bugfixes 2007-11-27 15:23:00 -07:00
Joel Dice
0bbe9489a7 flesh out call tracing in new JIT code 2007-11-26 16:15:53 -07:00
Joel Dice
49ed41daa0 refactor stack walking interface in processor.h and sketch stack walking implementation in compile2.cpp 2007-11-25 16:00:55 -07:00
Joel Dice
a017dab73a handle weak maps properly in hashMapResize, hashMapRemove, etc.; move Processor::parameterFootprint() into machine.h/machine.cpp 2007-11-20 15:24:02 -07:00
Joel Dice
313816ee34 minor tweaks to reduce memory usage 2007-11-06 08:29:05 -07:00
Joel Dice
fe0e542afe finish support for inline vtables in class objects; convert constant pools from arrays to singletons to reduce memory footprint 2007-11-05 14:40:17 -07:00
Joel Dice
16ea75f91c preserve vm flags of bootstrap class (except for BootstrapFlag) in updateBootstrapClass() 2007-11-05 08:39:48 -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
7dfbd87a40 bugfixes 2007-11-02 15:42:19 -06:00
Joel Dice
e820b6a8a4 sketch of singleton support 2007-11-02 15:08:14 -06:00
Joel Dice
7f1837fecd move fixed object (mark and sweep) support into heap.cpp and refine algorithms for determining when and how much to GC 2007-10-28 13:14:53 -06:00
Joel Dice
60072b9fdc implement fixed object support 2007-10-27 19:54:30 -06:00
Joel Dice
20cc788fa4 support classloading from jar files compiled into the executable 2007-10-25 16:06:05 -06:00
Joel Dice
b12b779c7f add support for passing properties to the VM via JNI; use vm.builtins property to specify builtin libraries 2007-10-25 12:33:43 -06:00
Joel Dice
1c90ea5fd6 rewrite main.cpp to use jni.h interface for creating the VM and invoking the main method of the specified class 2007-10-25 09:04:13 -06:00
Joel Dice
eaf1d205cd more windows port fixes 2007-10-24 11:24:19 -06:00
Joel Dice
c3300948bf fix a few threading bugs in windows port 2007-10-23 16:21:28 -06:00
Joel Dice
3e84d4438a revise signatures of mark() and set() to take a target object and offset instead of a target object reference, paving the way for immovable objects 2007-10-22 11:22:30 -06:00
Joel Dice
f5c74dcaec fix invalid use of Heap::needsMark in vm::mark 2007-10-16 19:23:20 -06:00
Joel Dice
659555b6ce fix use of uninitialized values at root thread creation time when running in stress mode; allocate Thread::defaultHeap on the heap instead of as part of the Thread structure 2007-10-13 19:18:25 -06:00
Joel Dice
f58c6ef4e8 mark destination object array in System.arraycopy() if it resides in the tenured heap 2007-10-13 15:47:45 -06:00
Joel Dice
349fe47c8d JIT GC progress; fix interface method lookup bug 2007-10-12 11:56:43 -06:00
Joel Dice
c7d7c4ca0a implement additional instructions for JIT; fix bug in dispose(Thread*,Reference*) 2007-10-08 15:41:41 -06:00
Joel Dice
feeaecbfd8 more work on JIT unwinding 2007-10-04 16:41:19 -06:00
Joel Dice
a73f474f34 implement Processor::makeLocalReference()/disposeLocalReference() 2007-09-29 21:33:38 -06:00
Joel Dice
8ae36c05b7 lots of new instructions and bugfixes 2007-09-29 20:48:27 -06:00
Joel Dice
79603e284d sketch of Compiler.compileNative() and ifnull instruction implementation 2007-09-28 17:41:03 -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
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
Joel Dice
e7c8fb645a JIT works for Instructions.java 2007-09-25 17:53:11 -06:00
Joel Dice
1c90708abf bugfixes for recent refactoring effort 2007-09-24 07:46:48 -06:00
Joel Dice
8d983c8a39 refactoring effort to pave the way for JIT compilation 2007-09-23 19:39:03 -06:00
Eric Scharff
f430f3f00e Various fixes (mostly making things more strict) to get the code to
compile on Mac OS X
2007-09-19 10:22:19 -06:00
Joel Dice
49a3c08cc9 use dlopen()/dlsym() to resolve builtin JNI methods 2007-09-18 17:30:09 -06:00
Joel Dice
b88438d2fd sketch of JAR support in Finder 2007-09-16 18:13:36 -06:00
Joel Dice
223e6bff0f gc protection bugfix 2007-09-14 18:23:32 -06:00
Joel Dice
542888a1d3 bugfixes 2007-09-12 21:15:16 -06:00
Joel Dice
7cb3a30a91 sketch of Runtime.exec() and Calendar; misc bugfixes 2007-09-12 18:21:37 -06:00
Joel Dice
e5987f2a22 JNIEnv and JavaVM method implementations 2007-09-10 17:33:58 -06:00
Joel Dice
a9f9755221 more JNIEnvVTable entries 2007-09-07 17:20:21 -06:00
Joel Dice
bd4d9fdeb2 several things: change object typedef to Object* instead of void* to improve type safety; add JNICALL attributes to JNI functions; implement additional JavaVM methods 2007-09-06 18:21:52 -06:00
Joel Dice
256bcf04e0 fix Method.invoke() to handle polymorphism properly 2007-08-22 21:30:37 -06:00
Joel Dice
c6e1644281 fix bug in calculating GC footprint in new heap pool code 2007-08-22 20:24:25 -06:00
Joel Dice
f148fd0668 add Machine::heapPool, allowing threads to acquire replacement heaps up to a point before forcing a GC 2007-08-22 08:50:29 -06:00
Joel Dice
7a340fd8fb bugfixes 2007-08-19 14:24:26 -06:00