Commit Graph

4674 Commits

Author SHA1 Message Date
Joshua Warner
a13e97ddf7 Merge pull request #403 from dicej/getDeclaredMethods
fix crash when calling Class.getDeclaredMethods using the OpenJDK class ...
2015-01-22 13:38:54 -07:00
Joshua Warner
7fe6f015fd Merge pull request #402 from dicej/master
fix Cygwin build
2015-01-22 13:30:43 -07:00
Joel Dice
afbd4ff303 fix crash when calling Class.getDeclaredMethods using the OpenJDK class library
This method ends up defering to JVM_GetClassDeclaredMethods, which
creates an array of java.lang.reflect.Method instances and then
calling getName on each one through the java.lang.reflect.Member
interface.  However, Method is a "bootstrap" class, meaning the VM has
built-in knowledge of it and includes a tentative version built-in but
must load the real version from the classpath at runtime before
invoking methods on it.  Normally this happens naturally when Method
instances are created in Java code, but here we're creating them in
the VM instead, which doesn't automatically cause the real class to be
loaded.  So we must do so explicitly.
2015-01-22 12:02:28 -07:00
Joel Dice
b777f0b4a2 fix Cygwin build
80ce92a introduced a regression which caused the Cygwin build to fail,
since it tried to set platform=$(build-platform) when calling make
recursively, and platform=cygwin is rejected by the makefile.
Instead, we need to use $(bootimage-platform), which normalizes
"cygwin" and "mingw32" to "windows".
2015-01-22 09:57:15 -07:00
Joshua Warner
5def0e4658 Merge pull request #401 from dicej/master
align stack size for vmNativeCall to 16 on ARM
2015-01-21 14:51:32 -07:00
Joel Dice
bbd4c58f91 align stack size for vmNativeCall to 16 on ARM
The ARM64 ABI(s) require this, and it doesn't hurt to do it on 32-bit
ARM as well.
2015-01-21 14:10:25 -07:00
Joshua Warner
bd22daccff Merge pull request #400 from dicej/master
use unconditional branch to stack overflow thunk on ARM64
2015-01-21 08:28:42 -07:00
Joel Dice
df0085ada5 use unconditional branch to stack overflow thunk on ARM64
On ARM64, conditional branches to immediate offsets can span no more
than 2^19 instructions.  In the case of the stack overflow check,
which wants to do a conditional branch from every non-leaf method to a
handler, this can be a problem, especially when compiled code grows
large as with a bootimage=true build against the OpenJDK class
library.  Therefore, we use an unconditional branch to reach the
handler on this platform.
2015-01-20 16:54:29 -07:00
Joel Dice
6b12c87e52 Merge pull request #399 from bigfatbrowncat/avian-pack
Added okhttp and Bouncy Castle libraries back #2
2015-01-19 10:05:42 -07:00
Ilya Mizus
aeb87ffd12 Instructions for Building with Android classpath 2015-01-17 18:54:24 +03:00
Ilya Mizus
89ab73c7e2 Merge branch 'master' of https://github.com/ReadyTalk/avian into avian-pack 2015-01-17 18:34:21 +03:00
Joshua Warner
5a87455e64 Merge pull request #397 from dicej/master
fix broken interpreter build due to out-of-order class initialization
2015-01-15 18:19:44 -07:00
Joel Dice
8ee7e8124a fix broken interpreter build due to out-of-order class initialization
When we initialize the vtables for bootstrap Java classes such as
java.lang.NullPointerException (i.e. classes which the VM has built-in
knowledge of), we assign the superclass's vtable to any class which
has no declared virtual methods of its own.  However, that vtable will
be null if we haven't initialized the superclass yet.  Therefore, we
must order this process such that no class is initialized until after
all its superclasses.
2015-01-15 17:13:46 -07:00
Joshua Warner
5f59529286 Merge pull request #394 from dicej/master
fix method interception bug
2015-01-12 10:33:11 -07:00
Joel Dice
4509e29abb fix method interception bug
When we intercept a method (i.e. when the VM wants to run its own code
instead of whatever the classpath provides for that method), we make a
clone of the original method so we can later call it from the
intercepting code if appropriate.  We also set the ACC_NATIVE flag on
the original method to ensure that our intercepting code is always
used in preference to the classpath version.  However, we need to set
that flag *after* we make the clone, or else the clone will also have
the ACC_NATIVE flag set, which is not what we want.

