RFR: 8268276: Base64 Decoding optimization for x86 using AVX-512 [v3]
Jatin Bhateja
jbhateja at openjdk.java.net
Tue Jun 8 14:17:18 UTC 2021
On Tue, 8 Jun 2021 13:25:00 GMT, Scott Gibbons <github.com+6704669+asgibbons at openjdk.org> wrote:
>> src/hotspot/cpu/x86/stubGenerator_x86_64.cpp line 6239:
>>
>>> 6237:
>>> 6238: __ align(32);
>>> 6239: __ BIND(L_bruteForce);
>>
>> Is this alignment needed ? Given that brute force loop is already aligned.
>
> I must be missing something. How is the brute force loop aligned if not by this directive? I don't see an alignment anywhere else that could force it. After the entry(), there are pushes and length comparisons followed by the conditional on VBMI. The only thing I can guess would be that the jmp aligns, but I see no indication that that occurs.
>
> Perhaps what you missed was that L_forceLoop is aligned (line 6288). This is not the same label as L_bruteForce, which is a jump target from within the VBMI conditional (which should be aligned)? Otherwise, I don't see how L_bruteForce could possibly already be aligned.
Yes, I meant force loop already has alignment so earlier one can be removed.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4368
More information about the hotspot-compiler-dev
mailing list