RFR: 8294729: [s390] Implement nmethod entry barriers
Martin Doerr
mdoerr at openjdk.org
Wed Oct 26 20:00:41 UTC 2022
On Wed, 19 Oct 2022 21:41:04 GMT, Tyler Steele <tsteele at openjdk.org> wrote:
>>> Z_ARG1 should point to the address _z_abi16(return_pc) + Z_SP in the caller frame.
>>
>> This matches what the PPC implementation does, but when I do the same thing on s390 I get a cache miss in nmethod_stub_entry_barrier (the vm-call). It looked as though CodeCache::find_blob expects the address of the start of the compiled code, so I tried subtracting the size of the barrier from R14 (which currently points to end of the barrier in the compiled frame). After doing this I no longer saw the CodeCache miss.
>>
>>> I'm missing save_volatile_gprs & restore_volatile_gprs for GP and FP regs.
>>
>> I had been trying to get the volatile registers saved, but didn't have any luck. I tried it today with your suggestions and it worked like a charm. Not sure what the difference was. Thanks for the pointers.
>
> After a bit more investigation, I believe I see the reasoning behind using the suggested computation for the VM-Call's argument. It seems the CodeCache miss is the issue, not the argument, so I am focusing my efforts on understanding what is happening there.
You just used the return_pc address of the wrong frame.
-------------
PR: https://git.openjdk.org/jdk/pull/10558
More information about the hotspot-dev
mailing list