RFR: 8316181: Move the fast locking implementation out of the .ad files [v3]

Roman Kennke rkennke at openjdk.org
Thu Sep 14 09:15:43 UTC 2023


On Thu, 14 Sep 2023 07:26:06 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

>> Some platforms put the fast locking implementation in the `C2_MacroAssembler` class, while others have it in the .ad files. I'd like to propose that we unify this a bit and move the code out of the .ad files.
>> 
>> The benefit is consistency between the platforms but also that it is easier to work with the C++ code when it is in plain C++ files and not in the .ad files.
>> 
>> The implementation is a pure copy of the code except that the section:
>> 
>>     C2_MacroAssembler _masm(&cbuf);
>>     Register oop = as_Register($object$$reg);
>>     Register box = as_Register($box$$reg);
>>     Register disp_hdr = as_Register($tmp$$reg);
>>     Register tmp = as_Register($tmp2$$reg);
>> 
>> 
>> has been replaced with:
>> 
>>   Register oop = objectReg;
>>   Register box = boxReg;
>>   Register disp_hdr = tmpReg;
>>   Register tmp = tmp2Reg;
>> 
>> 
>> and the references to `__ ` have been removed.
>> 
>> This change affects AArch64 and RISC-V
>> 
>> Tested with tier1-3 on AArch64
>> 
>> This PR depends on #15709
>
> Stefan Karlsson has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
> 
>  - Merge remote-tracking branch 'upstream/master' into fast_locking_unification
>  - Move fast lock/unlock out of riscv.ad
>  - Move fast lock/unlock out of aarch64.ad
>  - Use consistent naming for MacroAssembler lightweight locking

Looks good, thank you!

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

Marked as reviewed by rkennke (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/15712#pullrequestreview-1626424438


More information about the hotspot-compiler-dev mailing list