RFR: 8263676: AArch64: one potential bug in C1 LIRGenerator::generate_address()

Nick Gasson ngasson at openjdk.java.net
Wed Mar 17 07:18:09 UTC 2021


On Wed, 17 Mar 2021 01:34:56 GMT, Fei Yang <fyang at openjdk.org> wrote:

> Noticed this issue when I am trying to backport: https://bugs.openjdk.java.net/browse/JDK-8263425
> 
> Around line 180 we have:
> 
>          __ add(index, LIR_OprFact::intptrConst(large_disp), tmp);
>          index = tmp;
>        } else {
>          __ move(tmp, LIR_OprFact::intptrConst(large_disp));      <========
>          __ add(tmp, index, tmp);
>          index = tmp;
>        }
> 
> This is supposed to be calculating "tmp = large_disp" but it actually does "large_disp = tmp".
> Looks like this is missed by JDK-8263425.
> Tested tier1  with -XX:TieredStopAtLevel=1 on AArch64 Linux.

Yes I missed that one. I guess neither of those branches get executed normally.

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

PR: https://git.openjdk.java.net/jdk/pull/3040


More information about the hotspot-compiler-dev mailing list