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
Joel Dice
4b67adaa0a
sketch vmNativeCall implementation for powerpc
2008-06-08 13:47:37 -06:00
Joel Dice
ca6215c720
start fleshing out powerpc.S
2008-06-06 08:55:16 -06:00
dicej
f375f6e85c
enable powerpc build for process=interpret (won't run yet, though)
2008-06-04 17:09:09 -06:00
dicej
9e0f0a17a7
Merge branch 'master' of oss.readytalk.com:/var/local/git/avian into powerpc
2008-06-04 16:22:46 -06:00
dicej
0ccf8d57ea
rough sketch of powerpc support
2008-06-04 16:21:27 -06:00
Joel Dice
ec791a90de
fix process=interpret build
2008-06-04 16:17:06 -06:00
Eric Scharff
2aadbaac38
Force alignment for native calls
2008-06-02 11:43:58 -06:00
Eric Scharff
33306aa2f5
Fix warning on confused Mac OS X gcc 4.0
2008-06-02 10:12:09 -06:00
Joel Dice
3b0e05b739
fix unused parameter warning
2008-06-02 08:13:20 -06:00
Joel Dice
ecfb853f17
use relative branches where possible on amd64
2008-06-02 07:49:09 -06:00
Joel Dice
2f3e1ea393
fix incorrect debug logging message
2008-05-31 19:40:18 -06:00
Joel Dice
7d1ed0da05
Merge branch 'compiler' of oss.readytalk.com:/var/local/git/avian
...
Conflicts:
src/compiler.cpp
2008-05-31 19:30:28 -06:00
Joel Dice
7cdff9f1ee
disable debug logging and fix build warnings
2008-05-31 17:06:45 -06:00
Joel Dice
eacca98c3f
fix regressions affecting 32-bit systems
2008-05-31 16:53:37 -06:00
Joel Dice
1450b12e5b
visit thunk objects during GC in MyProcessor::visitObjects
2008-05-31 16:24:32 -06:00
Joel Dice
e68a18248c
use codePromise helper function in CallEvent ctor
2008-05-31 16:24:04 -06:00
Joel Dice
65830a76c5
improve efficiency of array bounds checks and generate a thunk table for native functions called indirectly
2008-05-31 16:14:27 -06:00
Joel Dice
51256f3cc2
fix moveCM for 64-bit constants on 64-bit machines
2008-05-22 18:16:44 -06:00
Joel Dice
f05318b787
fix thinkos in d2i and friends
2008-05-22 18:08:41 -06:00
Joel Dice
3326aafdac
various 32-bit fixes
2008-05-22 11:15:18 -06:00
Joel Dice
21cb1c3c8f
remove Event::validate, since it is no longer needed and actually causes trouble
2008-05-20 16:47:53 -06:00
Joel Dice
36dbf1ad14
fix another local variable caching bug
2008-05-20 15:24:10 -06:00
Joel Dice
d604efd8f5
fix local variable caching bug
2008-05-20 13:11:42 -06:00
Joel Dice
651c4559db
implement compareAR
2008-05-19 10:39:05 -06:00
Joel Dice
983e64c86a
preserve old value of local variable *before* it is overwritten
2008-05-19 10:14:54 -06:00
Joel Dice
83da1ec205
preserve old value of local variable across store if it will be used later; tweak site ownership transfer in MoveEvent.compile
2008-05-19 08:53:40 -06:00
Joel Dice
292f84a3fa
fix thinko in laload implementation
2008-05-19 08:50:37 -06:00
Joel Dice
08a1921eb7
only set target equal to src->source in MoveEvent.compile if it is a simple load or store
2008-05-19 07:44:39 -06:00
Joel Dice
ad6153612b
disallow memory,constant comparisons on x86
2008-05-19 07:43:37 -06:00
Joel Dice
b52cefa86e
disallow memory operands in 32-bit comparisons on amd64
2008-05-19 07:27:05 -06:00
Joel Dice
3c30e815ec
optimize multiple loads from the same local variable
2008-05-18 22:31:52 -06:00
Joel Dice
56d8851764
constrain temporary register in moveMM according to moveMR's requirements
2008-05-18 22:28:47 -06:00
Joel Dice
b2e25f4e17
reorder makeMultidimensionalArray parameters to remove the need for the caller to save the stack pointer in a temporary register
2008-05-18 09:45:11 -06:00
Joel Dice
4858972dbc
support 64-bit subtracts on 32-bit systems; allow constant shift counts in MyAssembler::plan
2008-05-18 09:43:31 -06:00
Joel Dice
392132cb0e
Merge branch 'compiler' of la.merseine.nu:p/avian-compiler into compiler
2008-05-17 21:34:46 -06:00
Joel Dice
b6b84af123
various bugfixes
2008-05-17 21:32:14 -06:00
Joel Dice
2bb310981d
clean up MoveEvent.compile
2008-05-17 19:26:36 -06:00
Joel Dice
15c2eb13f2
don't generate code for a move from a register to itself
2008-05-17 18:13:27 -06:00
Joel Dice
85a772b0a7
add read of size 4 in CombineEvent for first operand of shift operation
2008-05-16 10:18:36 -06:00
Joel Dice
790e2fee42
respect constraints specified by Assembler::plan in MoveEvent::compile
2008-05-16 10:01:24 -06:00
Joel Dice
21c5eb2d9e
fix thinko in appendCombine
2008-05-15 18:35:17 -06:00
Joel Dice
d7fc4aa438
fix offset computation in compareCR and compareCM
2008-05-15 18:34:48 -06:00
Joel Dice
7f72a6469d
more register marshalling bugfixes; simple swt apps now run on amd64
2008-05-15 17:19:23 -06:00
Joel Dice
bbd1ee5540
various register marshalling bugfixes
2008-05-15 14:00:57 -06:00
Joel Dice
2ed6247cec
fix freezing and thawing of read sites where the same value is read multiple times in compile()
2008-05-15 08:29:19 -06:00
Joel Dice
505d6df7ae
reorder code in CallEvent ctor to ensure we don't clobber argument registers when it comes time to marshal values for reading
2008-05-14 18:04:25 -06:00
Joel Dice
8434abaa0e
implement swapRR
2008-05-14 17:33:55 -06:00
Joel Dice
04f4ad4f58
fix variadic argument passing bug on amd64
2008-05-14 17:22:44 -06:00
Joel Dice
73b8cc5595
fix unused variable warnings
2008-05-14 17:19:41 -06:00
Joel Dice
482065f91a
fix code ordering bug in popNow()
2008-05-14 16:36:22 -06:00
Joel Dice
13d6ab023f
implement addCM
2008-05-13 11:28:19 -06:00
Joel Dice
08beaad1b6
various bugfixes related to new register allocation code
2008-05-13 11:27:57 -06:00
Joel Dice
a40635fdba
rework register allocation to be more flexible
2008-05-12 07:54:47 -06:00
Joel Dice
f1809897bd
fix build
2008-05-06 15:13:02 -06:00
Joel Dice
1cb9d0327a
initialize body of exception handler table for GC safety
2008-05-05 19:17:29 -06:00
Joel Dice
7dcd109567
assert thread is in exclusive or exit state in removeMonitor
2008-05-05 07:07:59 -06:00
Joel Dice
ebb498587f
enter exclusive state in collect function instead of requiring caller to enter that state before calling
2008-05-05 07:04:53 -06:00
Joel Dice
efb30b2256
progress towards more flexible register allocation in compiler
2008-05-04 14:55:34 -06:00
Joel Dice
2e108861da
remove operand marshalling from the assembler in favor of doing it in the compiler
2008-05-04 13:09:12 -06:00
Joel Dice
7b809efd3f
fix shift bugs
2008-04-30 12:44:27 -06:00
Joel Dice
bf08cc4c53
fix array bounds checks
2008-04-30 11:47:25 -06:00
Joel Dice
918193fa60
fix 32-bit right unsigned shifts on amd64
2008-04-30 11:15:21 -06:00
Joel Dice
844841937f
fix use of wrong constant in x86.cpp
2008-04-30 10:46:46 -06:00
Joel Dice
2226627e53
fix incorrect comment
2008-04-30 10:43:33 -06:00
Joel Dice
e2b24263a2
various bugfixes
2008-04-30 09:44:17 -06:00
Joel Dice
3909e3f032
fix thinko concerning stack resets in compile()
2008-04-29 17:18:28 -06:00
Joel Dice
7640590153
implement orCR and compareRC
2008-04-29 17:16:53 -06:00
Joel Dice
59f92b6208
support 64-bit multiplies on 32-bit systems
2008-04-29 16:11:17 -06:00
Joel Dice
4c2d44099b
support more 64-bit operations on 32-bit systems
2008-04-29 14:24:52 -06:00
Joel Dice
3fa3fd0796
fix stack index calculation when pushing operands
2008-04-29 14:24:08 -06:00