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

vpaprotsk duke at openjdk.org
Mon Oct 24 22:06:57 UTC 2022


On Tue, 18 Oct 2022 06:26:38 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> vpaprotsk has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains eight commits:
>> 
>>  - 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
>>  - Merge remote-tracking branch 'vpaprotsk/master' into avx512-poly
>>  - Poly1305 AVX512 intrinsic for x86_64
>
> src/hotspot/cpu/x86/assembler_x86.cpp line 5484:
> 
>> 5482: 
>> 5483: void Assembler::evpunpckhqdq(XMMRegister dst, KRegister mask, XMMRegister src1, XMMRegister src2, bool merge, int vector_len) {
>> 5484:   assert(UseAVX > 2, "requires AVX512F");
> 
> Please replace flag with feature EVEX check.

done

> src/hotspot/cpu/x86/assembler_x86.cpp line 7831:
> 
>> 7829: 
>> 7830: void Assembler::vpandq(XMMRegister dst, XMMRegister nds, Address src, int vector_len) {
>> 7831:   assert(VM_Version::supports_evex(), "");
> 
> Assertion should check existence of AVX512VL for non 512 but vectors.

done

> src/hotspot/cpu/x86/assembler_x86.cpp line 7958:
> 
>> 7956: 
>> 7957: void Assembler::vporq(XMMRegister dst, XMMRegister nds, Address src, int vector_len) {
>> 7958:   assert(VM_Version::supports_evex(), "");
> 
> Same as above

done

> src/hotspot/cpu/x86/stubGenerator_x86_64.cpp line 1960:
> 
>> 1958: address StubGenerator::generate_poly1305_masksCP() {
>> 1959:   StubCodeMark mark(this, "StubRoutines", "generate_poly1305_masksCP");
>> 1960:   address start = __ pc();
> 
> You may use [align64](https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp#L777) here, like

done

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

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


More information about the security-dev mailing list