RFR: 8276096: Simplify Unsafe.{load|store}Fence fallbacks by delegating to fullFence [v2]

Aleksey Shipilev shade at openjdk.java.net
Mon Nov 1 07:36:57 UTC 2021


On Mon, 1 Nov 2021 02:09:19 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Restore RN for fullFence
>
> src/hotspot/share/classfile/vmIntrinsics.hpp line 526:
> 
>> 524:    do_name(     storeFence_name,                                        "storeFence")                                            \
>> 525:    do_alias(    storeFence_signature,                                   void_method_signature)                                   \
>> 526:   do_intrinsic(_fullFence,                jdk_internal_misc_Unsafe,     fullFence_name, fullFence_signature,           F_R)      \
> 
> Why did you drop the N from F_RN? AFAICS the fullFence method is still native.

Good spot! That's indeed incorrect, fixed in new commit. I am surprised `CheckIntrinsics` did not found this discrepancy.  I believe "native" flags are not checked at all? For example, existing `_hashCode` intrinsic is also `F_R`, while it covers the native `java.lang.Object::hashCode`. I try to beef up those checks separately.

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

PR: https://git.openjdk.java.net/jdk/pull/6149


More information about the core-libs-dev mailing list