Commit Graph

576 Commits

Author SHA1 Message Date
Joel Dice
b7ea937708 rough sketch of refined compiler design 2008-04-13 12:54:50 -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
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