Commit Graph

836 Commits

Author SHA1 Message Date
Joel Dice
50eb1cbb71 peek at stack values during bounds checks 2008-04-19 16:13:57 -06:00
Joel Dice
eb77687a57 hello, world 2008-04-19 15:52:45 -06:00
Joel Dice
7b8b7a7b11 snapshot 2008-04-19 14:41:31 -06:00
Joel Dice
b19c52b501 control flow bugfixes 2008-04-19 01:03:59 -06:00
Joel Dice
ab7314e526 more bugfixes 2008-04-18 18:19:45 -06:00
Joel Dice
8fd1290d02 various data flow bugfixes 2008-04-18 12:36:57 -06:00
Joel Dice
a053a228f0 optimize move,op sequences where op doesn't care where its source operand comes from 2008-04-18 11:30:54 -06:00
Joel Dice
c1ba7a7d58 optimize op,move sequences where op can place its result directly into the move's destination 2008-04-18 11:00:55 -06:00
Joel Dice
44b3a7c36d various bugfixes 2008-04-17 22:16:20 -06:00
Joel Dice
329009ae97 bugfixes involving stack operations 2008-04-17 21:47:42 -06:00
Joel Dice
af2c2e019c various bugfixes 2008-04-17 18:39:41 -06:00
Joel Dice
a7134a2cd7 fix build 2008-04-17 16:07:32 -06:00
Joel Dice
4d5a57671a Merge branch 'master' into compiler 2008-04-17 14:52:23 -06:00
Joel Dice
f8a5d02f67 more compiler work 2008-04-17 14:48:26 -06:00
Joel Dice
3f45d39582 more compiler work 2008-04-16 20:55:38 -06:00
Joel Dice
f85510c4c4 more work on design sketch of new compiler 2008-04-16 14:58:21 -06:00
Joel Dice
df4a56d40c Merge branch 'compiler' of oss.readytalk.com:/var/local/git/avian 2008-04-16 11:16:36 -06:00
Joel Dice
95e5f8203c enter active state before generating stack trace in Thread.getTrace 2008-04-15 23:27:42 -06:00
Joel Dice
479c48f1dd fix printf warning 2008-04-15 23:26:58 -06:00
Joel Dice
525f733171 Merge branch 'master' into compiler
Conflicts:

	src/compile.cpp
	src/compiler.cpp
	src/compiler.h
