corda/src
Joel Dice fea92ed995 more work on tail recursion
We now create a unique thunk for each vtable position so as to avoid
relying on using the return address to determine what method is to be
compiled and invoked, since we will not have the correct return address
in the case of a tail call.  This required refactoring how executable
memory is allocated in order to keep AOT compilation working.  Also, we
must always use the same register to hold the class pointer when
compiling virtual calls, and ensure that the pointer stays there until
the call instruction is executed so we know where to find it in the
thunk.
2009-04-05 15:42:10 -06:00
..
allocator.h Merge branch 'master' into powerpc 2008-11-11 08:21:48 -07:00
arch.h rough sketch of powerpc support 2008-06-04 16:21:27 -06:00
assembler.h more work on tail recursion 2009-04-05 15:42:10 -06:00
binaryToMacho.cpp update copyright years 2009-03-15 12:02:36 -06:00
boot.cpp update makefile to optionally build and use a boot image; various bugfixes 2008-11-29 16:08:14 -07:00
bootimage.cpp more work on tail recursion 2009-04-05 15:42:10 -06:00
bootimage.h more work on tail recursion 2009-04-05 15:42:10 -06:00
builtin.cpp update copyright years 2009-03-15 12:02:36 -06:00
common.h Merge branch 'master' into powerpc 2009-02-09 16:22:01 -07:00
compile-powerpc.S always return an 8-byte value (or void) from native functions called from Java 2009-02-28 14:20:43 -07:00
compile-x86.S avoid reading below the stack pointer in vmInvoke, since it upsets valgrind 2009-03-19 08:44:08 -06:00
compile.cpp more work on tail recursion 2009-04-05 15:42:10 -06:00
compiler.cpp more work on tail recursion 2009-04-05 15:42:10 -06:00
compiler.h more work on tail recursion 2009-04-05 15:42:10 -06:00
constants.h prepend copyright notice and license to all source files; add license.txt and readme.txt 2008-02-19 11:06:52 -07:00
finder.cpp Merge branch 'master' into powerpc 2009-02-09 16:22:01 -07:00
finder.h various bugfixes 2008-11-27 21:44:04 -07:00
heap.cpp fix regressions for non-bootimage case 2008-12-03 19:09:57 -07:00
heap.h lots of bugfixes and refactoring 2008-12-01 19:38:00 -07:00
heapdump.cpp fix merge confict fallout in heapdump.cpp 2008-12-04 14:35:25 -07:00
heapwalk.cpp update makefile to optionally build and use a boot image; various bugfixes 2008-11-29 16:08:14 -07:00
heapwalk.h update makefile to optionally build and use a boot image; various bugfixes 2008-11-29 16:08:14 -07:00
interpret.cpp update copyright years 2009-03-15 12:02:36 -06:00
jnienv.cpp update copyright years 2009-03-15 12:02:36 -06:00
jnienv.h prepend copyright notice and license to all source files; add license.txt and readme.txt 2008-02-19 11:06:52 -07:00
machine.cpp update copyright years 2009-03-15 12:02:36 -06:00
machine.h more work on tail recursion 2009-04-05 15:42:10 -06:00
main.cpp update makefile to optionally build and use a boot image; various bugfixes 2008-11-29 16:08:14 -07:00
posix.cpp more work on tail recursion 2009-04-05 15:42:10 -06:00
powerpc.cpp initial sketch of tail call optimization (non-virtual calls only, so far) 2009-03-31 14:15:08 -06:00
powerpc.h update copyright years 2009-03-15 12:02:36 -06:00
powerpc.S update copyright years 2009-03-15 12:02:36 -06:00
process.cpp Merge branch 'master' into powerpc 2008-11-11 08:21:48 -07:00
process.h update copyright years 2009-03-15 12:02:36 -06:00
processor.h more work on tail recursion 2009-04-05 15:42:10 -06:00
stream.h Merge branch 'master' into powerpc 2008-11-11 08:21:48 -07:00
system.h Merge branch 'master' into powerpc 2009-02-09 16:22:01 -07:00
thunks.cpp always return an 8-byte value (or void) from native functions called from Java 2009-02-28 14:20:43 -07:00
type-generator.cpp zero heap space ahead of time when allocating raw storage and garbage collecting, not when allocating individual objects 2009-03-03 20:05:48 -07:00
types.def more work on tail recursion 2009-04-05 15:42:10 -06:00
types.h prepend copyright notice and license to all source files; add license.txt and readme.txt 2008-02-19 11:06:52 -07:00
util.cpp update copyright years 2009-03-15 12:02:36 -06:00
util.h check for null array in HashMapIterator::find 2008-12-18 20:23:08 -07:00
vector.h simplify memory allocation interfaces 2008-04-13 12:15:04 -06:00
windows.cpp more work on tail recursion 2009-04-05 15:42:10 -06:00
x86.cpp initial sketch of tail call optimization (non-virtual calls only, so far) 2009-03-31 14:15:08 -06:00
x86.h update copyright years 2009-03-15 12:02:36 -06:00
x86.S update copyright years 2009-03-15 12:02:36 -06:00
zlib-custom.h prepend copyright notice and license to all source files; add license.txt and readme.txt 2008-02-19 11:06:52 -07:00
zone.h simplify memory allocation interfaces 2008-04-13 12:15:04 -06:00