RFR: 8297417: Poly1305IntrinsicFuzzTest fails with tag mismatch exception [v2]

Vladimir Ivanov vlivanov at openjdk.org
Wed Nov 23 22:35:18 UTC 2022


On Wed, 23 Nov 2022 20:01:37 GMT, Volodymyr Paprotski <duke 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])
>
> Volodymyr Paprotski has updated the pull request incrementally with one additional commit since the last revision:
> 
>   remove rscratch from top regmap and ForceUnreachable test

src/hotspot/cpu/x86/stubGenerator_x86_64_poly.cpp line 562:

> 560:   const Register t1 = r14;
> 561:   const Register t2 = r15;
> 562:   const Register rscratch = r13;

After seeing the whole patch, I noticed that `t1` is used only at the very end of the stub. 

Alternatively, you could keep `rscratch` and move `t1` declaration close to the use sites.

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

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


More information about the hotspot-compiler-dev mailing list