2008-04-13 13:48:20 -06:00
Joel Dice
b7ea937708 rough sketch of refined compiler design 2008-04-13 12:54:50 -06:00
Joel Dice
bd8d1c05d0 commit and reserve pages when calling VirtualAlloc on Windows 2008-04-13 12:25:24 -06:00
Joel Dice
0d3e6b7793 simplify memory allocation interfaces 2008-04-13 12:15:04 -06:00
Joel Dice
d77ffa8e21 convert relative calls to absolute indirect calls on x86_64, in case we need to jump further than a 32-bit displacement will allow 2008-04-13 11:16:27 -06:00
Joel Dice
85712d183b fix stack walking from native methods 2008-04-11 18:06:04 -06:00
Joel Dice
31e5e4c286 fix GC safety bugs in leftRotate and rightRotate 2008-04-11 18:05:03 -06:00
Joel Dice
7eef2e7918 fix GC safety bug in cloneTreeNode 2008-04-11 17:40:36 -06:00
Joel Dice
33b32398c2 fix code ordering bug in finder.cpp 2008-04-11 17:37:56 -06:00
Joel Dice
aa9cb5c086 fix windows build 2008-04-11 17:01:17 -06:00
Joel Dice
d9ec8e20bf implement Thread.getStackTrace, activeCount, and enumerate 2008-04-11 16:48:39 -06:00
Joel Dice
04c3abc967 fix broken thread tree traversal in machine.cpp 2008-04-11 16:48:05 -06:00
Joel Dice
f7a79f4874 fix frame object map size calculations 2008-04-11 15:00:18 -06:00
Joel Dice
bd618a51f6 translate exception handler table into a form which does not depend on the constant pool after JIT compiling a method 2008-04-11 13:03:40 -06:00
Joel Dice
2cf62a5926 various bugfixes in new stack trace code 2008-04-10 17:48:28 -06:00
Joel Dice
2d6eebf4d1 more progress on general stack tracing 2008-04-09 13:08:13 -06:00
Joel Dice
ebffc5852c various search tree fixes 2008-04-07 18:14:59 -06:00
Joel Dice
3fb90fdaa4 limit scope of lock acquisition in compileMethod2 2008-04-07 18:03:58 -06:00
Joel Dice
2dba75d7f2 fix reversed logic in treeNodeRed 2008-04-07 18:03:16 -06:00
Joel Dice
2c18ced808 use methodForIp in SegFaultHandler::handleSignal 2008-04-07 17:51:32 -06:00
Joel Dice
7ee29d4939 progress towards general stack trace support 2008-04-07 17:47:41 -06:00
Joel Dice
3915371897 Merge branch 'master' of oss:/var/local/git/avian into dynamic 2008-04-02 06:58:19 -06:00
Joel Dice
6379f50d35 fix thinko in stringChars 2008-04-02 06:57:25 -06:00
Joel Dice
0aebe334b3 Merge branch 'master' of oss:/var/local/git/avian into dynamic 2008-04-01 17:25:18 -06:00
Joel Dice
08b401f337 implement GetStringLength, GetStringChars, and ReleaseStringChars 2008-04-01 17:24:43 -06:00
Joel Dice
d5b0cbb543 Merge branch 'master' of oss:/var/local/git/avian into dynamic 2008-04-01 16:49:28 -06:00
Joel Dice
95a386f2a6 handle null values in IsSameObject 2008-04-01 16:40:53 -06:00
Joel Dice
b12226e878 make private copy of libraryName in BuiltinElement 2008-04-01 16:36:00 -06:00
Joel Dice
1c49b3bc1b Merge branch 'master' of oss:/var/local/git/avian into dynamic 2008-04-01 11:38:15 -06:00
Joel Dice
4102c97be3 fix bugs wrt calling methods via JNI 2008-04-01 11:37:59 -06:00
Joel Dice
907382bcee fix broken field alignment in parseFieldTable which caused longs to overlap other fields on 32-bit systems in certain cases 2008-03-31 18:34:57 -06:00
Joel Dice
74295bb707 interpret avian.bootstrap property as a complete file name 2008-03-31 12:57:49 -06:00
Joel Dice
9bcc4dd4ed fix build for OSX 10.4 and below 2008-03-31 11:58:40 -06:00
Joel Dice
c37f0dcf18 fix darwin build 2008-03-30 22:23:51 -06:00
Joel Dice
357bd29460 support building Avian as a self-contained dynamic library 2008-03-30 21:43:43 -06:00
Joel Dice
9cb21a29a6 fix handling of interface vtables for abstract classes 2008-03-21 17:42:36 -06:00
Joel Dice
50040b24f5 remove unused code from util.cpp 2008-03-21 14:33:44 -06:00
Joel Dice
c7a357aa5e implement l2d and l2f in interpret.cpp 2008-03-21 13:52:09 -06:00
Joel Dice
9fe2cbff43 implement l2d and l2f byte codes 2008-03-20 18:37:58 -06:00
Joel Dice
56389dd2e1 don't populate interface vtables for abstract classes 2008-03-20 18:37:21 -06:00
Joel Dice
d8889bd4d8 protect local variables from GC in jnienv.cpp 2008-03-20 18:36:53 -06:00
Joel Dice
a51c4cef39 bugfixes 2008-03-16 13:38:43 -06:00
Joel Dice
684b402e82 bugfixes and new instructions 2008-03-15 17:54:20 -06:00
Joel Dice
420a054fd8 support 1- and 2-byte moves to memory 2008-03-15 15:02:19 -06:00
Joel Dice
8141fc21b4 release base and index values of AbstractMemoryValue if necessary; bugfixes 2008-03-15 14:44:14 -06:00
Joel Dice
6bf0ca5bd9 various bugfixes and new instructions 2008-03-15 14:24:04 -06:00
Joel Dice
6a9fbc0c17 allow assembler to acquire and release temporary registers; new machine instruction implementations; bugfixes 2008-03-13 17:43:11 -06:00
Joel Dice
406f173982 handle constant array lengths and indexes properly; various bugfixes 2008-03-13 14:50:56 -06:00
Joel Dice
7cd79736c2 fix tracking of stack operations in compile.cpp 2008-03-11 10:57:35 -06:00
Joel Dice
c5b8b83cc7 clean up code for optimizing stack operations 2008-03-11 10:40:28 -06:00
Joel Dice
9e2e614a15 various fixes to get invokevirtual working 2008-03-10 16:37:21 -06:00
Joel Dice
a388ca19ee fix build for GCC 4.3
Note that this requires removing the -Wconversion flag for now.  I'll
see about restoring it when I'm ready to tackle all those warnings.
2008-03-10 13:49:10 -06:00
Joel Dice
0fe748c3a1 avoid unecessary mov instructions 2008-03-10 07:29:42 -06:00
Joel Dice
11dea0ad8e don't bother calling methods which are known do nothing 2008-03-10 07:28:21 -06:00
Joel Dice
888836f8cd use push and pop for stack operations instead of mov 2008-03-09 15:27:51 -06:00
Joel Dice
7cfb89bd2a Merge branch 'master' into compiler 2008-03-09 11:31:55 -06:00
Joel Dice
fbc5463fb1 specify Avian version via a macro defined in makefile 2008-03-06 13:30:26 -07:00
Joel Dice
9fe00836f7 fix stack mapping code to do as many passes as necessary
Previously, we had been doing exactly two passes over the event log to
caculate the stack object reference map at each trace point.  It turns
out the correct number of passes depends on how many incorrect
assumptions we make about what the stack looks like at instructions with
multiple predecessors (i.e. targets of jumps and branches).

