RFR: 8248188: Add IntrinsicCandidate and API for Base64 decoding [v4]

CoreyAshford github.com+51754783+coreyashford at openjdk.java.net
Mon Oct 12 19:15:16 UTC 2020


On Mon, 12 Oct 2020 12:55:02 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:

>> CoreyAshford has updated the pull request incrementally with two additional commits since the last revision:
>> 
>>  - TestBase64.java: fix comment to correctly reflect actual intrinsic names.
>>    
>>    The intrinsic names that are visible with -XX:+PrintCompilation are encode
>>    and decode, rather than encodeBlock and decodeBlock.
>>  - stubGenerator_ppc.cpp: fix regression caused by change to using loop counter
>>    
>>    My original fix didn't account for the case where sl < block_size.  In the
>>    event sl < block_size, the shifted sl will become zero, so it should
>>    jump to the code that computes how much data was processed - 0 - and return.
>
> src/hotspot/cpu/ppc/stubGenerator_ppc.cpp line 3745:
> 
>> 3743:     __ clrldi(isURL, isURL, 32);
>> 3744:
>> 3745:     // Load constant vec registers that need to be loaded from memory
> 
> With larger unroll factor we run through this code more often without making any progress, because only the Java part
> does all the work for the remaining bytes. Would be nice to move unnecessary parts for that between mtctr and align.

You're right that there's quite a lot of set up before the size check is performed.  I will fix, this and run
regression the regression test.

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

PR: https://git.openjdk.java.net/jdk/pull/293


More information about the core-libs-dev mailing list