RFR: AARCH64: Changes to HotSpot shared code

Andrew Haley aph at redhat.com
Tue Nov 11 19:02:21 UTC 2014


http://cr.openjdk.java.net/~aph/aarch64-JDK-8064611/hotspot.patch

Everything except cpu/ and os_cpu/.

Most of this is obvious and trivial, with a few exceptions.

In memory/metaspace.cpp, we allocated the memory for metadata in a
different way.  This is because we want to be able to decode and
encode compressed metadata pointers with a single instruction, and we
can always do that iff the base address is of a particular form.

In opto/, we have made some changes in order to be able to use AArch64
store release instructions for volatile field stores.  These don't
require leading or trailing barriers.  We have tried several times to
do this without changing shared code, but it is impossible with the
current back-end interface.

In several places a release store is used where the AArch64 memory
model makes it unnecessary.  From earlier emails on this list we
discovered that the only architecture which requires this release
store is IA64, and OpenJDK does not support it anyway.  We should
perhaps look at re-engineering the way that memory barriers and memory
accesses are handled in HotSpot with a view to pushing all these
architecture-dependent assumptions out to the back ends.

Andrew.


More information about the hotspot-dev mailing list