RFR: 8289743: AArch64: Clean up patching logic [v13]

Andrew Haley aph at openjdk.org
Fri Jul 22 08:12:04 UTC 2022


On Thu, 21 Jul 2022 20:16:11 GMT, Dean Long <dlong at openjdk.org> wrote:

> > offset = offset << (64-21) >> (64-21);
> 
> My guess is that ADRP is being used for a target address that is too far away. The added line above fixes up the high bits so that the assert in spatch() won't fire, hiding the problem:
> 
> > 239      guarantee (chk == -1 || chk == 0, "Field too big for insn");

I've reproduced the problem and I'm now looking at the cleanest way to fix it.

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

PR: https://git.openjdk.org/jdk/pull/9398


More information about the hotspot-dev mailing list