RFR: 8296170: Refactor stack-locking path in C2_MacroAssembler::fast_unlock() [v4]

Roman Kennke rkennke at openjdk.org
Thu Nov 17 08:25:17 UTC 2022


On Wed, 16 Nov 2022 18:19:19 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

>> The code in C2_MacroAssembler::fast_unlock() has several (minor) issues: 
>>  - The stack-locking path for x86_32 is not under UseHeavyMonitors - it would be executed even when stack-locking is disabled. 
>>  - The stack-locking paths are the same for x86_32 and x86_64 - they can be merged into a common path. 
>>  - In x86_32 path, we call get_thread(boxReg) which is totally bogus because we clear boxReg right afterwards with xorptr(boxReg, boxReg). 
>>  - In x86_32 path, the CheckSucc label is identical to the DONE label, and in-fact CheckSucc is only ever really used in the x86_64 path and can be moved there.
>> 
>> Testing:
>>  - [x] tier1 (x86_32, x86_64)
>>  - [x] tier2 (x86_32, x86_64)
>
> Roman Kennke 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 branch 'master' into JDK-8296170
>  - Remove comments about DONE_LABEL being a hot target
>  - Merge remote-tracking branch 'upstream/master' into JDK-8296170
>  - 8296170: Refactor stack-locking path in C2_MacroAssembler::fast_unlock()

Thanks for reviewing! GHA is green now, let's

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

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


More information about the hotspot-compiler-dev mailing list