RFR: 8335662: [AArch64] C1: guarantee(val < (1ULL << nbits)) failed: Field too big for insn
Tobias Hartmann
thartmann at openjdk.org
Tue Oct 15 12:33:11 UTC 2024
On Fri, 11 Oct 2024 16:51:16 GMT, Chad Rakoczy <duke at openjdk.org> wrote:
> [JDK-8335662](https://bugs.openjdk.org/browse/JDK-8335662)
>
> Crash occurs in C1 during OSR when copying locks from interpreter frame to compiled frame. All loads used immediate offset regardless of offset size causing crash when it is over the max size for the instruction (32760). Fix is to check the size before preforming the load and storing the offset in a register if needed.
>
> I believe the risk is low because there will be no change to the instruction if the immediate offset fits in the load instruction. The instruction is only updated when the `offset_ok_for_immed` check fails which would cause the crash anyways
>
> Confirmed that added test fails before patch and passes after
The class file is from the original bug report, it should be converted to a jasm file.
test/hotspot/jtreg/compiler/c1/Test8335662.java line 27:
> 25: * @test
> 26: * @bug 8335662
> 27: * @summary Execute main() method
Please use a more descriptive summary of the test.
test/hotspot/jtreg/compiler/c1/Test8335662.java line 35:
> 33: import java.lang.reflect.Method;
> 34:
> 35: public class Test8335662 {
We don't use bug numbers for test names (anymore).
-------------
Changes requested by thartmann (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/21473#pullrequestreview-2369186037
PR Review Comment: https://git.openjdk.org/jdk/pull/21473#discussion_r1801070515
PR Review Comment: https://git.openjdk.org/jdk/pull/21473#discussion_r1801073113
More information about the hotspot-compiler-dev
mailing list