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

Aleksey Shipilev shade at openjdk.java.net
Mon Nov 1 12:27:13 UTC 2021


On Mon, 1 Nov 2021 07:32:18 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> 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.

This `CheckIntrinsics` oddity is handled by #6187.

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

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


More information about the core-libs-dev mailing list