Each time we detect we've made one or more incorrect assumptions during
a pass, we must do another pass to correct those assumptions.  That pass
may in turn reveal further incorrect assumptions, and so on.
2008-03-05 14:44:17 -07:00
Joel Dice
3317149cd2 Merge branch 'master' into compiler
Conflicts:

	src/x86.cpp
2008-02-26 17:56:35 -07:00
Eric Scharff
e616161d5a Fixes jar file loading for compressed jars.
zip files have a central directory header (which has correct information
about files) and a local file header (which sometimes does not.)  Always use
the central directory versions to get accurate data.
2008-02-25 17:29:26 -07:00
Joel Dice
823148841a fix generation of UnsatisfiedLinkError message in resolveNativeMethodData 2008-02-20 10:51:54 -07:00
Joel Dice
9601f2fb04 fix process=interpret build 2008-02-20 10:48:08 -07:00
Eric Scharff
1f48d39a8a Reset debugging flag 2008-02-20 10:14:42 -07:00
Eric Scharff
8f4cb3315a do not call dlclose on the main executable (to avoid crashes) 2008-02-20 09:41:30 -07:00
Joel Dice
85abd14137 change avium.version to avian.version 2008-02-20 08:13:15 -07:00
Joel Dice
2f1bdfeb27 remove x86.cpp 2008-02-19 19:10:18 -07:00
Joel Dice
5680f14eb1 remove compiler2.{h,cpp}, since that work has moved to a seperate branch 2008-02-19 19:03:06 -07:00
Joel Dice
2edaa82801 prepend copyright notice and license to all source files; add license.txt and readme.txt 2008-02-19 11:06:52 -07:00
Joel Dice
e8ed2a4749 various bugfixes in new compiler 2008-02-17 15:29:04 -07:00
Joel Dice
d654c943f3 various bugfixes and tweaks in new compiler, primarily related to duplicating stack operands 2008-02-17 13:57:40 -07:00
Joel Dice
6271f878e8 include function prologue and epilogue when compiling 2008-02-12 08:21:51 -07:00
Joel Dice
fa513beb2f rework compiler interface to explicitly accept a size parameter for each operation where relevant 2008-02-11 19:06:12 -07:00
Joel Dice
b9fa7179d9 more work on new compiler; addition now works 2008-02-11 17:20:32 -07:00
Joel Dice
5b2f351f01 adapt compile.cpp to new compiler 2008-02-11 10:21:41 -07:00
Joel Dice
713ff23881 clean up sketch of new compiler 2008-02-09 13:11:37 -07:00
Joel Dice
dc04c63491 more work on new compiler 2008-02-08 16:18:57 -07:00
Joel Dice
7bb69b1c56 more work on new compiler 2008-02-07 17:24:54 -07:00
Joel Dice
4860060bf8 refine sketch of new compiler a bit 2008-02-07 16:47:48 -07:00
Joel Dice
52c447f68b early sketch of new compiler 2008-02-07 12:04:18 -07:00
Joel Dice
94404b7f89 remove unused major collection interval code 2008-02-02 13:34:29 -07:00
Joel Dice
2346714d60 move local reference cleanup from invoke() to invokeNative2(), where it belonged all along 2008-02-01 14:17:54 -07:00
Joel Dice
55e3e8871d trigger major GCs more aggressively under low memory conditions 2008-01-31 17:50:38 -07:00
Joel Dice
491955af05 fix recent regression in native method lookup on Windows 2008-01-30 17:09:21 -07:00
Joel Dice
eeac584474 fix thinko in invokeNative2 2008-01-30 17:08:47 -07:00
Joel Dice
34cc390286 fix uninitialized variable warning 2008-01-29 10:02:58 -07:00
Joel Dice
d693393293 remove Machine::lastLibrary and rename firstLibrary to libraries 2008-01-29 08:19:15 -07:00
Eric Scharff
2363d6e8eb Fix debug build for Mac OS X 2008-01-28 16:35:23 -07:00
Eric Scharff
e5f95ae89d Fix pesky compiler warning on unused variable in linux. 2008-01-28 16:22:16 -07:00
Eric Scharff
8a8a123e02 Merge branch 'master' of ssh://dice.ecovate.com/~dicej/git/vm 2008-01-28 16:17:28 -07:00
Eric Scharff
c1f3d28d24 Fixes dynamic symbol loading bug on Mac OS X.
On OS X, when you call dlopen() on a null library, and then call dlsym(),
the most recently loaded symbols are always used, no matter what flags
we seem to pass to dlopen().  The solution is to explicitly find the name
of the running executable, and open that as a library.
2008-01-28 16:17:22 -07:00
Dain
098e185ebe fixed compile error, function in vm namespace needed to call function in the anonymous namespace 2008-01-28 13:24:32 -07:00
Joel Dice
d68c2e6e2c when looking up native methods, check for both the undecorated and decorated symbol before moving on to the next library 2008-01-28 11:21:09 -07:00
Joel Dice
008ac07079 refactor native method resolution to be simpler and more robust 2008-01-28 10:27:02 -07:00
Joel Dice
de6a1ded92 ensure that we populate the interface vtables of a class which does not declare any new virtual methods but does implement new interfaces relative to its superclass 2008-01-28 08:12:06 -07:00
Joel Dice
941ca81e79 fix build breakage in windows.cpp 2008-01-25 17:48:03 -07:00
Joel Dice
8150b957c9 support JIT compiling methods with unsorted exception handler tables 2008-01-25 17:17:27 -07:00
Joel Dice
e403a625d1 second try to fix library symbol lookup 2008-01-25 16:38:26 -07:00
Joel Dice
4ea8b0a1fe Merge branch 'master' of dice:git/vm 2008-01-25 16:25:37 -07:00
Joel Dice
35ada0ea65 search libraries for symbols in the order they are loaded 2008-01-25 16:25:30 -07:00
Joel Dice
6bca3a8665 additional tweaks to make embedded resources work on darwin 2008-01-23 10:12:56 -07:00
Joel Dice
618684de6e support embedded resources on darwin via binaryToMacho.cpp 2008-01-23 09:56:25 -07:00
Joel Dice
73ba3fcef7 fix build breakage in stress mode 2008-01-23 09:55:29 -07:00
Joel Dice
125fe3440e allow java.lang.Object with no virtual methods, which may occur due to code shrinking 2008-01-21 16:42:12 -07:00
Joel Dice
c9714c73f2 fix frame map calculations involving exception handlers 2008-01-20 16:03:28 -07:00
Joel Dice
422133d1ba initialize vtables with pointers to JIT function, including native methods, since this allows code shrinkers to eliminate unused methods without confusing the VM 2008-01-20 15:05:59 -07:00
Joel Dice
a69c366d07 save 'this' pointer on entrance to synchronized, non-static, non-native methods so we can release the monitor on exit, reguardless of whether the pointer at local index zero is overwritten 2008-01-20 11:55:08 -07:00
Joel Dice
e9826b2d7f accept foo.bar.Baz as well as foo/bar/Baz in FindClass 2008-01-19 13:30:11 -07:00
Joel Dice
ee60d48cfe fix subtle bug in hashMapInsert which caused us to update the old array previously associated with the hash map, whereas a GC causes the table to be resized when a weak reference is removed and thus a new array used 2008-01-19 13:12:16 -07:00
Joel Dice
d97fab6036 comment out some debugging log messages 2008-01-18 18:49:30 -07:00
Joel Dice
35160e46d8 don't include embedded boot classpath in libvm.a, only the executable 2008-01-18 17:54:36 -07:00
Joel Dice
88a8e74a53 fix register to memory mov1 implementation 2008-01-18 15:01:50 -07:00
Joel Dice
e2fc8a62c7 permit state transitions from idle to exclusive 2008-01-17 18:47:32 -07:00
Joel Dice
090cd8a209 re-enter active state before throwing exception in wait() 2008-01-17 18:32:07 -07:00
Joel Dice
9ad00d0ea3 remove unused function and add some thread state assertions 2008-01-17 18:27:44 -07:00
Joel Dice
7252fdcbf3 enter active state immediately upon entry to Release*ArrayElements 2008-01-17 18:26:46 -07:00
Joel Dice
81dde8bdbb fix thinko in CallLongMethodV 2008-01-17 17:56:55 -07:00
Joel Dice
9a13df3024 fix marshalling return values when calling java methods from native code 2008-01-17 12:55:05 -07:00
Joel Dice
7a7c36f8e0 another attempt to whip Monitor::wait into shape 2008-01-16 15:17:28 -07:00
Joel Dice
bb85f5c94d fix wait/notify regression introduced in last commit 2008-01-16 14:58:27 -07:00
Joel Dice
6ba7852a62 tweak System::Monitor::wait to avoid notify deadlock 2008-01-16 13:46:39 -07:00
Joel Dice
f5f7b01689 remove extern "C" modifier from vmPrintTrace definition 2008-01-16 10:48:14 -07:00
Joel Dice
4571e75f7a add vmPrintTrace function which can print a Java stack trace without allocating memory 2008-01-16 10:30:12 -07:00
Joel Dice
86bdd48a66 when invoking Java methods from native code on 32-bit systems, push 32-bit halves of 64-bit values in reverse order since they are reversed again when pushed on the stack 2008-01-15 18:01:11 -07:00
Joel Dice
d1b4dfccd0 fix class cast exception message thinko 2008-01-15 16:33:20 -07:00
Joel Dice
37b33457c1 Merge branch 'master' of dice:git/vm 2008-01-14 16:37:41 -07:00
Joel Dice
2f83468b80 remove context argument from Allocator::tryAllocate and Allocator::allocate, since we aren't using it after all 2008-01-14 16:37:24 -07:00
Eric Scharff
fbec4bec83 Use non-standard MAP_ANON for memory mapping 2008-01-14 10:58:11 -07:00
Joel Dice
2d042616d0 Merge branch 'master' of dice:git/vm 2008-01-14 09:40:27 -07:00
Joel Dice
a89c22b493 force major collection under low memory condition 2008-01-14 09:39:57 -07:00
Joel Dice
029973943e increase max heap size to 128MB 2008-01-14 09:38:14 -07:00
Dain
faa3052b28 set MAP_32BIT for 32bit machines 2008-01-14 09:33:54 -07:00
Joel Dice
e4c1f6cc8f protect local variable from GC in findUnwindTarget 2008-01-14 09:33:26 -07:00
Joel Dice
0298865efa refactor memory allocation to allow better detection and handling of low-memory conditions 2008-01-13 15:05:08 -07:00
Joel Dice
8df1118120 add a comment explaining our dummy libstdc++ functions 2008-01-11 17:34:57 -07:00
Joel Dice
d1ec7cd0e8 remove debug logging 2008-01-11 15:19:44 -07:00
Joel Dice
f0d556b0ec fix handling of call target resolution for non-virtual calls 2008-01-11 15:16:24 -07:00
Joel Dice
a56c0ad2ef fix predicate used to determine whether to resolve address operands 2008-01-11 11:11:31 -07:00
Joel Dice
570925ad0e handle locking for synchronized native methods 2008-01-11 10:49:11 -07:00
Joel Dice
13fae991fd resolve address operands only when writing the final output 2008-01-11 09:44:16 -07:00
Joel Dice
09a83e63b8 change mov to mov8 in return8 2008-01-10 15:41:57 -07:00
Joel Dice
a17cbf2880 fix reversed operand encoding for shift instructions 2008-01-10 14:56:08 -07:00
Joel Dice
4c938d496e fix 64-bit bitshifts on 32-bit systems 2008-01-10 13:47:55 -07:00
Joel Dice
15f627701b fix thinko in 8-byte shift operation implementations 2008-01-10 11:38:25 -07:00
Joel Dice
f75c9c8d33 fix build breakage in interpret.cpp 2008-01-10 10:36:07 -07:00
Eric Scharff
4bce07ea12 Adapt windows code to new memory management system (keep track of length
at time of memory free)
2008-01-10 10:31:13 -07:00
Joel Dice
13aaa14a41 use code allocator to allocate indirect caller 2008-01-09 18:51:58 -07:00
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
633990b5fe force a major GC whenever the tenured fixed object footprint doubles 2008-01-09 08:21:58 -07:00
Joel Dice
1a79fc45df change jump offset asserts to expects 2008-01-08 17:30:55 -07:00
Joel Dice
96ddae1742 assert that jump offsets fit into 32-bit words 2008-01-08 17:23:10 -07:00
Joel Dice
e3be0d197e maintain memory ceiling for tenured fixed objects and use it to trigger a major GC when appropriate 2008-01-08 17:02:27 -07:00
Joel Dice
811fbf0ab9 don't try to compile a method twice if it was compiled as a side-effect of initializing a class 2008-01-08 14:23:49 -07:00
Joel Dice
cfc959a3d2 invoke static initializers more lazily 2008-01-08 12:36:34 -07:00
Joel Dice
551addc638 make array bounds checking optional; add comments describing stack mapping algorithm 2008-01-08 10:10:24 -07:00
Joel Dice
c8472c4d30 minimize state tracked by stack mapping algorithm 2008-01-08 08:24:57 -07:00
Joel Dice
ef06be3904 fix bad machine code generated for mov2 2008-01-07 18:33:49 -07:00
Joel Dice
6a314ee65d Merge branch 'master' of dice:git/vm 2008-01-07 16:30:51 -07:00
Joel Dice
74a7da3010 implement and8, or8, and xor8 for 32-bit systems 2008-01-07 16:30:45 -07:00
Eric Scharff
466c3bb06e Changes for signal contexts in Mac OS X 10.5 (Leopard) 2008-01-07 16:20:48 -07:00
Joel Dice
8dc674b3d2 remove redundant line in multianewarray 2008-01-07 16:09:55 -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
2cda000725 fix code ordering bug in compile() which caused us to calculate the stack map incorrectly; logging tweak 2008-01-07 15:04:53 -07:00
Joel Dice
259dd643e0 fix over-agressive state reset in state mapping code; logging tweaks 2008-01-07 14:32:41 -07:00
Joel Dice
25f12ca40a set Verbose=false 2008-01-07 10:16:41 -07:00
Joel Dice
888dce8f3c bugfixes and cleanups for new stack mapping code 2008-01-07 09:01:35 -07:00
Joel Dice
a755368add sketch of new stack mapping algorithm 2008-01-07 07:51:07 -07:00
Joel Dice
a8e9cc521c move some generally useful bitset functions from heap.cpp to common.h 2008-01-06 12:21:38 -07:00
Joel Dice
89b60bfba0 fix incorrect encoding of neg instruction 2008-01-03 19:16:29 -07:00
Joel Dice
c119d4362e fix swapped machine codes for sar/shr instructions 2008-01-03 17:29:33 -07:00
Joel Dice
e30302722e Merge branch 'master' of dice.ecovate.com:git/vm
Conflicts:

	src/compile.cpp
