Commit Graph

1041 Commits

Author SHA1 Message Date
Joel Dice
7d68c9b0a5 Merge branch 'bootimage' of oss.readytalk.com:/var/local/git/avian
Conflicts:

	src/heapdump.cpp
2008-12-04 14:29:17 -07:00
Joel Dice
58a90f2b84 fix regressions for non-bootimage case 2008-12-03 19:09:57 -07:00
Joel Dice
93d4fbc43d fix platform=windows and process=interpret builds 2008-12-03 08:44:07 -07:00
Joel Dice
457c3d135e return Tenured from MyHeap::status if the object resides in the immortal heap 2008-12-02 19:41:22 -07:00
Joel Dice
4098368cb9 fix non-debug build of compile.cpp 2008-12-02 19:39:56 -07:00
Joel Dice
851efc8d10 handle case of unresolved promise in compareCR and compareCM 2008-12-02 19:39:09 -07:00
Joel Dice
bcfdc03631 fix build breakage in heapdump.cpp 2008-12-02 19:38:32 -07:00
Joel Dice
d4363d250a mark and fix up absolute addresses in boot image code 2008-12-02 09:45:20 -07:00
Joel Dice
25ade1484a lots of bugfixes and refactoring 2008-12-01 19:38:00 -07:00
Rich Scott
f13bf44e87 Check return value of fwrite() calls.
This is to satisfy GCC 4.3.2 (on Ubuntu 8.10), which requires it.
2008-12-01 16:53:34 -07:00
Joel Dice
eaf30eb909 fix static class initialization when using a boot image 2008-11-29 21:58:09 -07:00
Joel Dice
e44f326377 various bugfixes 2008-11-29 18:39:42 -07:00
Joel Dice
0ec5ad3701 update makefile to optionally build and use a boot image; various bugfixes 2008-11-29 16:08:14 -07:00
Joel Dice
0ef2ee1d02 refactor Segment::Map to support map data which is not allocated as part of the segment data 2008-11-29 13:37:03 -07:00
Joel Dice
702525fd32 support immortal heap area in heap.cpp 2008-11-28 19:31:06 -07:00
Joel Dice
b8056d905c fix bugs in allocating and populating method object pools 2008-11-28 18:23:01 -07:00
Joel Dice
80815d35f7 fix fixed object tracking in heap.cpp 2008-11-28 18:22:09 -07:00
Joel Dice
4d1af63ed2 initial work on booting from boot image 2008-11-28 15:02:45 -07:00
Joel Dice
d22a9ab270 visit constants in visitRoots so they are included in the final heap image 2008-11-28 11:33:11 -07:00
Joel Dice
02afbd1fa1 handle unresolved constants in moveCM 2008-11-27 21:58:32 -07:00
Joel Dice
6dc181fad5 move allocation zone from makeCodeImage to writeBootImage so it stays in scope until after updateConstants is called 2008-11-27 21:58:04 -07:00
Joel Dice
a8a030140c various bugfixes 2008-11-27 21:44:04 -07:00
Joel Dice
f698c24ea6 delay resolving method call offsets until all methods have been compiled when creating a boot image 2008-11-27 13:59:40 -07:00
Joel Dice
264779ed2a copy site if necessary to avoid chaining to another site in resolveJunctionSite 2008-11-25 19:23:47 -07:00
Joel Dice
f9145528c8 do constant-to-memory movq in one instruction on amd64 when possible 2008-11-25 19:22:21 -07:00
Joel Dice
61ecb56e21 Merge branch 'master' of oss:/var/local/git/avian into powerpc 2008-11-25 16:19:21 -07:00
Joel Dice
fdb9c05ac6 avoid uninitialized value warnings from valgrind when DebugFrameMaps is true 2008-11-25 16:01:30 -07:00
Joel Dice
58a9718d82 clean stack sites more aggressively after function calls to avoid GC bugs 2008-11-25 16:00:40 -07:00
Joel Dice
eea2225176 save locals to memory before executing any instruction which might trigger an exception if that instruction lies within an exception handler 2008-11-25 10:34:48 -07:00
Joel Dice
035aa0ecd4 Merge branch 'master' of oss.readytalk.com:/var/local/git/avian into bootimage
Conflicts:

	src/compile.cpp
	src/machine.h
	src/util.h
