On Mon, 28 Oct 2024 18:56:25 GMT, Patricio Chilano Mateo 
<pchilanom...@openjdk.org> wrote:

>> Could the problem be solved with a resume adapter instead, like the 
>> interpreter uses?
>
> The issue with the c2 runtime stub on aarch64 (and riscv) is that 
> cb->frame_size() doesn't match the size of the physical frame, it's short by 
> 2 words. I explained the reason for that in the comment above. So for a 
> regular return we don't care about last_Java_sp, rsp will point to the same 
> place as before the call when we return. But when resuming for the preemption 
> case, the rsp will be two words short, since when we freezed the runtime stub 
> we freeze 2 words less (and we have to do that to be able to correctly get 
> the sender when we walk it).
> One way to get rid of this would be to have c2 just set last_Java_pc too 
> along with last_Java_sp, so we don't need to push lr to be able to do 
> last_Java_sp[-1] to make the frame walkable. I guess this was a micro 
> optimization.

> Could the problem be solved with a resume adapter instead, like the 
> interpreter uses?
>
It will just move the task of adjusting the size of the frame somewhere else.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21565#discussion_r1819594475

Reply via email to