[master] RFR: Load narrowKlass from runtime, decode in generated code

Roman Kennke rkennke at openjdk.java.net
Tue Jan 25 17:57:29 UTC 2022


Current implementation of load_klass_runtime() call ensures stable header, loads the narrowKlass from it, decodes it, and returns the Klass* back to generated (interpreter, C1) code. However, C2 wants to load the narrowKlass and use it directly. Let's change current impl to not decode in runtime, but decode in generated code instead, and thus avoid a new entry points for  C2. This doesn't even make generated code larger -- we only need to move the decode_klass() into the common (fast & slow) path.

The change also contains some exlusions for 32bit builds - narrow_klass() doesn't make sense (and doesn't compile) on x86_32, and thus shouldn't be compiled.

Testing:
 - [x] tier1 (x86_64, aarch64)
 - [x] tier2 (x86_64, aarch64)
 - [x] tier2 (x86_64, aarch64)

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

Commit messages:
 - Fix x86_32
 - x86 parts
 - Load narrowKlass from runtime, decode in generated code

Changes: https://git.openjdk.java.net/lilliput/pull/35/files
 Webrev: https://webrevs.openjdk.java.net/?repo=lilliput&pr=35&range=00
  Stats: 29 lines in 9 files changed: 20 ins; 3 del; 6 mod
  Patch: https://git.openjdk.java.net/lilliput/pull/35.diff
  Fetch: git fetch https://git.openjdk.java.net/lilliput pull/35/head:pull/35

PR: https://git.openjdk.java.net/lilliput/pull/35


More information about the lilliput-dev mailing list