[master] RFR: 8303813: [Lilliput] (AArch64) Use tbz instead of tst and br in load_klass()

Roman Kennke rkennke at openjdk.org
Wed Mar 8 09:49:41 UTC 2023


In the implementation of load_klass(), we have a test-and-branch idiom:


tst(dst, markWord::monitor_value);
br(Assembler::EQ, fast);


We can make this better:

`tbz(dst, exact_log2(markWord::monitor_value), fast);
`
This is not only smaller and perhaps a little faster, it also has the advantage that it doesn't touch the condition flags. This is relevant in at least one place: in verify_oop() the condition flag is alive across the load_klass() call and one jtreg test (runtime/CheckUnhandledOops/TestVerifyOops.java) is failing because of that.

Testing:
 - [x] tier1

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

Commit messages:
 - 8303813: [Lilliput] (AArch64) Use tbz instead of tst and br in load_klass()

Changes: https://git.openjdk.org/lilliput/pull/78/files
 Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=78&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8303813
  Stats: 2 lines in 1 file changed: 0 ins; 1 del; 1 mod
  Patch: https://git.openjdk.org/lilliput/pull/78.diff
  Fetch: git fetch https://git.openjdk.org/lilliput pull/78/head:pull/78

PR: https://git.openjdk.org/lilliput/pull/78


More information about the lilliput-dev mailing list