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

Kim Barrett kbarrett at openjdk.org
Thu Jan 12 02:09:23 UTC 2023


On Thu, 12 Jan 2023 02:01:38 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

>>> ```
>>> bool uses(Register reg) const {
>>>   return _mode != literal && (base() == reg || index == reg);
>>> }
>>> ```
>> 
>> Mmm, but that's fragile under change too, e.g. if we get another literal type. I guess you can argue that's never likely to happen, but I don't think it's appropriate to choose a less robust solution now.
>
> If a new literal type were to show up, there are many places that would need to be examined and probably
> updated, including here because of the explicit dispatch on all modes.  So I don't think what I'm suggesting
> is any less robust than the current dispatch.  (Note that any change here should be for 21 - my suggested
> change doesn't make the cut for 20 at this point.)

Also, different literal types are encoded in the reloc (flattened into a RelocationHolder), so a different literal mode
doesn't seem very likely to appear.

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

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


More information about the hotspot-compiler-dev mailing list