[master] RFR: 8300573: [Lilliput] Properly set ZF on anon-check path; avoid some conditional branches
Roman Kennke
rkennke at openjdk.org
Wed Jan 18 17:17:59 UTC 2023
In AArch64's fast_unlock(), we need to check if the monitor owner is ANONYMOUS (only with Lilliput/fast-locking), and if so, call the runtime to fix this before exiting the monitor. I tried to be smart and used tbnz there, but it turns out that tbnz does *not* set the zero flag, but we do need the ZF set correctly on exit of fast_unlock, so that C2 generated code would actually call the slow path. Therefore we need to use the longer tst/br instructions instead.
The change also removes some conditional branches.
All of the changes have already been integrated into the upstream proposed PR: https://github.com/openjdk/jdk/pull/10907/
Testing:
- [x] tier1
- [x] tier2
-------------
Commit messages:
- 8300573: [Lilliput] Properly set ZF on anon-check path; avoid some conditional branches
Changes: https://git.openjdk.org/lilliput/pull/63/files
Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=63&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8300573
Stats: 19 lines in 1 file changed: 12 ins; 2 del; 5 mod
Patch: https://git.openjdk.org/lilliput/pull/63.diff
Fetch: git fetch https://git.openjdk.org/lilliput pull/63/head:pull/63
PR: https://git.openjdk.org/lilliput/pull/63
More information about the lilliput-dev
mailing list