[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