[lworld] RFR: 8265184: [lworld] [AArch64] Broken fast class init barrier for static calls in c2i adapter
Nick Gasson
ngasson at openjdk.java.net
Wed Apr 14 08:49:29 UTC 2021
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.
-------------
Commit messages:
- 8265184: [lworld] [AArch64] Broken fast class init barrier for static calls in c2i adapter
Changes: https://git.openjdk.java.net/valhalla/pull/384/files
Webrev: https://webrevs.openjdk.java.net/?repo=valhalla&pr=384&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8265184
Stats: 12 lines in 1 file changed: 1 ins; 5 del; 6 mod
Patch: https://git.openjdk.java.net/valhalla/pull/384.diff
Fetch: git fetch https://git.openjdk.java.net/valhalla pull/384/head:pull/384
PR: https://git.openjdk.java.net/valhalla/pull/384
More information about the valhalla-dev
mailing list