[master] RFR: Load narrowKlass from header, AArch64 assembler implementation [v6]

Roman Kennke rkennke at openjdk.java.net
Mon Jan 31 12:59:12 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)

Roman Kennke has updated the pull request incrementally with one additional commit since the last revision:

  Cleanups and document load_klass(), preserve rscratch1 and rscratch2 in runtime call stub

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

Changes:
  - all: https://git.openjdk.java.net/lilliput/pull/36/files
  - new: https://git.openjdk.java.net/lilliput/pull/36/files/47b7ce8c..a43c0c85

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=lilliput&pr=36&range=05
 - incr: https://webrevs.openjdk.java.net/?repo=lilliput&pr=36&range=04-05

  Stats: 9 lines in 2 files changed: 5 ins; 4 del; 0 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