Commit Graph

374 Commits

Author SHA1 Message Date
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
Joel Dice
58dec050c8 sketch of windows port 2007-10-22 19:00:57 -06:00
Joel Dice
ac4b28ffe6 refactor build system to support cross-compiling 2007-10-22 14:56:27 -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
f4dfc889fd rough sketch of lookupswitch and tableswitch instructions 2007-10-22 08:14:05 -06:00
Joel Dice
64acabf130 fix thinko in getstatic 2007-10-17 20:50:43 -06:00
Joel Dice
02c1939de5 fix implicit conversion warnings 2007-10-17 20:03:01 -06:00
Joel Dice
569c81019c mask out least significant bits during class dereference in generated code 2007-10-17 19:25:30 -06:00
Joel Dice
1aee58e390 fix tracking stack frames in compile.cpp 2007-10-17 18:41:49 -06:00
Joel Dice
2be830cae7 Merge branch 'master' of dice:git/vm 2007-10-17 11:22:16 -06:00
Joel Dice
e393f49fd6 fix Compiler.compileCaller() to work on both i386 and amd64 2007-10-17 11:22:09 -06:00
Joel Dice
4ecd84e373 Merge branch 'master' of dice.readytalk.com:git/vm 2007-10-16 19:23:31 -06:00
Joel Dice
f5c74dcaec fix invalid use of Heap::needsMark in vm::mark 2007-10-16 19:23:20 -06:00
Joel Dice
5fb1495f4d bugfixes and new instructions in compile.cpp 2007-10-16 19:21:35 -06:00
Joel Dice
29b5e81aed align fields naturally in parseFieldTable 2007-10-16 19:20:36 -06:00
Joel Dice
200e933923 fix regression related to logging verbosity and exception handling in compile.cpp 2007-10-16 12:16:12 -06:00
Joel Dice
fc898c4df1 fix broken assumption that all native functions will push rbp on the stack first thing 2007-10-16 12:10:56 -06:00
Joel Dice
96ed27c55c various bugfixes to get Tree.java to work 2007-10-16 11:21:26 -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
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
5c99edd90e fix many JIT GC bugs; GC.java now passes 2007-10-13 15:48:40 -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
96c3b2b6a7 superficial code cleanup 2007-10-12 18:22:52 -06:00
Joel Dice
dbbcf90e6c Merge branch 'master' of dice:git/vm 2007-10-12 16:06:39 -06:00
Joel Dice
b8ce22dc42 JIT GC bugfixes 2007-10-12 16:06:33 -06:00
Eric Scharff
05321e97f9 If you pass 0 to printTrace, it will print the stack trace of a null
pointer exception.  This dramatically simplifies debugging in GDB:

p vm::printTrace(t, 0)
2007-10-12 14:54:37 -06:00
Joel Dice
349fe47c8d JIT GC progress; fix interface method lookup bug 2007-10-12 11:56:43 -06:00
Joel Dice
5a92852f74 stack mapping progress 2007-10-12 08:26:36 -06:00
Joel Dice
3e1dbab0f0 move bitmap helper functions to common.h; preserve callee-saved registers in vmInvoke() 2007-10-11 20:52:16 -06:00
Joel Dice
201a658941 stack mapping bugfixes 2007-10-11 18:30:46 -06:00
Joel Dice
d5a8193614 lots of work on stack mapping, plus a couple of bugfixes 2007-10-11 16:43:03 -06:00
Joel Dice
69389ea8be more progress towards stack mapping 2007-10-10 16:39:40 -06:00
Joel Dice
808b4780b1 progress towards stack mapping 2007-10-10 15:34:04 -06:00
Joel Dice
1406d6bc24 refactor parts of compile.cpp to improve time efficiency of java IP -> machine IP translation and to prepare for stack object reference tracking 2007-10-10 11:26:28 -06:00
Joel Dice
915ade9ccc various JIT bugfixes 2007-10-09 13:30:01 -06:00
Joel Dice
defa8c62ac 64-bit arithmetic bugfixes 2007-10-09 11:15:40 -06:00
Joel Dice
7e0731ebdd various bugfixes involving longs 2007-10-08 17:13:55 -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
e32a335079 Merge branch 'master' of dice:git/vm
Conflicts:

	src/cdecl.S
2007-10-04 17:17:57 -06:00
Joel Dice
feeaecbfd8 more work on JIT unwinding 2007-10-04 16:41:19 -06:00
Eric Scharff
a9fcb59e6c Fix a floating point comparison bug - Gets simple SWT examples to work on
Mac OS X
2007-10-04 10:21:14 -06:00
Eric Scharff
ace36f1b15 Simplify code for Mac stack alignment conventions 2007-10-04 07:30:39 -06:00
Joel Dice
2135f62584 progress towards JIT stack unwinding 2007-10-03 21:19:39 -06:00
Joel Dice
404d996c1e snapshot 2007-10-03 18:41:54 -06:00
Joel Dice
ba03aa88df snapshot 2007-10-02 19:54:21 -06:00
Joel Dice
f7058f8fd6 snapshot 2007-10-02 18:22:48 -06:00
Eric Scharff
d2053d51d2 Floats are always passed as doubles in varargs calls. Properly pop them
off the stack and cast them
2007-10-02 09:50:08 -06:00
Joel Dice
68e382ca8d snapshot 2007-10-01 18:08:17 -06:00
Joel Dice
45dc118ab9 invoke native methods using a common routine, instead of compiling code specific to each method 2007-10-01 09:19:15 -06:00
Joel Dice
7ecb5b9c30 fixes for various recent regressions 2007-09-30 10:32:17 -06:00
Joel Dice
7caedba26f hello, world! 2007-09-30 09:52:21 -06:00
Joel Dice
ea47976aad implement array load instructions 2007-09-29 22:07:22 -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
b0500a881c implement checkcast and instanceof 2007-09-29 15:08:29 -06:00
Joel Dice
569cfa9e07 implement more instructions; various bugfixes 2007-09-29 14:24:14 -06:00
Joel Dice
f2ec75e202 handle 32-bit immediate values in Assembler.push() 2007-09-29 12:34:56 -06:00
Joel Dice
79603e284d sketch of Compiler.compileNative() and ifnull instruction implementation 2007-09-28 17:41:03 -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
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
Joel Dice
bd95ccdbd6 clear object header flags after copying array in Object.clone() 2007-09-27 16:10:29 -06:00
Eric Scharff
2ae6aa7ddf Fix System.arraycopy when the source and dest are the same 2007-09-27 15:06:56 -06:00
Joel Dice
f1bdc4c745 various fixes to get JIT working on x86_64 2007-09-26 18:01:38 -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
770e48c197 make Object.clone() work for arrays 2007-09-26 13:45:52 -06:00
Joel Dice
1207989f72 fix build and runtime bugs introduced in last commit 2007-09-26 08:43:40 -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
Joel Dice
65a3ee4277 superficial tweaks 2007-09-21 08:16:43 -06:00
Joel Dice
3838cd0e68 strip leading slashes from path in JarElement::find()/exists() 2007-09-21 08:15:39 -06:00