RFR: 8288971: AArch64: Clean up stack and register handling in interpreter

Andrew Dinn adinn at openjdk.org
Wed Jun 29 15:46:49 UTC 2022


On Wed, 29 Jun 2022 11:23:54 GMT, Nick Gasson <ngasson at openjdk.org> wrote:

>> There are several places in the interpreter that could be improved.
>> 
>> 1. We use r13 to pass the caller's SP to a callee through adapters. r13 is not a callee-saved register in the native ABI, so this causes some complications. Use a callee-saved register.
>> 2. We frequently recalculate the location where the native SP needs to go. We have a spare slot in the interpreter frame, so we should calculate it once, when the frame is created, and use it.
>> 3. Related to 1, we should clearly label all the places where the caller's SP is passed to a callee.
>
> src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp line 1430:
> 
>> 1428: 
>> 1429:   // Restore SP (drop native parameters area), to keep SP in sync with extended_sp in frame
>> 1430:   // __ restore_sp_after_call();
> 
> This seems to happen further down, around line 1530, but it's interleaved with popping the frame. Is there a reason to have the commented out call here?

Ah, Nick got here before me. I also assume this needs to go.

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

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


More information about the hotspot-dev mailing list