src/share/vm/classfile/vmSymbols.hpp

Print this page
rev 3419 : 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Summary: use shorter instruction sequences for atomic add and atomic exchange when possible.
Reviewed-by:


 859                                                                                                                         \
 860   do_intrinsic(_compareAndSwapObject,     sun_misc_Unsafe,        compareAndSwapObject_name, compareAndSwapObject_signature, F_RN) \
 861    do_name(     compareAndSwapObject_name,                       "compareAndSwapObject")                                \
 862    do_signature(compareAndSwapObject_signature,  "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z")          \
 863   do_intrinsic(_compareAndSwapLong,       sun_misc_Unsafe,        compareAndSwapLong_name, compareAndSwapLong_signature, F_RN) \
 864    do_name(     compareAndSwapLong_name,                         "compareAndSwapLong")                                  \
 865    do_signature(compareAndSwapLong_signature,                    "(Ljava/lang/Object;JJJ)Z")                            \
 866   do_intrinsic(_compareAndSwapInt,        sun_misc_Unsafe,        compareAndSwapInt_name, compareAndSwapInt_signature, F_RN) \
 867    do_name(     compareAndSwapInt_name,                          "compareAndSwapInt")                                   \
 868    do_signature(compareAndSwapInt_signature,                     "(Ljava/lang/Object;JII)Z")                            \
 869   do_intrinsic(_putOrderedObject,         sun_misc_Unsafe,        putOrderedObject_name, putOrderedObject_signature, F_RN) \
 870    do_name(     putOrderedObject_name,                           "putOrderedObject")                                    \
 871    do_alias(    putOrderedObject_signature,                     /*(LObject;JLObject;)V*/ putObject_signature)           \
 872   do_intrinsic(_putOrderedLong,           sun_misc_Unsafe,        putOrderedLong_name, putOrderedLong_signature, F_RN)  \
 873    do_name(     putOrderedLong_name,                             "putOrderedLong")                                      \
 874    do_alias(    putOrderedLong_signature,                       /*(Ljava/lang/Object;JJ)V*/ putLong_signature)          \
 875   do_intrinsic(_putOrderedInt,            sun_misc_Unsafe,        putOrderedInt_name, putOrderedInt_signature,   F_RN)  \
 876    do_name(     putOrderedInt_name,                              "putOrderedInt")                                       \
 877    do_alias(    putOrderedInt_signature,                        /*(Ljava/lang/Object;JI)V*/ putInt_signature)           \
 878                                                                                                                         \














 879   /* prefetch_signature is shared by all prefetch variants */                                                           \
 880   do_signature( prefetch_signature,        "(Ljava/lang/Object;J)V")                                                    \
 881                                                                                                                         \
 882   do_intrinsic(_prefetchRead,             sun_misc_Unsafe,        prefetchRead_name, prefetch_signature,         F_RN)  \
 883    do_name(     prefetchRead_name,                               "prefetchRead")                                        \
 884   do_intrinsic(_prefetchWrite,            sun_misc_Unsafe,        prefetchWrite_name, prefetch_signature,        F_RN)  \
 885    do_name(     prefetchWrite_name,                              "prefetchWrite")                                       \
 886   do_intrinsic(_prefetchReadStatic,       sun_misc_Unsafe,        prefetchReadStatic_name, prefetch_signature,   F_SN)  \
 887    do_name(     prefetchReadStatic_name,                         "prefetchReadStatic")                                  \
 888   do_intrinsic(_prefetchWriteStatic,      sun_misc_Unsafe,        prefetchWriteStatic_name, prefetch_signature,  F_SN)  \
 889    do_name(     prefetchWriteStatic_name,                        "prefetchWriteStatic")                                 \
 890     /*== LAST_COMPILER_INLINE*/                                                                                         \
 891     /*the compiler does have special inlining code for these; bytecode inline is just fine */                           \
 892                                                                                                                         \
 893   do_intrinsic(_fillInStackTrace,         java_lang_Throwable, fillInStackTrace_name, void_throwable_signature,  F_RNY) \
 894                                                                                                                           \
 895   do_intrinsic(_StringBuilder_void,   java_lang_StringBuilder, object_initializer_name, void_method_signature,     F_R)   \
 896   do_intrinsic(_StringBuilder_int,    java_lang_StringBuilder, object_initializer_name, int_void_signature,        F_R)   \
 897   do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature,     F_R)   \
 898                                                                                                                           \




 859                                                                                                                         \
 860   do_intrinsic(_compareAndSwapObject,     sun_misc_Unsafe,        compareAndSwapObject_name, compareAndSwapObject_signature, F_RN) \
 861    do_name(     compareAndSwapObject_name,                       "compareAndSwapObject")                                \
 862    do_signature(compareAndSwapObject_signature,  "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z")          \
 863   do_intrinsic(_compareAndSwapLong,       sun_misc_Unsafe,        compareAndSwapLong_name, compareAndSwapLong_signature, F_RN) \
 864    do_name(     compareAndSwapLong_name,                         "compareAndSwapLong")                                  \
 865    do_signature(compareAndSwapLong_signature,                    "(Ljava/lang/Object;JJJ)Z")                            \
 866   do_intrinsic(_compareAndSwapInt,        sun_misc_Unsafe,        compareAndSwapInt_name, compareAndSwapInt_signature, F_RN) \
 867    do_name(     compareAndSwapInt_name,                          "compareAndSwapInt")                                   \
 868    do_signature(compareAndSwapInt_signature,                     "(Ljava/lang/Object;JII)Z")                            \
 869   do_intrinsic(_putOrderedObject,         sun_misc_Unsafe,        putOrderedObject_name, putOrderedObject_signature, F_RN) \
 870    do_name(     putOrderedObject_name,                           "putOrderedObject")                                    \
 871    do_alias(    putOrderedObject_signature,                     /*(LObject;JLObject;)V*/ putObject_signature)           \
 872   do_intrinsic(_putOrderedLong,           sun_misc_Unsafe,        putOrderedLong_name, putOrderedLong_signature, F_RN)  \
 873    do_name(     putOrderedLong_name,                             "putOrderedLong")                                      \
 874    do_alias(    putOrderedLong_signature,                       /*(Ljava/lang/Object;JJ)V*/ putLong_signature)          \
 875   do_intrinsic(_putOrderedInt,            sun_misc_Unsafe,        putOrderedInt_name, putOrderedInt_signature,   F_RN)  \
 876    do_name(     putOrderedInt_name,                              "putOrderedInt")                                       \
 877    do_alias(    putOrderedInt_signature,                        /*(Ljava/lang/Object;JI)V*/ putInt_signature)           \
 878                                                                                                                         \
 879   do_intrinsic(_getAndAddInt,             sun_misc_Unsafe,        getAndAddInt_name, getAndAddInt_signature, F_R)       \
 880    do_name(     getAndAddInt_name,                                "getAndAddInt")                                       \
 881    do_signature(getAndAddInt_signature,                           "(Ljava/lang/Object;JI)I" )                           \
 882   do_intrinsic(_getAndAddLong,            sun_misc_Unsafe,        getAndAddLong_name, getAndAddLong_signature, F_R)     \
 883    do_name(     getAndAddLong_name,                               "getAndAddLong")                                      \
 884    do_signature(getAndAddLong_signature,                          "(Ljava/lang/Object;JJ)J" )                           \
 885   do_intrinsic(_getAndSetInt,             sun_misc_Unsafe,        getAndSet_name, getAndSetInt_signature, F_R)          \
 886    do_name(     getAndSet_name,                                   "getAndSet")                                          \
 887    do_alias(    getAndSetInt_signature,                         /*"(Ljava/lang/Object;JI)I"*/ getAndAddInt_signature)   \
 888   do_intrinsic(_getAndSetLong,            sun_misc_Unsafe,        getAndSet_name, getAndSetLong_signature, F_R)         \
 889    do_alias(    getAndSetLong_signature,                        /*"(Ljava/lang/Object;JJ)J"*/ getAndAddLong_signature)  \
 890   do_intrinsic(_getAndSetObject,          sun_misc_Unsafe,        getAndSet_name, getAndSetObject_signature,  F_R)      \
 891    do_signature(getAndSetObject_signature,                        "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \
 892                                                                                                                         \
 893   /* prefetch_signature is shared by all prefetch variants */                                                           \
 894   do_signature( prefetch_signature,        "(Ljava/lang/Object;J)V")                                                    \
 895                                                                                                                         \
 896   do_intrinsic(_prefetchRead,             sun_misc_Unsafe,        prefetchRead_name, prefetch_signature,         F_RN)  \
 897    do_name(     prefetchRead_name,                               "prefetchRead")                                        \
 898   do_intrinsic(_prefetchWrite,            sun_misc_Unsafe,        prefetchWrite_name, prefetch_signature,        F_RN)  \
 899    do_name(     prefetchWrite_name,                              "prefetchWrite")                                       \
 900   do_intrinsic(_prefetchReadStatic,       sun_misc_Unsafe,        prefetchReadStatic_name, prefetch_signature,   F_SN)  \
 901    do_name(     prefetchReadStatic_name,                         "prefetchReadStatic")                                  \
 902   do_intrinsic(_prefetchWriteStatic,      sun_misc_Unsafe,        prefetchWriteStatic_name, prefetch_signature,  F_SN)  \
 903    do_name(     prefetchWriteStatic_name,                        "prefetchWriteStatic")                                 \
 904     /*== LAST_COMPILER_INLINE*/                                                                                         \
 905     /*the compiler does have special inlining code for these; bytecode inline is just fine */                           \
 906                                                                                                                         \
 907   do_intrinsic(_fillInStackTrace,         java_lang_Throwable, fillInStackTrace_name, void_throwable_signature,  F_RNY) \
 908                                                                                                                           \
 909   do_intrinsic(_StringBuilder_void,   java_lang_StringBuilder, object_initializer_name, void_method_signature,     F_R)   \
 910   do_intrinsic(_StringBuilder_int,    java_lang_StringBuilder, object_initializer_name, int_void_signature,        F_R)   \
 911   do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature,     F_R)   \
 912                                                                                                                           \