RFR: 8073093: AARCH64: C2 generates poor code for ByteBuffer accesses

Dean Long dean.long at oracle.com
Fri Feb 13 22:52:07 UTC 2015


My understanding is that whether or not aarch64 allows unaligned 
accesses is based on a
system setting, so this change is too simplistic.  I would prefer that 
this was controlled with
something more flexible, like "sun.cpu.unaligned".

dl

On 2/13/2015 5:38 AM, Andrew Haley wrote:
> 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.
>
> http://cr.openjdk.java.net/~aph/8073093/
>
> Thanks,
> Andrew.




More information about the core-libs-dev mailing list