[lworld] RFR: 8265184: [lworld] [AArch64] Broken fast class init barrier for static calls in c2i adapter
ngasson at openjdk.java.net
Thu Apr 15 05:04:47 UTC 2021
On Wed, 14 Apr 2021 11:57:24 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> The tier1 test runtime/clinit/ClassInitBarrier.java fails on the lworld
>> branch on AArch64. The particular case that fails is calling a static
>> native method `A.staticN()` which should block in the c2i adapter until
>> class A's initialisation is complete but doesn't.
>> The check for a static method is backwards: the class initialisation
>> barrier code is executed when the method is *not* static (ANDS will set
>> the EQ flag if the result is zero). I'm not sure why it's like this but
>> fast class initialisation for AArch64 was added after the original
>> lworld port which also touches generate_i2c2i_adapters so maybe
>> something got messed up in the merge.
>> Fix by making the code the same as mainline.
> Looks good to me! I think the fix for [JDK-8230962](https://bugs.openjdk.java.net/browse/JDK-8230962) broke this.
Thanks for the review @TobiHartmann . Would you mind sponsoring this one and #376 ?
More information about the valhalla-dev