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

Aleksey Shipilev shade at openjdk.org
Thu Oct 12 14:23:19 UTC 2023


On Thu, 12 Oct 2023 09:21:50 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
>
> Roman Kennke has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Accept indexed address

Marked as reviewed by shade (Reviewer).

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

PR Review: https://git.openjdk.org/lilliput-jdk21u/pull/10#pullrequestreview-1674089390


More information about the lilliput-dev mailing list