RFR: 8256025: AArch64: MachCallRuntimeNode::ret_addr_offset() is incorrect for stub calls

Andrew Haley aph at openjdk.java.net
Tue Nov 10 08:52:54 UTC 2020


On Tue, 10 Nov 2020 03:19:23 GMT, Nick Gasson <ngasson at openjdk.org> wrote:

> The PR for JDK-8254231 introduces a new assertion in opto/output.cpp to
> check the current instruction offset against the offset of the call
> return address reported by ret_addr_offset(). This fails on AArch64
> because MachCallRuntimeNode::ret_addr_offset() claims four instructions
> are generated for a stub call (far branch) but actually it's just
> one (blr to stub or trampoline).
> 
> Tested tier1.

So here's a weird thing: this code has been wrong forever, but apparently it never mattered. I wonder why it didn't break anything before now.

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

Marked as reviewed by aph (Reviewer).

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


More information about the hotspot-compiler-dev mailing list