2008-11-23 17:02:34 -07:00
Joel Dice
20cf42c5e4 more work on boot image creation 2008-11-23 16:58:01 -07:00
Joel Dice
207f093464 never trigger a GC due to an immortal allocation 2008-11-23 11:48:39 -07:00
Joel Dice
fb9b2bf173 avoid creating garbage when iterating over hashmaps 2008-11-22 16:38:41 -07:00
Joel Dice
4392b04fd0 avoid creating unecessary garbage in treeInsertNode and friends 2008-11-22 16:25:35 -07:00
Joel Dice
6162dfafbb increase heap pool size and fixed footprint threshold constants based on performance profiling and experimentation (second try) 2008-11-22 14:48:10 -07:00
Joel Dice
8a7852172e increase heap pool size and fixed footprint threshold constants based on performance profiling and experimentation 2008-11-22 14:47:18 -07:00
Joel Dice
2e2925c321 fix backwards logic in treeMapInsert which prevented correct balancing 2008-11-22 14:14:52 -07:00
Joel Dice
6500f1eff6 initial work to support boot image creation and use 2008-11-21 16:20:35 -07:00
Joel Dice
e98da8440e minor tweak to find function in heapdump.cpp to return 0 where we were returning false (which amounts to the same thing but is less confusing) 2008-11-19 18:09:02 -07:00
Joel Dice
3d9e508e3e fix regression in last commit 2008-11-17 08:44:35 -07:00
Joel Dice
9aee242408 Merge branch 'powerpc' of oss:/var/local/git/avian into powerpc
Conflicts:

	src/compiler.cpp
2008-11-17 08:22:07 -07:00
Joel Dice
7ea5a4a64f avoid inifinite recursion in trySteal 2008-11-17 08:20:48 -07:00
Joel Dice
92a8a4d83b clean up subroutine code in wake of merge from master branch 2008-11-15 18:03:43 -07:00
Joel Dice
9b6d4fdeab Merge branch 'master' of oss.readytalk.com:/var/local/git/avian into powerpc
Conflicts:

	src/compile.cpp
2008-11-15 17:49:08 -07:00
Joel Dice
dc2700d913 ensure that the saved exception in a finally block is visited during GC when the jsr instruction is used 2008-11-15 17:28:45 -07:00
Joel Dice
fb770d10fb implement jsr/ret support
The Subroutine test won't pass due to a bug in the stack mapping code
such that objects may be missed during GC.
2008-11-13 17:59:21 -07:00
Joel Dice
fae0ccfe96 fix unused parameter warnings 2008-11-11 18:09:45 -07:00
Joel Dice
6f5613ebd9 minor code cleanup in MoveEvent::compile 2008-11-11 17:48:21 -07:00
Joel Dice
191bfb6141 fix 4-to-8 byte sign extensions for ia32 and clean up MoveEvent; all tests now pass on ia32 2008-11-11 17:39:26 -07:00
Joel Dice
acfd9689b2 Merge branch 'master' of oss:/var/local/git/avian into powerpc
Conflicts:

	makefile
	src/assembler.h
	src/compile.cpp
	src/compiler.cpp
	src/compiler.h
	src/finder.cpp
2008-11-11 12:15:19 -07:00
Joel Dice
e859502811 handle unresolved constants in moveCM 2008-11-11 11:56:43 -07:00
Joel Dice
671fd1c0f9 set popIndex for stack arguments in CallEvent constructor 2008-11-11 11:56:23 -07:00
Joel Dice
0bef625500 fix thinko in logCompile 2008-11-11 09:17:11 -07:00
Joel Dice
c80eb51c17 Merge branch 'master' into powerpc
Conflicts:

	makefile
	src/assembler.h
	src/compile.cpp
	src/compiler.cpp
	src/compiler.h
	src/finder.cpp