We never noticed this before because classpath versions of all the
methods we intercept as of Java 7 are either native or are never
called from their VM-specified replacements.  However, some of those
native methods are non-native in later versions of Java, so the bug
has become apparent.
2015-01-12 09:54:11 -07:00
Joshua Warner
f6e7a29f09 Merge pull request #392 from lostdj/patch-10
classpath-openjdk: Fix freeZipFileEntry()
2015-01-11 13:05:32 -07:00
Timofey Lagutin
da01d20c19 classpath-openjdk: Fix freeZipFileEntry()
Those ZipFile::Entries are part of ZipFile instance itself and will fail to free(). See :1504 and :1520 in openZipFile().
2015-01-11 22:49:15 +03:00
Joshua Warner
5186f1486a Merge pull request #390 from lostdj/patch-9
classpath-openjdk: Fix getZipFileEntry()
2015-01-11 12:08:06 -07:00
Timofey Lagutin
97734af72d classpath-openjdk: Fix getZipFileEntry()
'addSlash' argument was incorrectly understood: it is supposed to add slash only on retry (see ZIP_GetEntry2() zip_util.c in OpenJDK).
2015-01-11 21:44:41 +03:00
Seth Goings
394c5cacce Adjust publish logic to adhere to Travis spec
See the specifics here: http://docs.travis-ci.com/user/ci-environment/#Environment-variables
2015-01-10 16:53:52 -07:00
Joshua Warner
610f3a62ae Merge pull request #389 from ReadyTalk/mac-publishing
Add mac publishing + testing
2015-01-06 11:39:38 -07:00
Seth Goings
bf23f58aae Exclude osx test runs for now (only publish) 2015-01-06 09:58:48 -07:00
Seth Goings
eafec7e850 Add mac publishing + testing
- Move apt calls to ci script
2015-01-05 12:01:56 -07:00
Seth Goings
83f40a832a Merge pull request #386 from ReadyTalk/travis-publishing
Add artifact publishing to oss.jfrog.org with TravisCI
2015-01-05 10:50:16 -07:00
Seth Goings
d62d0aa916 Make sure not to publish if we are a pull request too... 2015-01-02 17:33:13 -07:00
Seth Goings
ab83e852ff Remove Travis CI matrix for now (best utilized when/if we have other platforms/arches) 2015-01-02 16:52:15 -07:00
Seth Goings
022efafbcc Only publish to oss.jfrog.org if TRAVIS_BRANCH is master 2015-01-02 16:48:43 -07:00
Seth Goings
7e5bcbea07 Add matrix build for all tests 2015-01-02 16:38:43 -07:00
Seth Goings
f717d87e8c Add better publishing intended for Travis + establish packages for windows/linux builds 2015-01-02 16:37:22 -07:00
Joshua Warner
fa0c62c4ff Merge pull request #385 from dicej/master
update README.md to indicate ARM64 support
2015-01-01 12:25:38 -07:00
Joel Dice
7df56328d9 update README.md to indicate ARM64 support 2014-12-31 10:22:35 -07:00
Joshua Warner
38d2146d6f Merge pull request #384 from dicej/master
fix iOS ARM64 build
2014-12-30 19:42:28 -07:00
Joel Dice
80ce92a999 fix iOS ARM64 build 2014-12-30 17:03:58 -07:00
Joshua Warner
7b1bdf127e Merge pull request #383 from dicej/master
add ARM64 JIT support
2014-12-30 15:56:26 -07:00
Joel Dice
c9026a6053 add continuations support for ARM64
Also, replace some preprocessor conditionals with C++ conditionals and
add some todo comments and sample code for future work towards better
ABI compatibility in the JIT compiled code.
2014-12-30 15:31:52 -07:00
Joel Dice
e3ea60fc31 fix ARM64 tails=true build 2014-12-30 09:37:26 -07:00
Joel Dice
76bfcaa8c0 fix ARM64 bootimage=true build
This fixes a problem with atomically updating JIT-compiled static
calls to AOT-compiled code.  It turns out there was also a problem
with the 32-bit ARM code as well, but we never hit it because it is
extremely unlikely that a code address can be loaded with a single
immediate load instruction on 32-bit ARM since it can only handle
numbers with 8 significant bits.  I've fixed that as well.
2014-12-29 18:17:24 -07:00
Joel Dice
8c277e2af8 conditionally compile ARM operations based on TARGET_BYTES_PER_WORD
This fixes the codegen-targets=all build regression.
2014-12-29 14:47:31 -07:00
Joel Dice
d8b32f2c67 update CMakeLists.txt to fix CMake build 2014-12-29 12:25:56 -07:00
Joel Dice
ea0a108cd2 add todo comment regarding integer division 2014-12-29 12:16:55 -07:00
Joel Dice
cdcf173601 format recent changes using clang-format 2014-12-29 12:09:53 -07:00
Joel Dice
e3f50e6d67 fix ARM64 OffsetPromise::value
I must have done a search-and-replace from 4 to TargetBytesPerWord
earlier, but in this case it should have been the instruction size
(4), not the word size.
2014-12-29 11:07:26 -07:00
Joel Dice
98a1fefefc fix offset encoding for strhi instruction 2014-12-29 10:02:30 -07:00
Joel Dice
d37cb93d50 remove redundant class qualifiers from Classes.java 2014-12-29 10:00:51 -07:00
Joel Dice
3e2545e5a7 more ARM64 bugfixes 2014-12-29 08:02:37 -07:00
Joel Dice
67f5461d82 more ARM64 bugfixes 2014-12-24 10:05:20 -07:00
Joel Dice
85fcbb82b3 more ARM64 bugfixes 2014-12-24 08:12:36 -07:00
Joel Dice
78735b35a8 more ARM64 bugfixes, more passing tests 2014-12-23 21:09:43 -07:00
Joel Dice
cbea966d1d various ARM64 JIT bugfixes
Three of the tests now pass.  Yay!
2014-12-23 16:59:04 -07:00
Joel Dice
9158ee39c0 remove 64-bit code from compile-arm.S since it's moved to compile-arm64.S 2014-12-23 16:57:40 -07:00