Unsafe.{get,put}-X-Unaligned; Efficient array comparison intrinsics

Paul Sandoz paul.sandoz at oracle.com
Wed Feb 25 12:34:04 UTC 2015


On Feb 25, 2015, at 12:47 PM, Andrew Haley <aph at redhat.com> wrote:

> On 02/25/2015 11:26 AM, Paul Sandoz wrote:
> 
>> I think it simpler just to have one method with a boolean parameter
>> whose default false value means native and true means
>> BigEndian. Otherwise, even simpler, just support native only (like
>> the existing access impls) and let the caller reverse as/when
>> required.
> 
> There have to be different big- and little-endian versions of the
> get/put methods because of the different way that subwords are merged.
> See hotspot/src/cpu/ppc/vm/bytes_ppc.hpp, with its two versions of
> these methods.  

Ah, i just looked at the x86 and sparc versions.


> So we're going to need big and little versions for
> hardware with no unaligned access.  Any given machine will only use
> one set of these methods.
> 

I am a little confused about the bi-endianess of PPC. The supported endianess in bytes_ppc.hpp is defined at compile time via the flag VM_LITTLE_ENDIAN. So is "native" whatever hotspot is compiled to in this case?
  
Paul.



More information about the core-libs-dev mailing list