Commit Graph

445 Commits

Author SHA1 Message Date
Joel Dice
25ea07aed5 snapshot - JIT broken 2007-12-16 18:46:46 -07:00
Joel Dice
56a8ce8fb1 more JIT bugfixes; implement mul instruction 2007-12-16 16:52:38 -07:00
Joel Dice
e4fbadd051 JIT-related GC safety fixes 2007-12-16 15:41:07 -07:00
Joel Dice
fb29fd11d8 more JIT bugfixes 2007-12-16 14:30:19 -07:00
Joel Dice
86218ebcb8 fix stack pointer calculation in unwind code and set rbx to thread pointer when unwinding 2007-12-15 18:00:25 -07:00
Joel Dice
796a64a426 lots of JIT bugfixes and cleanups 2007-12-15 17:24:15 -07:00
Joel Dice
403a6b0200 lots of JIT bugfixes 2007-12-14 18:11:01 -07:00
Joel Dice
12e10b57f5 JIT bugfixes and new instructions; exception propagation and stack traces are functional but not yet entirely correct 2007-12-14 11:27:56 -07:00
Joel Dice
b3918a0d7d support encoding instructions with indexed and scaled memory offsets 2007-12-13 18:59:56 -07:00
Joel Dice
ec8fc80ebe refactor compile.cpp to delay code generation until after all byte code has been visited; bugfixes 2007-12-13 17:27:09 -07:00
Joel Dice
c4347bd7d3 more JIT bugfixes and new instructions 2007-12-12 17:18:31 -07:00
Joel Dice
b2147c2c99 lots of JIT bugfixes and a few new instructions 2007-12-12 15:19:13 -07:00
Joel Dice
fe24005ff0 remove virtual stack code due to problems with jumps, to be revisited along with other optimizations when everything is working; various bugfixes 2007-12-12 11:59:45 -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
740e86a084 remove unused function; call logicalFlush in pop functions 2007-12-11 17:08:55 -07:00
Joel Dice
d70e3aaefb JIT progress: new, invokespecial, etc. 2007-12-11 16:52:28 -07:00
Joel Dice
396c979de8 fix interpret.cpp build breakage 2007-12-11 14:29:04 -07:00
Joel Dice
fdeafe46fd 2+2 test now works with new JIT code 2007-12-11 14:26:59 -07:00
Joel Dice
286f290665 more JIT progress 2007-12-10 17:48:09 -07:00
Joel Dice
6b1f01511b refactor logical stack mechanism in JIT code 2007-12-09 16:06:47 -07:00
Joel Dice
f8cda0cd85 more JIT compiler progress 2007-12-09 15:45:43 -07:00
Joel Dice
5b5a4fe8d7 progress on JIT compiler sketch 2007-12-09 13:03:21 -07:00
Joel Dice
55b956916f initial sketch of JIT compiler 2007-12-08 16:22:13 -07:00
Joel Dice
22edd2e6a4 set Verbose to false in heap.cpp 2007-12-08 16:19:48 -07:00
Joel Dice
00b7fa3b9d assert that fixed object has object mask before marking it 2007-12-07 15:58:38 -07:00
Joel Dice
d057ac6a47 mark classes containing object array fields as needing an object mask in type-generator.cpp 2007-12-07 10:05:10 -07:00
Joel Dice
c096c8f1e4 only consider gen2 oversized if its capacity exceeds (InitialGen2CapacityInBytes / BytesPerWord) 2007-12-07 08:35:28 -07:00
Joel Dice
612f4fa0b8 shrink gen2 segment if it grows too large 2007-12-07 08:31:41 -07:00
Joel Dice
edf415102a assert heap count is empty in System::dispose() 2007-12-07 08:30:30 -07:00
Joel Dice
0a63fc3865 fix a couple thinkos in jnienv.cpp 2007-11-29 08:04:07 -07:00
Joel Dice
d8374a76e2 check again for entry in monitorMap after entering the exclusive state in objectMonitor() in case another thread beat us to creating a monitor for the object 2007-11-29 08:03:45 -07:00
Joel Dice
5b6a63cbca avoid uninitialized value warnings 2007-11-27 16:04:15 -07:00
Joel Dice
5fa7b074b4 various threading bugfixes 2007-11-27 15:23:00 -07:00
Joel Dice
56a5cf2503 fix thinko in jsr_w implementation 2007-11-27 15:22:05 -07:00
Joel Dice
6ac124f2fb protect local variables in red-black tree implementation from GC 2007-11-27 08:46:31 -07:00
Joel Dice
466c958d2b implement persistent red-black tree in util.cpp based on PersistentSet.java 2007-11-26 18:40:47 -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
856935acc2 more work on new JIT code 2007-11-21 15:15:33 -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
ded1016b32 clean up compile2.cpp so it compiles (but does not yet link) 2007-11-20 09:21:17 -07:00
Joel Dice
6c8a35c341 move populateMultiArray from interpret.cpp to process.h 2007-11-20 09:20:26 -07:00
Joel Dice
37a1aa72f9 sketch of Frame class implementation for new JIT code 2007-11-19 14:37:50 -07:00
Joel Dice
2eeff1d50e sketch implementations of lookupswitch and tableswitch 2007-11-19 08:11:39 -07:00
Joel Dice
7eb49f272c sketch or stub-out remaining instructions in new JIT code 2007-11-18 13:32:31 -07:00
Joel Dice
e9fc1d9057 initial sketch of new JIT code 2007-11-18 12:19:27 -07:00
Joel Dice
cab88c7e1f remove JIT-related data structures from types.def since that code is being reworked 2007-11-18 12:18:37 -07:00
Joel Dice
d105a180db remove unecessary namespace qualifier 2007-11-18 12:17:14 -07:00
Joel Dice
115622f54a add GetArrayLength, NewObject, NewObjectV, MonitorEnter, and MonitorExit JNIEnv methods 2007-11-14 16:22:29 -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
f1bc2be9f9 if we can't resolve a bootstrap class in isAssignableFrom(), we swallow the exception and return false 2007-11-05 09:08:08 -07:00
Joel Dice
fe0708c09a check for all non-virtual methods in invoke(), not just static ones 2007-11-05 08:52:03 -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
bea4a73f54 Merge branch 'singleton' 2007-11-02 15:56:48 -06: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
80775f6cf8 initial sketch of singleton support 2007-11-02 08:15:06 -06:00
Eric Scharff
eb3bd1ce7c Got strip working for Mac OS X 2007-11-01 14:37:51 -06:00
Eric Scharff
625f0006c9 Fixed typo for Mac OS X builds 2007-11-01 14:06:26 -06:00
Eric Scharff
7f33b7371b Factored JNIEXPORT into one place. Adopted the visbility attribute that
should allow strip to work on Mac OS X
2007-11-01 14:00:22 -06:00
Joel Dice
b71d5104ba snapshot 2007-11-01 13:24:09 -06:00
Joel Dice
94bae01b39 never call wasCollected() on a fixed object, since it will give a random result 2007-10-29 16:12:16 -06:00
Joel Dice
956106f518 implement StringBuilder.delete() more efficiently 2007-10-29 15:40:05 -06:00
Joel Dice
75d4a4ff96 implement a few classpath methods required by SWT for Win32 2007-10-29 14:57:33 -06:00
Joel Dice
a80677d673 fix aliasing warnings 2007-10-28 18:51:38 -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
85012ba5b0 fix thinko in NewString() and make NewStringUTF() more robust 2007-10-26 18:04:20 -06:00
Joel Dice
fcc50f4da6 abort if vsnprintf() overflows in makeByteArray 2007-10-26 18:03:28 -06:00
Joel Dice
46ac6f92ee implement JNIEnv::NewString() 2007-10-26 15:23:54 -06:00
Joel Dice
e892f1bff5 refactor System.getProperty() to reduce coupling with native code 2007-10-26 12:13:21 -06:00
Joel Dice
ccdc7fdda3 eliminate bin2c and use objcopy instead to translate binary data to an object file 2007-10-26 11:38:36 -06:00
Eric Scharff
6342fc7ccb Read 2- and 3-byte UTF8 constants gracefully (but not correctly) 2007-10-25 17:58:53 -06:00
Joel Dice
74701b0790 fix thinko parsing properties in JNI_CreateJavaVM 2007-10-25 17:17:38 -06:00
Eric Scharff
34c5f184ed Fix static cast to make gcc happy 2007-10-25 16:34:40 -06:00
Joel Dice
95621ac2d0 Merge branch 'master' of dice:git/vm 2007-10-25 16:06:10 -06:00
Joel Dice
20cc788fa4 support classloading from jar files compiled into the executable 2007-10-25 16:06:05 -06:00
Eric Scharff
a81b77a37e fixes i2f i2d implementation. Fixes image drawing bugs on Mac OS X.
Also fixes a crash caused by implementing StringBuffer.toString(float)
2007-10-25 14:26:51 -06:00
Joel Dice
d4656e8a52 handle ConstantValue attributes for static fields 2007-10-25 13:20:39 -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
89b22dd3ab fix JNI invocation for return types of less than 32-bits 2007-10-24 17:06:12 -06:00
Joel Dice
92d61c1ba2 superficial tweak 2007-10-24 17:05:14 -06:00
Joel Dice
2c2718fdb5 primitive parseUtf8() implementation to ensure we handle null characters correctly, at least 2007-10-24 15:05:15 -06:00
Joel Dice
e66c53b446 remove unused file 2007-10-24 11:24:48 -06:00
Joel Dice
eaf1d205cd more windows port fixes 2007-10-24 11:24:19 -06:00
Joel Dice
f2f453cf75 more system-specific tweaks for windows port (cont.) 2007-10-24 10:27:59 -06:00
Joel Dice
5bfd90cfed more system-specific tweaks for windows port 2007-10-24 10:24:02 -06:00
Joel Dice
0f1a9bc77e remove debug logging 2007-10-24 09:52:09 -06:00
Joel Dice
394d80a07a fix use of uninitialized values in JarElement; use system-specific path separator in finder 2007-10-24 09:46:09 -06:00
Joel Dice
1c948652fd fix posix build breakage 2007-10-23 17:22:56 -06:00
Joel Dice
c3300948bf fix a few threading bugs in windows port 2007-10-23 16:21:28 -06:00
Joel Dice
eb4cea6291 more work on the windows port; we now have some tests passing 2007-10-23 14:05:59 -06:00
Joel Dice
1381267e70 mork work on the windows port 2007-10-23 11:22:48 -06:00