RFR: 8282664: Unroll by hand StringUTF16 and StringLatin1 polynomial hash loops [v12]

Claes Redestad redestad at openjdk.org
Fri Nov 11 12:43:12 UTC 2022


On Mon, 31 Oct 2022 12:25:43 GMT, Claes Redestad <redestad at openjdk.org> wrote:

>> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 3484:
>> 
>>> 3482:   decrementl(index);
>>> 3483:   jmpb(LONG_SCALAR_LOOP_BEGIN);
>>> 3484:   bind(LONG_SCALAR_LOOP_END);
>> 
>> You can share this loop with the scalar ones above.
>
> This might be messier than it first looks, since the two different loops use different temp registers based (long scalar can scratch cnt1, short scalar scratches the coef register). I'll have to think about this for a bit.

As it happens in the latest version the vector loop drops into the scalar loop after all 32-element chunks has been processed.

-------------

PR: https://git.openjdk.org/jdk/pull/10847


More information about the hotspot-dev mailing list