2008-11-11 08:21:48 -07:00
Joel Dice
2304a656cf in releaseRegister, if the register is not the exclusive site of a value, steal it 2008-11-10 21:25:36 -07:00
Joel Dice
54cda3ca61 specify register contraints for Negate instruction in MyArchitecture::plan 2008-11-10 20:23:33 -07:00
Joel Dice
96a7c71c30 fix loading 8-byte values on 32-bit systems 2008-11-10 19:12:36 -07:00
Joel Dice
81d532c4f0 handle overlap cases in moveRR 2008-11-10 19:11:32 -07:00
Joel Dice
5fc9ad058b more bugfixes; all tests pass on amd64 2008-11-10 17:07:44 -07:00
Joel Dice
00d8142de9 various bugfixes; all but one test are passing on amd64 2008-11-09 16:56:37 -07:00
Joel Dice
000aeb25c1 handle case where first instruction is the target of a branch properly 2008-11-08 16:21:30 -07:00
Joel Dice
decd24965a implement multiplyCR and divideCR 2008-11-08 15:42:26 -07:00
Joel Dice
61539bae31 fix stack mapping bugs which broke GC 2008-11-08 15:36:38 -07:00
Joel Dice
312539af64 fix moves involving sign or zero extension 2008-11-08 13:47:26 -07:00
Joel Dice
f01f4441d9 various bugfixes and instructions implemented to get more tests passing 2008-11-06 17:39:38 -07:00
Joel Dice
1ba497d90a fix Exceptions test for amd64 2008-11-02 15:25:51 -07:00
Joel Dice
04da77e95b snapshot 2008-11-02 13:35:35 -07:00
Joel Dice
3e81405a33 snapshot 2008-11-01 16:16:18 -06:00
Joel Dice
dd4dc18916 snapshot 2008-11-01 13:14:13 -06:00
Joel Dice
6f1d02dae7 remove the libstdc++ dependency once and for all
The trick is to make all destructors non-virtual.  This is safe because
we never use the delete operator, which is the only case where virtual
destructors are relevant.  This is a better solution than implementing
our own delete operator, because we want libraries loaded at runtime to
use the libstdc++ version, not ours.
2008-10-28 15:40:50 -06:00
Joel Dice
88a1faa2a2 set global system pointer to null in MySystem::dispose in windows.cpp 2008-10-28 12:15:27 -06:00
Joel Dice
01cc868797 remove debug code from builtin.cpp 2008-10-27 15:39:14 -06:00
Joel Dice
4d613f404f use dbghelp.dll to generate crash dump file on Windows XP and later
The dump is written to the directory specified via the avian.crash.dir
system property if that property is set and is not written otherwise.
2008-10-27 15:13:27 -06:00
Joel Dice
d20ee74d79 fix stack frame offset calculations for 64-bit values; insert dummy events for instructions which start with stack activity 2008-10-24 20:12:02 -06:00
Joel Dice
003afdc918 fix heap dump facility to visit all roots 2008-10-24 18:48:10 -06:00
Joel Dice
3b67417695 heap dump bugfixes 2008-10-22 18:05:34 -06:00
Joel Dice
d25a6098e6 remove support for hiding constructors and accessors in type-generator.cpp
This feature is not being used, and it may be the cause of this bug:

  http://groups.google.com/group/avian/browse_thread/thread/955aa1479e9fddca
