JDK-8073093 : AARCH64: C2 generates poor code for ByteBuffer accesses
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2015-02-12
  • Updated: 2015-12-16
  • Resolved: 2015-12-16
Related Reports
Relates :  
Relates :  
Description
java.���nio.���DirectByteBuffer.getXXX is slow for types larger than byte because the runtime does not know that AArch64 can perform unaligned memory accesses.

The problem is due to this code in java.nio.Bits.unaligned():

        unaligned = arch.equals("i386") || arch.equals("x86")
            || arch.equals("amd64") || arch.equals("x86_64");

If we add AArch64 to this list code quality is very much improved.

It would be better if OpenJDK had one global file where the properties of the target system could be set rather than scattered in this way.