RFR 8153310: AArch64: JEP 254: Implement byte_array_inflate and char_array_compress

Andrew Haley aph at redhat.com
Tue Apr 5 08:44:50 UTC 2016


On 04/04/16 18:20, Edward Nevill wrote:

> On Fri, 2016-04-01 at 18:30 +0100, Andrew Haley wrote:
>> We need this for CompactStrings.
>>
>> http://cr.openjdk.java.net/~aph/8153310/
> 
> Looks fine to me. A few minor points.
> 
> +  // Short string: less than 8 bytes.
> +  {
> +    Label loop, around, tiny;
> 
> Label 'aound' is declared and bound, but never used.

OK.

> +  // Unpack the bytes 8 at a time.
> +  bind(big);
> +  andw(len, len, 7);
> +
> +  {
> +    Label loop, around;
> 
> And also here
> 
> +    bind(loop);
> +    ld1(vtmp2, T8B, post(src, 8));
> +    sub(rscratch1, rscratch1, 1);
> +    zip1(vtmp3, T16B, vtmp2, vtmp1);
> +    st1(vtmp3, T8H, post(dst, 16));
> 
> Would it be better to use ldrd and strq rather than ld1 and st1. It
> seems more natural to me and will give better performance.

Better performance?  Why?  I see a latency of 5 cycles.

Andrew.




More information about the hotspot-dev mailing list