RFR: 8294729: [s390] Implement nmethod entry barriers

Tyler Steele tsteele at openjdk.org
Wed Oct 26 20:00:40 UTC 2022


On Tue, 11 Oct 2022 20:12:50 GMT, Lutz Schmidt <lucy at openjdk.org> wrote:

>> After having another look at the description of `larl`, I don't think I understand why it would be a desirable replacement for `load_const`.
>> 
>> I replaced
>> `load_const(Z_R1_scratch, StubRoutines::zarch::nmethod_entry_barrier()); ... bcr(..., Z_R1_scratch);` 
>> with
>> `larl(Z_R1_scratch, StubRoutines::zarch::nmethod_entry_barrier()); ... bcr(..., Z_R1_scratch);`.
>> But this resulted in a bad jump since there is a mismatch between the address returned by `nmethod_entry_barrier()`, and the number of halfwords to be added to the current PC expected by `larl`. 
>> 
>> To make this work, it seems that I would need to compute the relative location between the current location and the address I want to jump to. Can I do this statically?
>
> I agree: stick with the load_const as you suggested. 
> You can't calculate the distance statically. The generated nmethod is copied around at least once when code generation is complete. You would need a relocation to handle that, and we don't have one. 
> Sorry for all the discussion which led to just nothing.

No need to apologize! I appreciate the suggestions either way.

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

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


More information about the hotspot-dev mailing list