RFR: 8297417: Poly1305IntrinsicFuzzTest fails with tag mismatch exception

Volodymyr Paprotski duke at openjdk.org
Wed Nov 23 20:05:22 UTC 2022


On Wed, 23 Nov 2022 18:41:18 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> From https://github.com/openjdk/jdk/pull/10582, `t0` gets clobbered if `rscratch` is used. Example, [here](https://github.com/openjdk/jdk/blob/09f70dad2fe3f0691afacded6c38f61fa8a0d28d/src/hotspot/cpu/x86/stubGenerator_x86_64_poly.cpp#L605-L606): 
>> 
>> 
>>   __ mov(t0, a0);
>>   __ andq(t0, ExternalAddress(poly1305_mask44()), rscratch); // First limb (R^4[43:0])
>
> Also, `-XX:+ForceUnreachable` is designed to stress non-rip addressing mode. Worth adding it to the corresponding test.

@iwanowww done

- Confirmed, `-XX:+ForceUnreachable` does indeed catch this on linux; added to half the tests
- Only removed `rscratch` from top-level `poly1305_process_blocks_avx512` function. I think calling it `rscratch` in 'leaf' functions (i.e. `poly1305_multiply8_avx512`) is ok.

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

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


More information about the hotspot-compiler-dev mailing list