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

Paul Sandoz paul.sandoz at oracle.com
Wed Mar 4 15:51:03 UTC 2015


On Mar 4, 2015, at 4:35 PM, Andrew Haley <aph at redhat.com> wrote:

> On 03/04/2015 03:07 PM, Paul Sandoz wrote:
> 
>> If so then presumably that would be applicable to both get* and
>> set*?
> 
> I think so.
> 
>> Could those boolean accepting methods be intrinsified or would they
>> always be Java only?
> 
> Sure, but I've been wondering if it's necessary.  

In that case maybe they don't carry their weight. Some (i am presuming static ) helper methods as you suggest in your previous email seem reasonable in that context.


> Suppose we had some
> hypothetical machine which is natively little-endian and has big- and
> little-endian unaligned stores.  We could match a big-endian store
> with something like
> 
> instruct bigEndianStoreL(iRegL src, memory mem)
> %{
>  match(Set mem (StoreL mem (ReverseBytesI src)));
>  format %{ "str.be  $src, $mem\t" %}
> 
> so maybe there aren't any architectures where we'd gain any advantage
> from intrinsifying such loads and stores?
> 

Yeah, it seems hypothetical to me, but i lack knowledge in this area.

Paul.



More information about the core-libs-dev mailing list