[lilliput-jdk21u:lilliput] Integrated: 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust
Roman Kennke
rkennke at openjdk.org
Thu Oct 12 14:29:13 UTC 2023
On Wed, 11 Oct 2023 13:15:38 GMT, Roman Kennke <rkennke at openjdk.org> wrote:
> 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
This pull request has now been integrated.
Changeset: 6954ee33
Author: Roman Kennke <rkennke at openjdk.org>
URL: https://git.openjdk.org/lilliput-jdk21u/commit/6954ee334950f6173d33dd4c99b0a7d010492056
Stats: 38 lines in 6 files changed: 25 ins; 2 del; 11 mod
8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust
Reviewed-by: shade
-------------
PR: https://git.openjdk.org/lilliput-jdk21u/pull/10
More information about the lilliput-dev
mailing list