2008-01-03 16:54:35 -07:00
Joel Dice
4bda925e08 fix thinko in Frame::mapSizeInWords; code cleanup 2008-01-03 16:53:37 -07:00
Joel Dice
ce2f5dd375 fix use of clobbered stack register in multianewarray 2008-01-03 14:28:29 -07:00
Joel Dice
2d6d69a573 fix thinko in invokeNative2 2008-01-03 12:49:07 -07:00
Joel Dice
651a27f73e sign-extend array indexes from 32 to 64 bits on amd64; provide useful messages for certain runtime exceptions 2008-01-03 11:37:00 -07:00
Joel Dice
6cecdc8295 relax rules for doing major collection; fix overconstrained assertion 2008-01-03 10:09:43 -07:00
Joel Dice
df20ce92f7 set Verbose=false 2008-01-01 18:48:04 -07:00
Joel Dice
eff3ba1418 fix thinko in visitDirtyFixies() 2008-01-01 18:45:23 -07:00
Joel Dice
e797a8f1ca fix GC bugs involving old fixed objects pointing to new objects 2008-01-01 18:08:27 -07:00
Joel Dice
1d7931a654 fix GC safety bugs in compile.cpp 2008-01-01 18:07:12 -07:00
Joel Dice
4378110506 avoid type aliasing warnings 2008-01-01 15:36:26 -07:00
Joel Dice
3a87011190 handle SIGBUS on OSX; this isn't working on OSX 10.4, but it might on 10.5 2008-01-01 11:19:55 -07:00
Joel Dice
bdd62011eb fix up access violation handling on windows; refactor posix segv handling to match API change needed for windows 2008-01-01 10:08:47 -07:00
Joel Dice
100fc304ad sketch of windows access violation handling; posix segv handling bugfixes 2007-12-31 16:21:57 -07:00
Joel Dice
f151d85f4e intercept SIGSEGV and throw NullPointerExceptions 2007-12-31 15:40:56 -07:00
Joel Dice
069a760918 snapshot 2007-12-30 15:24:48 -07:00
Joel Dice
c147ef4e5c allow concurrent reads and writes on trace node hashtable, requiring only writes to acquire the the class lock 2007-12-28 09:50:26 -07:00
Joel Dice
8d140c162d eliminate unecessary register and memory operand construction 2007-12-28 08:42:30 -07:00
Joel Dice
5d65e7c220 handle synchronized methods properly in JIT mode 2007-12-27 17:02:05 -07:00
Joel Dice
96f3749c01 implement 64-bit shift instructions for 32-bit arch; code cleanups 2007-12-27 15:55:59 -07:00
Joel Dice
bc44f468de set Verbose=false in compile.cpp 2007-12-27 13:33:58 -07:00
Joel Dice
00c095b564 pop address off stack in jsr instruction before compiling the code which follows 2007-12-27 13:32:34 -07:00
Joel Dice
ea2935f5f1 use storeObjectOrAddress in all astore* instructions 2007-12-27 09:02:03 -07:00
Joel Dice
8e7f3b6821 add force_align_arg_pointer attribute to divideLong and moduloLong functions for OSX 2007-12-27 08:28:25 -07:00
Joel Dice
848a67b397 implement jsr, jsr_w, and ret; various bugfixes to get SWT example working in JIT mode 2007-12-26 16:59:55 -07:00
Joel Dice
c0cf15bb37 add missing instructions and fix shift long instructions to pop an int instead of a long as the shift count 2007-12-26 12:19:45 -07:00
Joel Dice
fdd57ad326 do a 32-bit comparison for cmp4 instruction on amd64 2007-12-26 12:18:51 -07:00
Joel Dice
6ed28a13c3 fix x86-32 regressions due to JIT refactoring 2007-12-26 10:16:21 -07:00
Joel Dice
b361e1b637 refactor JIT code to make operand size an explicit part of each applicable instruction 2007-12-26 09:56:14 -07:00
Joel Dice
8cd18d6193 more JIT bugfixes 2007-12-23 13:06:24 -07:00
Joel Dice
271797bead GC safety fix in resolveTarget 2007-12-23 12:26:35 -07:00
Joel Dice
f87a78833b fix JIT regressions on amd64 2007-12-23 12:18:34 -07:00
Joel Dice
15857135c0 more JIT fixes; all tests now pass on x86-32 2007-12-23 11:48:22 -07:00
Joel Dice
a020a3f6bb handle various return types properly in invokeNative2 2007-12-23 11:09:41 -07:00
Joel Dice
31cf1754ce fix frame trace bug leading to incomplete stack coverage during GC; fix thinko pushing arguments in vmInvoke 2007-12-23 11:01:41 -07:00
Joel Dice
6c532e2ba4 fix register allocation bugs in floating point instructions 2007-12-22 17:15:46 -07:00
Joel Dice
f116225933 fix 64-bit arithmetic support on x86-32 2007-12-22 17:00:35 -07:00
Joel Dice
0dfdcd87d9 Merge jdpc:p/vm/ 2007-12-21 17:32:21 -07:00
Joel Dice
a867e4d587 snapshot 2007-12-21 17:26:55 -07:00
Joel Dice
f3e2795990 Merge branch 'master' of dice:git/vm 2007-12-21 17:26:34 -07:00
Joel Dice
e58972a968 fix regression in push instruction on amd64 2007-12-20 16:47:01 -07:00
Eric Scharff
ef97a5d8da Fix for assembler symbols for Mac build 2007-12-20 16:22:40 -07:00
Joel Dice
06109792e5 JIT build fixes 2007-12-20 16:19:48 -07:00
Joel Dice
640d1d0654 sketch some 64-bit-arithmetic-on-32-bit-system instructions 2007-12-20 09:02:00 -07:00
Joel Dice
be42c325d8 32-bit JIT bugfixes; still broken 2007-12-19 18:42:12 -07:00
Joel Dice
7dd81c803a fix native call argument marshalling regression 2007-12-19 17:02:32 -07:00
Joel Dice
9b08fe083c snapshot 2007-12-18 18:28:55 -07:00
Joel Dice
3bafbf08bb implement shr and ushr; teach add and sub about 32 bit immediate operands 2007-12-17 19:10:12 -07:00
Joel Dice
6895ffaa99 GC safety and sign extension fixes 2007-12-17 19:09:32 -07:00
Joel Dice
2e33856d6b align stack to 16 byte boundary on amd64 2007-12-17 19:08:17 -07:00
Joel Dice
b2cb8e0a69 JIT bugfixes; implement or and xor 2007-12-17 17:22:37 -07:00
Joel Dice
5c807a4ddc implement shl; fix thinko in Frame::Protector; fix uninitialized value warnings 2007-12-17 15:38:59 -07:00
Joel Dice
4c3a2575ba lots of JIT bugfixes; all top-level tests now pass 2007-12-17 13:55:31 -07:00
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