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

Volodymyr Paprotski duke at openjdk.org
Wed Nov 9 21:49:09 UTC 2022


On Wed, 9 Nov 2022 00:23:21 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> Volodymyr Paprotski has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   fix 32-bit build
>
> src/hotspot/cpu/x86/macroAssembler_x86.hpp line 970:
> 
>> 968: 
>> 969:   void addmq(int disp, Register r1, Register r2);
>> 970: 
> 
> Leftover formatting changes.

done

> src/hotspot/cpu/x86/stubGenerator_x86_64_poly.cpp line 95:
> 
>> 93: 
>> 94:   // OFFSET 64: mask_44
>> 95:   0xfffffffffff, 0xfffffffffff,
> 
> Please, keep leading zeroes explicit in the constants.

done. Also split things up and added ExternalAddress version of instructions.

> src/hotspot/cpu/x86/stubRoutines_x86.cpp line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved.
> 
> No changes in the file anymore.

done

> src/hotspot/share/opto/library_call.cpp line 7014:
> 
>> 7012:   const TypeKlassPtr* rklass = TypeKlassPtr::make(instklass_ImmutableElement);
>> 7013:   const TypeOopPtr* rtype = rklass->as_instance_type()->cast_to_ptr_type(TypePtr::NotNull);
>> 7014:   Node* rObj = new CheckCastPPNode(control(), rFace, rtype);
> 
> FTR it's an unsafe cast since it  doesn't involve a runtime check from `IntegerModuloP` to `ImmutableElement`. Please, lift as much checks into Java wrapper as possible.

@iwanowww Please have a look, just pushed a different way to fetch the limbs.

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

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


More information about the hotspot-compiler-dev mailing list