RFR: 8319801: Recursive lightweight locking: aarch64 implementation [v16]

Axel Boldt-Christmas aboldtch at openjdk.org
Tue Feb 13 12:41:38 UTC 2024


On Tue, 13 Feb 2024 12:22:45 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> Axel Boldt-Christmas has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 79 commits:
>> 
>>  - Merge remote-tracking branch 'upstream_jdk/master' into JDK-8319801
>>  - Revert "Update src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp"
>>    
>>    This reverts commit 130cf4b7f5b37ecb9dda3ce07ed70c3da13b29b8.
>>  - Merge remote-tracking branch 'upstream_jdk/pr/16606' into JDK-8319801
>>  - Running out of LogTagSets, stick with monitorinflation
>>  - Merge remote-tracking branch 'upstream_jdk/master' into JDK-8319797
>>  - Merge remote-tracking branch 'upstream_jdk/pr/16606' into JDK-8319801
>>  - Merge remote-tracking branch 'upstream_jdk/master' into JDK-8319797
>>  - Fix assert comment
>>  - Update src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp
>>    
>>    Co-authored-by: Andrew Haley <aph-open at littlepinkcloud.com>
>>  - Clarify the rscratch1 assert
>>  - ... and 69 more: https://git.openjdk.org/jdk/compare/c266800a...20e92608
>
> src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp line 243:
> 
>> 241:     ldrw(t1, Address(t1, Klass::access_flags_offset()));
>> 242:     tstw(t1, JVM_ACC_IS_VALUE_BASED_CLASS);
>> 243:     br(Assembler::NE, slow_path);
> 
> Suggestion:
> 
>     tbnz(t1, exact_log2(JVM_ACC_IS_VALUE_BASED_CLASS));

The condition flags must be correct when leaving `fast_lock` and `fast_unlock`. The test is used to set the proper NE condition when jumping out.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16608#discussion_r1487774734


More information about the hotspot-dev mailing list