8026049: (bf) Intrinsify ByteBuffer.put{Int, Double, Float, ...} methods
Andrew Haley
aph at redhat.com
Mon Mar 16 14:50:01 UTC 2015
Hi,
On 03/16/2015 12:43 PM, Peter Levart wrote:
> On 03/16/2015 01:25 PM, Andrew Haley wrote:
>> We need a flag which defaults to whatever is right for the platform
>> (so it must be set in the back ends) but can be overridden by testing.
>> What we have right now fits that requirement. I can see no way to do
>> what I think you're asking for with the current option machinery. I
>> certainly don't think this should be a product flag.
>
> I think the confusion is caused by UseUnalignedAccesses flag (part of a
> public interface unless it is experimental - the command line options)
> that is used internally to communicate the cpu default to the
> implementation of Unsafe.unalignedAccess() method. What if:
>
> - you define an internal constant SUPPORTS_UNALIGNED_ACCESSES (I don't
> know how to do that correctly) in per-cpu vm_version_cpu.hpp files.
It can not be a constant: on some platforms it's something that you
read from a configuration register. But I can do something like that.
> - rename UseUnalignedAccesses to EmulateUnalignedAccesses (reverse the
> meaning, so that default can be false which must be for experimental
> options)
>
> - implement Unsafe.unalignedAccess() to return:
> SUPPORTS_UNALIGNED_ACCESSES && !EmulateUnalignedAccesses ...
I'm not sure what EmulateUnalignedAccesses means; I guess it must mean
that we don't generate code which does unaligned accesses. But is that
what "emulate unaligned accesses" means to you?
I'm going to go with DisableUnalignedAccesses, because I at least know
what that means. :-)
Thanks,
Andrew.
More information about the core-libs-dev
mailing list