51c56c1b3c
add PrintStream.print[ln] overloads for primitives and char arrays
2011-01-20 08:26:56 -07:00
4f23601b56
fix corner cases which led to crashes in JIT compiler
...
Compiling the entire OpenJDK class library into a bootimage revealed
some corner cases which broke the compiler, including synchronization
in a finally block and gotos targeting the first instruction of an
unsynchronized method.
2010-11-26 12:36:43 -07:00
75de0a621b
fix windows.cpp MySystem::now
2010-11-07 12:35:31 -07:00
d0a6096eb0
add support for accessing embedded JARs as if they were directories
...
This allows OpenJDK to access time zone data which is normally found
under java.home, but which we must embed in the executable itself to
create a self-contained build. The VM intercepts various file
operations, looking for paths which start with a prefix specified by
the avian.embed.prefix property and redirecting those operations to an
embedded JAR.
For example, if avian.embed.prefix is "/avian-embedded", and code
calls File.exists() with a path of
"/avian-embedded/javahomeJar/foo.txt", the VM looks for a function
named javahomeJar via dlsym, calls the function to find the memory
region containing the embeded JAR, and finally consults the JAR to see
if the file "foo.txt" exists.
2010-11-05 13:18:28 -06:00
1d4b54a9f6
fix failure to add abstract virtuals to class with no declared virtuals
2010-09-25 16:35:18 -06:00
45476eb591
fix handling of volatile longs and doubles on PowerPC
...
We were miscompiling methods which contained getfield, getstatic,
putfield, or putstatic instructions for volatile 64-bit primitives on
32-bit PowerPC due to not noticing that values in registers are clobbered
across function calls.
The solution is to create a separate Compiler::Operand instance for each
object monitor reference before and after the function call to avoid
confusing the compiler. To avoid duplicate entries in the constant pool,
we add code look for and, if found, reuse any existing entry for the same
constant.
2010-01-27 17:46:04 -07:00
20c1ea08e6
remove a test from Misc.java since it's been moved to Strings.java
2009-08-14 08:53:33 -06:00
8410e1d683
ensure reads and writes of volatile 64-bit fields are atomic
2009-03-03 18:02:11 -07:00
a1ec71423e
Merge branch 'master' into powerpc
...
Conflicts:
makefile
src/assembler.h
src/binaryToMacho.cpp
src/compile.cpp
src/compiler.cpp
src/x86.cpp
2009-02-09 16:22:01 -07:00
29616c4abc
freeze target site when using temporary in maybeMove
2009-02-08 18:58:33 -07:00
54ad7c4e98
tolerate ConstantValue attributes on non-static fields, since the compiler ensures that they are initialized in any constructors for that class (i.e., the VM does not need to do anything special to initialize them)
2009-01-10 12:25:52 -07:00
b23f7374e9
don't steal sites in pickJunctionSite
2008-12-20 17:45:52 -07:00
d50febe088
various control-flow related bugfixes
2008-12-11 18:09:36 -07:00
cae5202be0
split Misc.java into four separate files
2008-11-10 17:07:15 -07:00
e0e827596e
make Long.parseLong more efficient
2008-08-29 11:37:53 -06:00
a016eeaba0
fix Long.toString for Long.MIN_VALUE case
2008-07-13 17:54:44 -06:00
107ac01304
fix addCR and subtractCR for cases of 64-bit constants on amd64
2008-07-02 08:52:35 -06:00
e9c37f5ffd
add more tests of operations on longs to Misc.java
2008-06-12 11:00:43 -06:00
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
3326aafdac
various 32-bit fixes
2008-05-22 11:15:18 -06:00
21cb1c3c8f
remove Event::validate, since it is no longer needed and actually causes trouble
2008-05-20 16:47:53 -06:00
36dbf1ad14
fix another local variable caching bug
2008-05-20 15:24:10 -06:00
d604efd8f5
fix local variable caching bug
2008-05-20 13:11:42 -06:00
c9f06933e2
test long addition and subtraction in Misc, as well as multidimensional array creation
2008-05-18 09:45:52 -06:00
b6b84af123
various bugfixes
2008-05-17 21:32:14 -06:00
7f72a6469d
more register marshalling bugfixes; simple swt apps now run on amd64
2008-05-15 17:19:23 -06:00
bbd1ee5540
various register marshalling bugfixes
2008-05-15 14:00:57 -06:00
bf08cc4c53
fix array bounds checks
2008-04-30 11:47:25 -06:00
918193fa60
fix 32-bit right unsigned shifts on amd64
2008-04-30 11:15:21 -06:00
e2b24263a2
various bugfixes
2008-04-30 09:44:17 -06:00
1b5f14d847
re-enable tests in Misc and get them working
2008-04-28 09:53:48 -06:00
d6c3b2327f
bugfixes; enums test now succeeds
2008-04-20 13:35:36 -06:00
525f733171
Merge branch 'master' into compiler
...
Conflicts:
src/compile.cpp
src/compiler.cpp
src/compiler.h
2008-04-13 13:48:20 -06:00
907382bcee
fix broken field alignment in parseFieldTable which caused longs to overlap other fields on 32-bit systems in certain cases
2008-03-31 18:34:57 -06:00
9e2e614a15
various fixes to get invokevirtual working
2008-03-10 16:37:21 -06:00
d654c943f3
various bugfixes and tweaks in new compiler, primarily related to duplicating stack operands
2008-02-17 13:57:40 -07:00
b9fa7179d9
more work on new compiler; addition now works
2008-02-11 17:20:32 -07:00
88a8e74a53
fix register to memory mov1 implementation
2008-01-18 15:01:50 -07:00
f0d556b0ec
fix handling of call target resolution for non-virtual calls
2008-01-11 15:16:24 -07:00
a9a0252209
add another test to Misc.java
2008-01-10 15:47:54 -07:00
4c938d496e
fix 64-bit bitshifts on 32-bit systems
2008-01-10 13:47:55 -07:00
5d65e7c220
handle synchronized methods properly in JIT mode
2007-12-27 17:02:05 -07:00
796a64a426
lots of JIT bugfixes and cleanups
2007-12-15 17:24:15 -07:00
b2147c2c99
lots of JIT bugfixes and a few new instructions
2007-12-12 15:19:13 -07:00
fab77e4d96
don't call prologue and epilogue from compileDefault, since we want the original rbp and rsp values
2007-12-11 18:19:03 -07:00
33b2a4a1e8
support absolute operands on virtual stack and absolute to memory movs
2007-12-11 17:27:04 -07:00
d70e3aaefb
JIT progress: new, invokespecial, etc.
2007-12-11 16:52:28 -07:00
fdeafe46fd
2+2 test now works with new JIT code
2007-12-11 14:26:59 -07:00
19d36cc463
implement impdep1 instruction for lazily loading bootstrap classes
2007-11-05 08:29:43 -07:00
6c0e0c37e2
snapshot
2007-11-05 07:28:46 -07:00