2008-10-22 08:39:27 -06:00
Joel Dice
e2f3e3da77 enter active state at start of Java_java_lang_Runtime_dumpHeap 2008-10-21 17:49:32 -06:00
Joel Dice
0459a7701c enter exclusive state before dumping heap 2008-10-21 17:47:38 -06:00
Joel Dice
6a5116e7a7 implement primitive heap dump facility for memory profiling, accessible via Runtime.dumpHeap
The proper way to do this is to implement a subset of JVMTI, but this
will do the job for now.
2008-10-21 17:38:20 -06:00
Joel Dice
7d6ca28b2f snapshot 2008-10-18 18:15:57 -06:00
Joel Dice
26614e2182 use same code to spill registers and stack frame slots 2008-10-16 18:10:35 -06:00
Joel Dice
5391c68efd bugfixes 2008-10-14 18:45:31 -06:00
Joel Dice
aaaf388652 fix handling of instructions which are targets of more than one conditional branch 2008-10-13 18:18:18 -06:00
Joel Dice
f38a55cbb2 make linking against libstdc++ the default, overrideable via use-libstdcpp make parameter 2008-10-13 16:31:59 -06:00
Joel Dice
3c798f5bd7 various bugfixes concerning control flow boundaries 2008-10-11 18:23:08 -06:00
Joel Dice
5c04c19e29 look for %s@%d format symbols when resolving native methods on Windows, which obviates the need for -k flag to dlltool 2008-10-10 17:37:36 -06:00
Joel Dice
81cb951b08 fix stack corruption due to spurious pop events generated for jsr bytecodes 2008-10-09 17:14:52 -06:00
Joel Dice
83d5d6fde4 avoid unnecessary moves in resolveJunctionSite; distinguish between branches and other events when deciding when to marshal values at junctions 2008-10-07 18:08:13 -06:00
Joel Dice
f6c4496166 various bugfixes 2008-10-05 18:50:59 -06:00
Joel Dice
adb63778f0 fix stack and local snapshots for DummyEvents 2008-10-04 18:14:43 -06:00
Joel Dice
d54ee9081b return null for null argument to MyArchitecture::frameIp 2008-10-04 18:12:29 -06:00
Joel Dice
83aa342bc8 hello, world on amd64 2008-10-04 11:26:35 -06:00
dain
c9e0aa824d Initialized variables to appease gcc 4.2 2008-10-02 13:20:30 -06:00
Joel Dice
07daa9be51 free properties array in Machine::dispose 2008-09-30 17:03:13 -06:00
Joel Dice
df75153a85 handle case of null Stack::pushEvent in CallEvent ctor 2008-09-30 11:22:46 -06:00
Joel Dice
89cc5aa546 initialize JarElement::region in constructor 2008-09-29 18:04:47 -06:00
Joel Dice
823327a00b fix bytecode address calculations which broke when using -Os 2008-09-29 08:46:44 -06:00
Joel Dice
d409f89d5d ensure that only one value holds a given frame site at at time 2008-09-28 15:56:12 -06:00
Joel Dice
61c708d7b2 reserve stack space for arguments to native calls 2008-09-28 13:00:52 -06:00
Joel Dice
c699725cf8 avoid running out of registers when picking junction sites 2008-09-27 16:01:39 -06:00
Joel Dice
965b83303f implement additional instructions 2008-09-27 16:00:58 -06:00
Joel Dice
1910e1b837 Merge branch 'master' of oss.readytalk.com:/var/local/git/avian 2008-09-26 18:17:41 -06:00
Joel Dice
ac988f7a0d fix static field lookup from interfaces 2008-09-26 18:17:13 -06:00
J. Treadwell
27e8bd1406 Temporary StringBuilder fix 2008-09-26 11:31:47 -06:00
Joel Dice
11c2afbf91 bugfixes 2008-09-24 18:48:32 -06:00
Joel Dice
f2bf152eba more bugfixes 2008-09-23 18:01:42 -06:00
Joel Dice
d4938115ef various bugfixes 2008-09-23 15:18:41 -06:00
Joel Dice
b8dd495ada fix build 2008-09-22 08:28:18 -06:00
Joel Dice
86bec5e3b7 sketch out handling of reads at control flow blocks with multiple predecessors 2008-09-21 18:58:54 -06:00
Joel Dice
1b4ad1db42 snapshot 2008-09-20 17:42:46 -06:00
Joel Dice
96c6c7f8ea don't log JIT results to stderr unless DebugCompile is true 2008-09-19 16:43:06 -06:00
Joel Dice
1657fb794c support logging addresses and names of JIT-compiled methods to a file specified via a system property 2008-09-19 11:34:37 -06:00
Joel Dice
fadb66044b remove unused instructions from x86.cpp 2008-09-16 07:59:34 -06:00
Joel Dice
606e5cb238 lots of bugfixes - finally got Simple.pow() working 2008-09-14 20:28:42 -06:00
Joel Dice
bd9e8a77e2 improved tracking of data flow across control flow boundaries 2008-09-13 15:09:26 -06:00
Joel Dice
44ccd2b09e write alignment padding to output buffer in MyAssembler::writeTo 2008-09-13 15:07:39 -06:00
Joel Dice
392a1417e5 lots of bugfixes and a few instructions added 2008-09-08 18:31:19 -06:00
Joel Dice
1dd25325c8 implement various instructions, including AlignedCall 2008-09-07 20:21:52 -06:00
Joel Dice
dcdf78dc44 fix localOffset calculation 2008-09-07 20:21:11 -06:00
Joel Dice
af9758a6d3 got a simple arithmetic test working 2008-09-07 14:12:11 -06:00
Joel Dice
9971eaa92a support out-of-order compilation in x86 assembler 2008-09-06 19:37:12 -06:00
Joel Dice
ed806ca740 working towards compiling simple methods 2008-09-06 15:25:41 -06:00
Joel Dice
e13b755048 more progress towards new JIT code - this compiles but won't run properly 2008-09-05 09:00:38 -06:00
Joel Dice
5f7d68b404 snapshot 2008-08-30 14:12:27 -06:00
Joel Dice
767c3ce2e4 snapshot 2008-08-28 16:43:35 -06:00
Joel Dice
a062d8c975 progress towards refactored JIT compiler to support PowerPC and data flow analysis across control flow boundaries 2008-08-23 12:04:36 -06:00
Joel Dice
9908bbcf50 sketch new version of x86.cpp to conform to new assembler.h APIs 2008-08-19 17:38:37 -06:00
Joel Dice
9654e3445d refactor stack walking and visiting code to abstract away certain details of stack layout which are architecture-specific 2008-08-18 09:23:01 -06:00
Joel Dice
4a3be37c67 snapshot 2008-08-17 13:32:40 -06:00
Joel Dice
4a022147cd Merge branch 'master' of oss.readytalk.com:/var/local/git/avian into powerpc 2008-08-16 12:56:41 -06:00
Joel Dice
5dc0959294 snapshot 2008-08-16 12:46:14 -06:00
Joel Dice
9efe6f1f05 snapshot 2008-08-16 11:45:36 -06:00
Joel Dice
c8cc7d931b maintain a table to look up methods called via JNI
This simplifies the JNI implementation for looking up methods.  It also
fixes a bug where an applications calls GetStaticMethodID with class A
and then calls CallStatic<Type>Method with class B which extends A.  The
old code would look in the wrong method table and thus call the wrong
method.
2008-08-15 12:32:33 -06:00
Joel Dice
78e48996b5 fix handling of native methods in stack walking code 2008-08-14 12:13:05 -06:00
Joel Dice
e46e222f38 wait for other threads to exit in DestroyJavaVM 2008-08-13 15:39:48 -06:00
Joel Dice
297e8f09ec don't calculate the index in hashMapInsert until it's needed 2008-08-11 16:44:38 -06:00
Joel Dice
5f4d86a703 avoid potential corruption in hashMapInsert due to table-resize-on-GC 2008-08-11 15:20:12 -06:00
Joel Dice
22a5707966 remove obsolete code from postVisit; upgrade assert to expect for debugging 2008-08-11 15:16:55 -06:00
Joel Dice
6ee2b0280e implement compareAM 2008-07-31 07:53:43 -06:00
Joel Dice
4299063be9 Merge branch 'master' of oss:/var/local/git/avian into powerpc 2008-07-23 17:58:36 -06:00
Joel Dice
29df431df5 snapshot 2008-07-23 17:58:29 -06:00
Joel Dice
c6071569bf Merge branch 'powerpc' of oss:/var/local/git/avian into powerpc 2008-07-23 17:58:03 -06:00
Joel Dice
522e2ebc9f fix bug in debug helper function 2008-07-21 14:41:29 -06:00
Joel Dice
6e3bbd3c5f Merge branch 'master' of oss:/var/local/git/avian into powerpc 2008-07-17 17:34:52 -06:00
Joel Dice
f0c9deaa06 snapshot 2008-07-17 17:34:38 -06:00
Eric Scharff
13a535d1c6 Added a getContentLength() method to URLConnection
This is particularly important if you want to get the number of bytes of a
resource loaded by the class loader:
  getClass().getResource("myFile").openConnection().getContentLength()
2008-07-15 09:36:52 -06:00
Joel Dice
a2ba391b89 support -Xbootclasspath and -Xbootclasspath/a options 2008-07-14 11:51:20 -06:00
Joel Dice
cfaf690306 update usage message (part 2) 2008-07-14 11:23:33 -06:00
Joel Dice
d20fc697cb update usage message 2008-07-14 11:21:59 -06:00