[master] RFR: Load narrowKlass from header, AArch64 assembler implementation
Roman Kennke
rkennke at openjdk.java.net
Thu Jan 27 11:56:16 UTC 2022
This implements MacroAssembler::load_klass() to load the (narrow)Klass* from object header. Just like the x86_64 implementation, it checks whether it can take the fast path (object unlocked -> load from upper 32bits of header), or else calls the runtime to get a stable header and load from that.
It adds a runtime call stub, which will also be used in the C2 implementation. It also adds nklass_offset_in_bytes() which will also be used in C2 impl. The part in generate_verify_oop() is a little nasty, I added a comment that explains what's going on.
Testing:
- [x] tier1 (aarch64)
- [x] tier2 (aarch64)
- [x] tier3 (aarch64)
-------------
Commit messages:
- Add comment
- Trim code size estimate
- Merge branch 'master' into load-nklass-interpreter-aarch64
- Use stub to call load_nklass_runtime()
- Decode klass in shared path
- Merge branch 'nklass-runtime' into load-nklass-interpreter-aarch64
- Fix x86_32
- x86 parts
- Load narrowKlass from runtime, decode in generated code
- Increase code size limit
- ... and 1 more: https://git.openjdk.java.net/lilliput/compare/8ef4bbda...5b5e79b1
Changes: https://git.openjdk.java.net/lilliput/pull/36/files
Webrev: https://webrevs.openjdk.java.net/?repo=lilliput&pr=36&range=00
Stats: 98 lines in 6 files changed: 89 ins; 0 del; 9 mod
Patch: https://git.openjdk.java.net/lilliput/pull/36.diff
Fetch: git fetch https://git.openjdk.java.net/lilliput pull/36/head:pull/36
PR: https://git.openjdk.java.net/lilliput/pull/36
More information about the lilliput-dev
mailing list