RFR: AArch64: JDK-8232046: AArch64 build failure after JDK-8225681 (original) (raw)

Andrew Dinn adinn at redhat.com
Fri Oct 11 12:51:33 UTC 2019


Hi Erik,

On 11/10/2019 13:04, erik.osterlund at oracle.com wrote:

Looks good to me. I feel like something is weird about the 0 is logically -1 mapping (shouldn't it have populated the generic jump with -1 in the first place instead?), but that weirdness should not hold back this fix. Ship it.

Perhaps. Although -1 is not used anywhere else in the AArch64 code -- all other sites use a self-reference (jump target address == address of jump) from the get-go as well as after a reset. They then lie consistently about that to keep the generic code happy. I am not sure there is any good reason to use that in place of -1 but I always default to the assumption that Andrew Hayley had a reason for breaking with protocol.

So, I'd really have preferred to have used a self-reference as the initial value in this case too. Indeed, I tried that but it failed to relocate when the nmethod was installed. When debugging that failure I spotted a cryptic breadcrumb comment left by Andrew Haley about relocs not doing the right thing when the generate buffer was copied. So, I decided to leave well alone at that point.

This may only be an artefact of Andrew Haley not understanding relocs fully when he first wrote the code. When he is back I'll talk to him and see if we can correct this to use a self-reference or event switching all jumps to use -1 a an empty marker. Even if we can only manage consistent lying about the -1 that would be an improvement.

Anyway, thanks very much for the review. As this is AArhc64 only I'll push on that basis asap.

regards,

Andrew Dinn



More information about the jdk-dev mailing list