RFR: 8288047: Accelerate Poly1305 on x86_64 using AVX512 instructions [v7]

Volodymyr Paprotski duke at openjdk.org
Fri Nov 4 17:29:48 UTC 2022


On Fri, 4 Nov 2022 16:28:51 GMT, Jamil Nimeh <jnimeh at openjdk.org> wrote:

>> Volodymyr Paprotski has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits:
>> 
>>  - Merge remote-tracking branch 'origin/master' into avx512-poly
>>  - address Jamil's review
>>  - invalidkeyexception and some review comments
>>  - extra whitespace character
>>  - assembler checks and test case fixes
>>  - Merge remote-tracking branch 'origin/master' into avx512-poly
>>  - Merge remote-tracking branch 'origin' into avx512-poly
>>  - further restrict UsePolyIntrinsics with supports_avx512vlbw
>>  - missed white-space fix
>>  - - Fix whitespace and copyright statements
>>    - Add benchmark
>>  - ... and 2 more: https://git.openjdk.org/jdk/compare/9d3b4ef2...38d9e83c
>
> src/hotspot/share/opto/library_call.cpp line 7036:
> 
>> 7034:   assert(r_start, "r array is NULL");
>> 7035: 
>> 7036:   Node* call = make_runtime_call(RC_LEAF,
> 
> Can we safely change this to `RC_LEAF | RC_NO_FP`?  For the ChaCha20 block intrinsic I'm working on I've been using that parameter because I'm not touching the FP registers and that looks to be the case here (though your intrinsic is a lot more complicated than mine so I may have missed something).  I believe the GHASH and AES library call routines also call `make_runtime_call()` in this way.

Makes sense to me, will put it in and re-test (no fp registers anywhere in the intrinsic). Thanks!

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

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


More information about the security-dev mailing list