Commit Graph

901 Commits

Author SHA1 Message Date
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
Joel Dice
a6853fa820 rename -Xbootclasspath option to -Xbootclasspath/p to match Sun syntax and semantics 2008-07-14 11:16:34 -06:00
Joel Dice
920034e231 use JavaVMInitArgs instead of JDK1_1InitArgs in JNI_CreateJavaVM; support -Xbootclasspath option 2008-07-14 11:02:43 -06:00
Zsombor
0e539615e7 add Thread.name field 2008-07-13 18:21:04 -06:00
Joel Dice
2343483d8e Merge branch 'master' of oss:/var/local/git/avian into powerpc 2008-07-13 12:47:49 -06:00
Joel Dice
bf58eaa6ba assert that the target of an invokestatic call is a static method and that the targets of all other invokes are non-static 2008-07-12 14:52:14 -06:00
Joel Dice
623b5f84dc fix GC-in-hashMapResize bug which occasionally resulted in corrupt Machine::monitorMap 2008-07-12 10:38:09 -06:00
Joel Dice
9c82bd2386 Merge branch 'master' of oss.readytalk.com:/var/local/git/avian 2008-07-11 22:01:57 -06:00
Joel Dice
fcd4f0c8f5 third attempt to properly fix race condition in compile function 2008-07-11 22:01:42 -06:00
Joel Dice
149949a2d2 Merge branch 'master' of oss.readytalk.com:/var/local/git/avian 2008-07-11 19:26:53 -06:00
Joel Dice
fa3ceb0a75 add assertions to hashMapResize and hashMapRemove to help debug rare infinite loop 2008-07-11 19:26:46 -06:00
Joel Dice
5a97caa4ca fix recently-introduced GC safety bug 2008-07-11 19:24:37 -06:00
Joel Dice
e31f795661 include Thread::backupHeapIndex in heap footprint calculation 2008-07-11 19:21:53 -06:00
Joel Dice
b1f24079ec fix race condition in compile function (part 2) 2008-07-11 18:14:30 -06:00
Joel Dice
0b79ab4fed fix race condition in compile function
1. Thread A calls function F, which needs to be compiled.  So it
compiles it.
 2. Thread B calls function F, sees that it's already been compiled and
so runs it.
 3. Thread B calls function G from function F, and G needs to be
compiled, but it needs to acquire the class lock first, which A owns.
 4. Thread A causes a GC, walks thread B's stack, but function F has not
yet been added to the method tree, so it thinks the stack has no frames.
 5. Thread A finally adds function F to the method tree.
 6. Thread A causes another GC and walks thread B's stack again, and
this time it finds function F in the method tree.
 7. AAAARRRRRGGGHHH!!!!!!
2008-07-11 18:11:13 -06:00
Joel Dice
23043d140f snapshot 2008-07-05 14:21:13 -06:00
Joel Dice
107ac01304 fix addCR and subtractCR for cases of 64-bit constants on amd64 2008-07-02 08:52:35 -06:00
Joel Dice
0f94bea5a6 fix stress test breakage when throwing ArrayIndexOutOfBoundsExceptions 2008-06-27 09:09:14 -06:00
J. Treadwell
ee8f5a8cd8 First powerpc.cpp with actual ppc assembling (incomplete)! 2008-06-25 17:35:01 -06:00
Joel Dice
9bea21dec7 add copyright header to files which don't already have them 2008-06-25 14:53:48 -06:00
Joel Dice
61e65098df use virtual dispatch when calling Thread.run from VM 2008-06-25 10:28:11 -06:00
Joel Dice
8512d6c74c Merge branch 'master' of oss:/var/local/git/avian into powerpc 2008-06-23 17:38:16 -06:00
Joel Dice
3d84f31c13 fix longCompareCR on 64-bit systems 2008-06-17 09:32:46 -06:00
Eric Scharff
86a5e9ba8a Removed debugging that should not have been checked in 2008-06-16 11:47:54 -06:00
Eric Scharff
2bfe6f0d13 Ensure we align the stack before any time we might enter a C function from
generated code
2008-06-16 10:55:29 -06:00
dicej
04724b657d hello, world! 2008-06-15 14:17:52 -06:00
dicej
fb6624b9ae add cfm_vectors to JNIEnvVTable to match jni.h on OSX 2008-06-15 12:51:04 -06:00
dicej
32f4feb4aa use LOCAL macro to mark local symbols in *.S 2008-06-15 12:49:37 -06:00
dicej
a9ae50900a define LinkageArea in powerpc.h and add the latter to makefile 2008-06-15 12:48:53 -06:00
dicej
b1750c0c9a fix powerpc.S syntax errors 2008-06-15 12:28:48 -06:00
dicej
358f3f801b Merge branch 'master' of oss.ecovate.com:/var/local/git/avian into powerpc 2008-06-15 11:48:05 -06:00
Joel Dice
b683d836c3 implement longCompareRR 2008-06-12 11:23:20 -06:00
Joel Dice
6f5cc9f45f fix unused parameter warning 2008-06-12 11:09:53 -06:00
Joel Dice
eabb37e6eb add lcmp instruction to Compiler and corresponding LongCompare instruction to Assembler, since that's the only efficient way to implement the lcmp bytecode on x86 2008-06-12 10:56:48 -06:00
Joel Dice
357acbdb0f implement move4To8CR, which just defers to moveCR 2008-06-11 08:59:05 -06:00
Joel Dice
94f7efc160 ignore contents of stack location in popNow if the value already resides elsewhere besides the stack 2008-06-11 08:47:06 -06:00
Joel Dice
633ef83fa1 fix handling of values which appear more than once on the stack in trySteal 2008-06-10 18:48:46 -06:00
Joel Dice
b80a3cea85 handle constant comparisons (sometimes generated by ProGuard) in compiler 2008-06-10 18:17:44 -06:00
Joel Dice
dc136bb751 fix stack tracking weirdness for jsr instruction 2008-06-10 18:16:02 -06:00
Joel Dice
5b2065e76c only elide constant multiply if constant is one, not zero (duh) 2008-06-10 18:14:15 -06:00
Joel Dice
fc8c5a2ea9 fix a few bugs revealed by ProGuard optimizations, including too-early constant propagation during array loads and stores 2008-06-10 08:49:13 -06:00