[lworld] Integrated: 8265184: [lworld] [AArch64] Broken fast class init barrier for static calls in c2i adapter

Nick Gasson ngasson at openjdk.java.net
Thu Apr 15 06:31:42 UTC 2021


On Wed, 14 Apr 2021 08:44:34 GMT, Nick Gasson <ngasson 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.

This pull request has now been integrated.

Changeset: 301de8d1
Author:    Nick Gasson <ngasson at openjdk.org>
Committer: Tobias Hartmann <thartmann at openjdk.org>
URL:       https://git.openjdk.java.net/valhalla/commit/301de8d1
Stats:     12 lines in 1 file changed: 1 ins; 5 del; 6 mod

8265184: [lworld] [AArch64] Broken fast class init barrier for static calls in c2i adapter

Reviewed-by: thartmann

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

PR: https://git.openjdk.java.net/valhalla/pull/384



More information about the valhalla-dev mailing list