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