[lilliput-jdk21u:lilliput] RFR: 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust [v3]

Roman Kennke rkennke at openjdk.org
Thu Oct 12 09:21:50 UTC 2023


> Clean backport of https://github.com/openjdk/lilliput/pull/111.
> Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead.
> Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds.
> 
> - [x] specjvm derby (which triggered the bug)
> - [x] tier1 x86_64 +UCOH
> - [x] tier1 aarch64 +UCOH

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

  Accept indexed address

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

Changes:
  - all: https://git.openjdk.org/lilliput-jdk21u/pull/10/files
  - new: https://git.openjdk.org/lilliput-jdk21u/pull/10/files/e4e9cf86..55cb3d2f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=lilliput-jdk21u&pr=10&range=02
 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk21u&pr=10&range=01-02

  Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/lilliput-jdk21u/pull/10.diff
  Fetch: git fetch https://git.openjdk.org/lilliput-jdk21u.git pull/10/head:pull/10

PR: https://git.openjdk.org/lilliput-jdk21u/pull/10


More information about the lilliput-dev mailing list