Joel Dice
823327a00b
fix bytecode address calculations which broke when using -Os
2008-09-29 08:46:44 -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
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
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
522e2ebc9f
fix bug in debug helper function
2008-07-21 14:41:29 -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
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
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
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
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
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
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