[master] RFR: Load Klass* from header in interpreter (x86) [v5]
Roman Kennke
rkennke at openjdk.java.net
Wed Oct 6 16:48:11 UTC 2021
> This implements loading the compressed Klass* from the object header, instead of the Klass* field in the x86 interpreter. It does the fast-path (unlocked object) in assembly, and calls into the runtime to deal with locked objects.
>
> This is a proof-of-concept. It is not entirely clear if we can even call into runtime from a couple of places where load_klass() is called, especially in C2, C1 and some stubs. OTOH, we may end up not having to do any of this if we come up with a way to avoid displaced headers altogether.
>
> Testing:
> - [x] tier1 (x86_32,x86_64)
> - [x] tier2 (x86_32,x86_64)
> - [x] hotspot_gc (x86_32,x86_64)
Roman Kennke has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
- Merge branch 'master' into klass-from-header-interpreter
- Emit null-checks before load_klass with correct offset
- Use constant instead of literal in xor-test-sequence
- Update comment about xorb/xorq encoding
- Load Klass* from header in interpreter (x86)
-------------
Changes:
- all: https://git.openjdk.java.net/lilliput/pull/15/files
- new: https://git.openjdk.java.net/lilliput/pull/15/files/dc73c694..cbe93827
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=lilliput&pr=15&range=04
- incr: https://webrevs.openjdk.java.net/?repo=lilliput&pr=15&range=03-04
Stats: 31915 lines in 917 files changed: 22686 ins; 4497 del; 4732 mod
Patch: https://git.openjdk.java.net/lilliput/pull/15.diff
Fetch: git fetch https://git.openjdk.java.net/lilliput pull/15/head:pull/15
PR: https://git.openjdk.java.net/lilliput/pull/15
More information about the lilliput-dev
mailing list