RFR: 8294729: [s390] Implement nmethod entry barriers [v13]

Martin Doerr mdoerr at openjdk.org
Fri Oct 28 10:50:33 UTC 2022


On Thu, 27 Oct 2022 22:28:16 GMT, Tyler Steele <tsteele at openjdk.org> wrote:

>> src/hotspot/cpu/s390/gc/shared/barrierSetAssembler_s390.cpp line 178:
>> 
>>> 176:   // Class loader is weak. Determine whether the holder is still alive.
>>> 177:   __ z_lg(Z_R1_scratch, in_bytes(ClassLoaderData::holder_offset()), Z_R0_scratch);
>>> 178:   __ resolve_weak_handle(Address(Z_R1_scratch), Z_R1_scratch, Z_R0_scratch, Z_R2);
>> 
>> You're killing R2 which contains the 1st argument.
>
> I also thought this might draw some attention. Is there a better register to use, or will I simply have to save & restore the value of whichever register I choose?

Using R0 and R1 implicitly is ok, because they are scratch regs. Other regs should get passed by argument. There's already a tmp reg where the barrier is inserted which you can simply pass.

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

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


More information about the hotspot-dev mailing list