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

Fei Yang fyang at openjdk.org
Tue Jan 10 05:22:03 UTC 2023


On Mon, 9 Jan 2023 14:02:11 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:
> 
>   Enumerate all possible values of _mode

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

> 507:   bool uses(Register reg) const {
> 508:     switch (_mode) {
> 509:     case literal:

Nit: You might want to leave a two-space indentation for each case. I think that's the code style :-)

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

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


More information about the hotspot-compiler-dev mailing list