[jdk20] RFR: 8299733: AArch64: "unexpected literal addressing mode" assertion failure with -XX:+PrintC1Statistics [v2]

Andrew Haley aph at openjdk.org
Sat Jan 7 18:24:00 UTC 2023


On Fri, 6 Jan 2023 17:25:05 GMT, Nick Gasson <ngasson at openjdk.org> wrote:

>> `MacroAssembler::incrementw()` asserts that
>> 
>> 
>> assert(!dst.uses(rscratch1), "invalid dst for address increment");
>> 
>> 
>> But `Address::uses()` can only be called on non-literal addresses.  We could change this assert to check `dst.getMode()` first but it seems cleaner to make `Address::uses()` handle the non-literal case.
>> 
>> This failure is trivial to reproduce with:
>> 
>> 
>> $ java -XX:+PrintC1Statistics -XX:+UseZGC --version
>
> Nick Gasson has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Remove TestPrintC1Statistics from ProblemList-Xcomp

src/hotspot/cpu/aarch64/assembler_aarch64.hpp line 514:

> 512:     default:
> 513:       return base() == reg || index() == reg;
> 514:     }

It'd be more robust if you enumerated all of the possibilities here, and used `ShouldNotReachHere()` on the default case.

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

PR: https://git.openjdk.org/jdk20/pull/87


More information about the hotspot-compiler-dev mailing list