< prev index next >

src/hotspot/share/classfile/vmSymbols.hpp

Print this page



  63   template(java_lang_Thread,                          "java/lang/Thread")                         \
  64   template(java_lang_ThreadGroup,                     "java/lang/ThreadGroup")                    \
  65   template(java_lang_Cloneable,                       "java/lang/Cloneable")                      \
  66   template(java_lang_Throwable,                       "java/lang/Throwable")                      \
  67   template(java_lang_ClassLoader,                     "java/lang/ClassLoader")                    \
  68   template(java_lang_ThreadDeath,                     "java/lang/ThreadDeath")                    \
  69   template(java_lang_Boolean,                         "java/lang/Boolean")                        \
  70   template(java_lang_Character,                       "java/lang/Character")                      \
  71   template(java_lang_Character_CharacterCache,        "java/lang/Character$CharacterCache")       \
  72   template(java_lang_CharacterDataLatin1,             "java/lang/CharacterDataLatin1")            \
  73   template(java_lang_Float,                           "java/lang/Float")                          \
  74   template(java_lang_Double,                          "java/lang/Double")                         \
  75   template(java_lang_Byte,                            "java/lang/Byte")                           \
  76   template(java_lang_Byte_ByteCache,                  "java/lang/Byte$ByteCache")                 \
  77   template(java_lang_Short,                           "java/lang/Short")                          \
  78   template(java_lang_Short_ShortCache,                "java/lang/Short$ShortCache")               \
  79   template(java_lang_Integer,                         "java/lang/Integer")                        \
  80   template(java_lang_Integer_IntegerCache,            "java/lang/Integer$IntegerCache")           \
  81   template(java_lang_Long,                            "java/lang/Long")                           \
  82   template(java_lang_Long_LongCache,                  "java/lang/Long$LongCache")                 \










  83   template(java_lang_Shutdown,                        "java/lang/Shutdown")                       \
  84   template(java_lang_ref_Reference,                   "java/lang/ref/Reference")                  \
  85   template(java_lang_ref_SoftReference,               "java/lang/ref/SoftReference")              \
  86   template(java_lang_ref_WeakReference,               "java/lang/ref/WeakReference")              \
  87   template(java_lang_ref_FinalReference,              "java/lang/ref/FinalReference")             \
  88   template(java_lang_ref_PhantomReference,            "java/lang/ref/PhantomReference")           \
  89   template(java_lang_ref_Finalizer,                   "java/lang/ref/Finalizer")                  \
  90   template(java_lang_reflect_AccessibleObject,        "java/lang/reflect/AccessibleObject")       \
  91   template(java_lang_reflect_Method,                  "java/lang/reflect/Method")                 \
  92   template(java_lang_reflect_Constructor,             "java/lang/reflect/Constructor")            \
  93   template(java_lang_reflect_Field,                   "java/lang/reflect/Field")                  \
  94   template(java_lang_reflect_Parameter,               "java/lang/reflect/Parameter")              \
  95   template(java_lang_reflect_Array,                   "java/lang/reflect/Array")                  \
  96   template(java_lang_reflect_RecordComponent,         "java/lang/reflect/RecordComponent")        \
  97   template(java_lang_StringBuffer,                    "java/lang/StringBuffer")                   \
  98   template(java_lang_StringBuilder,                   "java/lang/StringBuilder")                  \
  99   template(java_lang_CharSequence,                    "java/lang/CharSequence")                   \
 100   template(java_lang_SecurityManager,                 "java/lang/SecurityManager")                \
 101   template(java_security_AccessControlContext,        "java/security/AccessControlContext")       \
 102   template(java_security_AccessController,            "java/security/AccessController")           \


1400    do_signature(getAndAddByte_signature,                                "(Ljava/lang/Object;JB)B" )                           \
1401   do_intrinsic(_getAndAddShort,           jdk_internal_misc_Unsafe,     getAndAddShort_name, getAndAddShort_signature, F_R)   \
1402    do_name(     getAndAddShort_name,                                    "getAndAddShort")                                     \
1403    do_signature(getAndAddShort_signature,                               "(Ljava/lang/Object;JS)S" )                           \
1404   do_intrinsic(_getAndSetInt,             jdk_internal_misc_Unsafe,     getAndSetInt_name, getAndSetInt_signature, F_R)       \
1405    do_name(     getAndSetInt_name,                                      "getAndSetInt")                                       \
1406    do_alias(    getAndSetInt_signature,                                 /*"(Ljava/lang/Object;JI)I"*/ getAndAddInt_signature)   \
1407   do_intrinsic(_getAndSetLong,            jdk_internal_misc_Unsafe,     getAndSetLong_name, getAndSetLong_signature, F_R)     \
1408    do_name(     getAndSetLong_name,                                     "getAndSetLong")                                      \
1409    do_alias(    getAndSetLong_signature,                                /*"(Ljava/lang/Object;JJ)J"*/ getAndAddLong_signature)  \
1410   do_intrinsic(_getAndSetByte,            jdk_internal_misc_Unsafe,     getAndSetByte_name, getAndSetByte_signature, F_R)     \
1411    do_name(     getAndSetByte_name,                                     "getAndSetByte")                                      \
1412    do_alias(    getAndSetByte_signature,                                /*"(Ljava/lang/Object;JB)B"*/ getAndAddByte_signature)  \
1413   do_intrinsic(_getAndSetShort,           jdk_internal_misc_Unsafe,     getAndSetShort_name, getAndSetShort_signature, F_R)   \
1414    do_name(     getAndSetShort_name,                                    "getAndSetShort")                                     \
1415    do_alias(    getAndSetShort_signature,                               /*"(Ljava/lang/Object;JS)S"*/ getAndAddShort_signature) \
1416   do_intrinsic(_getAndSetReference,       jdk_internal_misc_Unsafe,     getAndSetReference_name, getAndSetReference_signature, F_R) \
1417    do_name(     getAndSetReference_name,                                "getAndSetReference")                                  \
1418    do_signature(getAndSetReference_signature,                           "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \
1419                                                                                                                                \




















































































































1420    /* (2) Bytecode intrinsics                                                                        */                        \
1421                                                                                                                                \
1422   do_intrinsic(_park,                     jdk_internal_misc_Unsafe,     park_name, park_signature,                     F_R)    \
1423    do_name(     park_name,                                              "park")                                                \
1424    do_signature(park_signature,                                         "(ZJ)V")                                               \
1425   do_intrinsic(_unpark,                   jdk_internal_misc_Unsafe,     unpark_name, unpark_signature,                 F_R)    \
1426    do_name(     unpark_name,                                            "unpark")                                              \
1427    do_alias(    unpark_signature,                                       /*(LObject;)V*/ object_void_signature)                 \
1428                                                                                                                                \
1429   do_intrinsic(_StringBuilder_void,   java_lang_StringBuilder, object_initializer_name, void_method_signature,     F_R)   \
1430   do_intrinsic(_StringBuilder_int,    java_lang_StringBuilder, object_initializer_name, int_void_signature,        F_R)   \
1431   do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature,     F_R)   \
1432                                                                                                                           \
1433   do_intrinsic(_StringBuilder_append_char,   java_lang_StringBuilder, append_name, char_StringBuilder_signature,   F_R)   \
1434   do_intrinsic(_StringBuilder_append_int,    java_lang_StringBuilder, append_name, int_StringBuilder_signature,    F_R)   \
1435   do_intrinsic(_StringBuilder_append_String, java_lang_StringBuilder, append_name, String_StringBuilder_signature, F_R)   \
1436                                                                                                                           \
1437   do_intrinsic(_StringBuilder_toString, java_lang_StringBuilder, toString_name, void_string_signature,             F_R)   \
1438                                                                                                                           \
1439   do_intrinsic(_StringBuffer_void,   java_lang_StringBuffer, object_initializer_name, void_method_signature,       F_R)   \


1583   static const char* name_for(SID sid);
1584 #endif //PRODUCT
1585 };
1586 
1587 // VM Intrinsic ID's uniquely identify some very special methods
1588 class vmIntrinsics: AllStatic {
1589   friend class vmSymbols;
1590   friend class ciObjectFactory;
1591 
1592  public:
1593   // Accessing
1594   enum ID {
1595     _none = 0,                      // not an intrinsic (default answer)
1596 
1597     #define VM_INTRINSIC_ENUM(id, klass, name, sig, flags)  id,
1598     VM_INTRINSICS_DO(VM_INTRINSIC_ENUM,
1599                      VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE)
1600     #undef VM_INTRINSIC_ENUM
1601 
1602     ID_LIMIT,
1603     LAST_COMPILER_INLINE = _getAndSetReference,
1604     FIRST_MH_SIG_POLY    = _invokeGeneric,
1605     FIRST_MH_STATIC      = _linkToVirtual,
1606     LAST_MH_SIG_POLY     = _linkToInterface,
1607 
1608     FIRST_ID = _none + 1
1609   };
1610 
1611   enum Flags {
1612     // AccessFlags syndromes relevant to intrinsics.
1613     F_none = 0,
1614     F_R,                        // !static ?native !synchronized (R="regular")
1615     F_S,                        //  static ?native !synchronized
1616     F_Y,                        // !static ?native  synchronized
1617     F_RN,                       // !static  native !synchronized
1618     F_SN,                       //  static  native !synchronized
1619     F_RNY,                      // !static  native  synchronized
1620 
1621     FLAG_LIMIT
1622   };
1623   enum {



  63   template(java_lang_Thread,                          "java/lang/Thread")                         \
  64   template(java_lang_ThreadGroup,                     "java/lang/ThreadGroup")                    \
  65   template(java_lang_Cloneable,                       "java/lang/Cloneable")                      \
  66   template(java_lang_Throwable,                       "java/lang/Throwable")                      \
  67   template(java_lang_ClassLoader,                     "java/lang/ClassLoader")                    \
  68   template(java_lang_ThreadDeath,                     "java/lang/ThreadDeath")                    \
  69   template(java_lang_Boolean,                         "java/lang/Boolean")                        \
  70   template(java_lang_Character,                       "java/lang/Character")                      \
  71   template(java_lang_Character_CharacterCache,        "java/lang/Character$CharacterCache")       \
  72   template(java_lang_CharacterDataLatin1,             "java/lang/CharacterDataLatin1")            \
  73   template(java_lang_Float,                           "java/lang/Float")                          \
  74   template(java_lang_Double,                          "java/lang/Double")                         \
  75   template(java_lang_Byte,                            "java/lang/Byte")                           \
  76   template(java_lang_Byte_ByteCache,                  "java/lang/Byte$ByteCache")                 \
  77   template(java_lang_Short,                           "java/lang/Short")                          \
  78   template(java_lang_Short_ShortCache,                "java/lang/Short$ShortCache")               \
  79   template(java_lang_Integer,                         "java/lang/Integer")                        \
  80   template(java_lang_Integer_IntegerCache,            "java/lang/Integer$IntegerCache")           \
  81   template(java_lang_Long,                            "java/lang/Long")                           \
  82   template(java_lang_Long_LongCache,                  "java/lang/Long$LongCache")                 \
  83                                                                                                   \
  84   template(jdk_internal_vm_vector_VectorSupport,      "jdk/internal/vm/vector/VectorSupport")               \
  85   template(jdk_internal_vm_vector_VectorPayload,      "jdk/internal/vm/vector/VectorSupport$VectorPayload") \
  86   template(jdk_internal_vm_vector_Vector,             "jdk/internal/vm/vector/VectorSupport$Vector")        \
  87   template(jdk_internal_vm_vector_VectorMask,         "jdk/internal/vm/vector/VectorSupport$VectorMask")    \
  88   template(jdk_internal_vm_vector_VectorShuffle,      "jdk/internal/vm/vector/VectorSupport$VectorShuffle") \
  89   template(payload_name,                              "payload")                                            \
  90   template(ETYPE_name,                                "ETYPE")                                              \
  91   template(VLENGTH_name,                              "VLENGTH")                                            \
  92                                                                                                   \
  93   template(java_lang_Shutdown,                        "java/lang/Shutdown")                       \
  94   template(java_lang_ref_Reference,                   "java/lang/ref/Reference")                  \
  95   template(java_lang_ref_SoftReference,               "java/lang/ref/SoftReference")              \
  96   template(java_lang_ref_WeakReference,               "java/lang/ref/WeakReference")              \
  97   template(java_lang_ref_FinalReference,              "java/lang/ref/FinalReference")             \
  98   template(java_lang_ref_PhantomReference,            "java/lang/ref/PhantomReference")           \
  99   template(java_lang_ref_Finalizer,                   "java/lang/ref/Finalizer")                  \
 100   template(java_lang_reflect_AccessibleObject,        "java/lang/reflect/AccessibleObject")       \
 101   template(java_lang_reflect_Method,                  "java/lang/reflect/Method")                 \
 102   template(java_lang_reflect_Constructor,             "java/lang/reflect/Constructor")            \
 103   template(java_lang_reflect_Field,                   "java/lang/reflect/Field")                  \
 104   template(java_lang_reflect_Parameter,               "java/lang/reflect/Parameter")              \
 105   template(java_lang_reflect_Array,                   "java/lang/reflect/Array")                  \
 106   template(java_lang_reflect_RecordComponent,         "java/lang/reflect/RecordComponent")        \
 107   template(java_lang_StringBuffer,                    "java/lang/StringBuffer")                   \
 108   template(java_lang_StringBuilder,                   "java/lang/StringBuilder")                  \
 109   template(java_lang_CharSequence,                    "java/lang/CharSequence")                   \
 110   template(java_lang_SecurityManager,                 "java/lang/SecurityManager")                \
 111   template(java_security_AccessControlContext,        "java/security/AccessControlContext")       \
 112   template(java_security_AccessController,            "java/security/AccessController")           \


1410    do_signature(getAndAddByte_signature,                                "(Ljava/lang/Object;JB)B" )                           \
1411   do_intrinsic(_getAndAddShort,           jdk_internal_misc_Unsafe,     getAndAddShort_name, getAndAddShort_signature, F_R)   \
1412    do_name(     getAndAddShort_name,                                    "getAndAddShort")                                     \
1413    do_signature(getAndAddShort_signature,                               "(Ljava/lang/Object;JS)S" )                           \
1414   do_intrinsic(_getAndSetInt,             jdk_internal_misc_Unsafe,     getAndSetInt_name, getAndSetInt_signature, F_R)       \
1415    do_name(     getAndSetInt_name,                                      "getAndSetInt")                                       \
1416    do_alias(    getAndSetInt_signature,                                 /*"(Ljava/lang/Object;JI)I"*/ getAndAddInt_signature)   \
1417   do_intrinsic(_getAndSetLong,            jdk_internal_misc_Unsafe,     getAndSetLong_name, getAndSetLong_signature, F_R)     \
1418    do_name(     getAndSetLong_name,                                     "getAndSetLong")                                      \
1419    do_alias(    getAndSetLong_signature,                                /*"(Ljava/lang/Object;JJ)J"*/ getAndAddLong_signature)  \
1420   do_intrinsic(_getAndSetByte,            jdk_internal_misc_Unsafe,     getAndSetByte_name, getAndSetByte_signature, F_R)     \
1421    do_name(     getAndSetByte_name,                                     "getAndSetByte")                                      \
1422    do_alias(    getAndSetByte_signature,                                /*"(Ljava/lang/Object;JB)B"*/ getAndAddByte_signature)  \
1423   do_intrinsic(_getAndSetShort,           jdk_internal_misc_Unsafe,     getAndSetShort_name, getAndSetShort_signature, F_R)   \
1424    do_name(     getAndSetShort_name,                                    "getAndSetShort")                                     \
1425    do_alias(    getAndSetShort_signature,                               /*"(Ljava/lang/Object;JS)S"*/ getAndAddShort_signature) \
1426   do_intrinsic(_getAndSetReference,       jdk_internal_misc_Unsafe,     getAndSetReference_name, getAndSetReference_signature, F_R) \
1427    do_name(     getAndSetReference_name,                                "getAndSetReference")                                  \
1428    do_signature(getAndSetReference_signature,                           "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \
1429                                                                                                                                                \
1430   /* Vector API intrinsification support */                                                                                                    \
1431                                                                                                                                                \
1432   do_intrinsic(_VectorUnaryOp, jdk_internal_vm_vector_VectorSupport, vector_unary_op_name, vector_unary_op_sig, F_S)                           \
1433    do_signature(vector_unary_op_sig, "(ILjava/lang/Class;Ljava/lang/Class;ILjava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;") \
1434    do_name(vector_unary_op_name,     "unaryOp")                                                                                                \
1435                                                                                                                                                \
1436   do_intrinsic(_VectorBinaryOp, jdk_internal_vm_vector_VectorSupport, vector_binary_op_name, vector_binary_op_sig, F_S)                        \
1437    do_signature(vector_binary_op_sig, "(ILjava/lang/Class;Ljava/lang/Class;ILjava/lang/Object;Ljava/lang/Object;"                              \
1438                                        "Ljava/util/function/BiFunction;)Ljava/lang/Object;")                                                   \
1439    do_name(vector_binary_op_name,     "binaryOp")                                                                                              \
1440                                                                                                                                                \
1441   do_intrinsic(_VectorTernaryOp, jdk_internal_vm_vector_VectorSupport, vector_ternary_op_name, vector_ternary_op_sig, F_S)                     \
1442    do_signature(vector_ternary_op_sig, "(ILjava/lang/Class;Ljava/lang/Class;ILjava/lang/Object;Ljava/lang/Object;"                             \
1443                                         "Ljava/lang/Object;Ljdk/internal/vm/vector/VectorSupport$TernaryOperation;)Ljava/lang/Object;")        \
1444    do_name(vector_ternary_op_name,     "ternaryOp")                                                                                            \
1445                                                                                                                                                \
1446   do_intrinsic(_VectorBroadcastCoerced, jdk_internal_vm_vector_VectorSupport, vector_broadcast_coerced_name, vector_broadcast_coerced_sig, F_S)\
1447    do_signature(vector_broadcast_coerced_sig, "(Ljava/lang/Class;Ljava/lang/Class;IJLjdk/internal/vm/vector/VectorSupport$VectorSpecies;"      \
1448                                                "Ljdk/internal/vm/vector/VectorSupport$BroadcastOperation;)Ljava/lang/Object;")                 \
1449    do_name(vector_broadcast_coerced_name, "broadcastCoerced")                                                                                  \
1450                                                                                                                                                \
1451   do_intrinsic(_VectorShuffleIota, jdk_internal_vm_vector_VectorSupport, vector_shuffle_step_iota_name, vector_shuffle_step_iota_sig, F_S)     \
1452    do_signature(vector_shuffle_step_iota_sig, "(Ljava/lang/Class;Ljava/lang/Class;Ljdk/internal/vm/vector/VectorSupport$VectorSpecies;"        \
1453                                                "IIIILjdk/internal/vm/vector/VectorSupport$ShuffleIotaOperation;)Ljdk/internal/vm/vector/VectorSupport$VectorShuffle;") \
1454    do_name(vector_shuffle_step_iota_name, "shuffleIota")                                                                                       \
1455                                                                                                                                                \
1456   do_intrinsic(_VectorShuffleToVector, jdk_internal_vm_vector_VectorSupport, vector_shuffle_to_vector_name, vector_shuffle_to_vector_sig, F_S) \
1457    do_signature(vector_shuffle_to_vector_sig, "(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;Ljdk/internal/vm/vector/VectorSupport$VectorShuffle;" \
1458                                                "ILjdk/internal/vm/vector/VectorSupport$ShuffleToVectorOperation;)Ljava/lang/Object;")          \
1459    do_name(vector_shuffle_to_vector_name, "shuffleToVector")                                                                                   \
1460                                                                                                                                                \
1461   do_intrinsic(_VectorLoadOp, jdk_internal_vm_vector_VectorSupport, vector_load_op_name, vector_load_op_sig, F_S)                              \
1462    do_signature(vector_load_op_sig, "(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/Object;JLjava/lang/Object;"                                \
1463                                      "ILjdk/internal/vm/vector/VectorSupport$VectorSpecies;Ljdk/internal/vm/vector/VectorSupport$LoadOperation;)Ljava/lang/Object;") \
1464    do_name(vector_load_op_name,     "load")                                                                                                    \
1465                                                                                                                                                \
1466   do_intrinsic(_VectorStoreOp, jdk_internal_vm_vector_VectorSupport, vector_store_op_name, vector_store_op_sig, F_S)                           \
1467    do_signature(vector_store_op_sig, "(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/Object;JLjdk/internal/vm/vector/VectorSupport$Vector;"    \
1468                                       "Ljava/lang/Object;ILjdk/internal/vm/vector/VectorSupport$StoreVectorOperation;)V")                      \
1469    do_name(vector_store_op_name,     "store")                                                                                                  \
1470                                                                                                                                                \
1471   do_intrinsic(_VectorReductionCoerced, jdk_internal_vm_vector_VectorSupport, vector_reduction_coerced_name, vector_reduction_coerced_sig, F_S) \
1472    do_signature(vector_reduction_coerced_sig, "(ILjava/lang/Class;Ljava/lang/Class;ILjdk/internal/vm/vector/VectorSupport$Vector;Ljava/util/function/Function;)J") \
1473    do_name(vector_reduction_coerced_name, "reductionCoerced")                                                                                  \
1474                                                                                                                                                \
1475   do_intrinsic(_VectorTest, jdk_internal_vm_vector_VectorSupport, vector_test_name, vector_test_sig, F_S)                                      \
1476    do_signature(vector_test_sig, "(ILjava/lang/Class;Ljava/lang/Class;ILjava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Z") \
1477    do_name(vector_test_name, "test")                                                                                                           \
1478                                                                                                                                                \
1479   do_intrinsic(_VectorBlend, jdk_internal_vm_vector_VectorSupport, vector_blend_name, vector_blend_sig, F_S)                                   \
1480    do_signature(vector_blend_sig, "(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I"                                                      \
1481                                    "Ljdk/internal/vm/vector/VectorSupport$Vector;Ljdk/internal/vm/vector/VectorSupport$Vector;Ljdk/internal/vm/vector/VectorSupport$VectorMask;" \
1482                                    "Ljdk/internal/vm/vector/VectorSupport$VectorBlendOp;)Ljdk/internal/vm/vector/VectorSupport$Vector;")       \
1483    do_name(vector_blend_name, "blend")                                                                                                         \
1484                                                                                                                                                \
1485   do_intrinsic(_VectorCompare, jdk_internal_vm_vector_VectorSupport, vector_compare_name, vector_compare_sig, F_S)                             \
1486    do_signature(vector_compare_sig, "(ILjava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I"                                                   \
1487                                      "Ljdk/internal/vm/vector/VectorSupport$Vector;" "Ljdk/internal/vm/vector/VectorSupport$Vector;"           \
1488                                      "Ljdk/internal/vm/vector/VectorSupport$VectorCompareOp;" ")" "Ljdk/internal/vm/vector/VectorSupport$VectorMask;") \
1489    do_name(vector_compare_name, "compare")                                                                                                     \
1490                                                                                                                                                \
1491   do_intrinsic(_VectorRearrange, jdk_internal_vm_vector_VectorSupport, vector_rearrange_name, vector_rearrange_sig, F_S)                       \
1492    do_signature(vector_rearrange_sig, "(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I"                                                  \
1493                                        "Ljdk/internal/vm/vector/VectorSupport$Vector;Ljdk/internal/vm/vector/VectorSupport$VectorShuffle;"     \
1494                                        "Ljdk/internal/vm/vector/VectorSupport$VectorRearrangeOp;)Ljdk/internal/vm/vector/VectorSupport$Vector;") \
1495    do_name(vector_rearrange_name, "rearrangeOp")                                                                                               \
1496                                                                                                                                                \
1497   do_intrinsic(_VectorExtract, jdk_internal_vm_vector_VectorSupport, vector_extract_name, vector_extract_sig, F_S)                             \
1498    do_signature(vector_extract_sig, "(Ljava/lang/Class;Ljava/lang/Class;I"                                                                     \
1499                                      "Ljdk/internal/vm/vector/VectorSupport$Vector;I"                                                          \
1500                                      "Ljdk/internal/vm/vector/VectorSupport$VecExtractOp;)J")                                                  \
1501    do_name(vector_extract_name, "extract")                                                                                                     \
1502                                                                                                                                                \
1503  do_intrinsic(_VectorInsert, jdk_internal_vm_vector_VectorSupport, vector_insert_name, vector_insert_sig, F_S)                                 \
1504    do_signature(vector_insert_sig, "(Ljava/lang/Class;Ljava/lang/Class;I"                                                                      \
1505                                     "Ljdk/internal/vm/vector/VectorSupport$Vector;IJ"                                                          \
1506                                     "Ljdk/internal/vm/vector/VectorSupport$VecInsertOp;)Ljdk/internal/vm/vector/VectorSupport$Vector;")        \
1507    do_name(vector_insert_name, "insert")                                                                                                       \
1508                                                                                                                                                \
1509   do_intrinsic(_VectorBroadcastInt, jdk_internal_vm_vector_VectorSupport, vector_broadcast_int_name, vector_broadcast_int_sig, F_S)            \
1510    do_signature(vector_broadcast_int_sig, "(ILjava/lang/Class;Ljava/lang/Class;I"                                                              \
1511                                            "Ljdk/internal/vm/vector/VectorSupport$Vector;I"                                                    \
1512                                            "Ljdk/internal/vm/vector/VectorSupport$VectorBroadcastIntOp;)Ljdk/internal/vm/vector/VectorSupport$Vector;") \
1513    do_name(vector_broadcast_int_name, "broadcastInt")                                                                                          \
1514                                                                                                                                                \
1515   do_intrinsic(_VectorConvert, jdk_internal_vm_vector_VectorSupport, vector_convert_name, vector_convert_sig, F_S)                             \
1516    do_signature(vector_convert_sig, "(ILjava/lang/Class;Ljava/lang/Class;I"                                                                    \
1517                                      "Ljava/lang/Class;Ljava/lang/Class;I"                                                                     \
1518                                      "Ljdk/internal/vm/vector/VectorSupport$VectorPayload;"                                                    \
1519                                      "Ljdk/internal/vm/vector/VectorSupport$VectorSpecies;"                                                    \
1520                                      "Ljdk/internal/vm/vector/VectorSupport$VectorConvertOp;)Ljdk/internal/vm/vector/VectorSupport$VectorPayload;") \
1521    do_name(vector_convert_name, "convert")                                                                                                     \
1522                                                                                                                                                \
1523    do_intrinsic(_VectorGatherOp, jdk_internal_vm_vector_VectorSupport, vector_gather_name, vector_gather_sig, F_S)                             \
1524     do_signature(vector_gather_sig, "(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/Class;"                                                    \
1525                                      "Ljava/lang/Object;J"                                                                                     \
1526                                      "Ljdk/internal/vm/vector/VectorSupport$Vector;"                                                           \
1527                                      "Ljava/lang/Object;I[II"                                                                                  \
1528                                      "Ljdk/internal/vm/vector/VectorSupport$VectorSpecies;"                                                    \
1529                                      "Ljdk/internal/vm/vector/VectorSupport$LoadVectorOperationWithMap;)"                                      \
1530                                      "Ljdk/internal/vm/vector/VectorSupport$Vector;")                                                          \
1531     do_name(vector_gather_name, "loadWithMap")                                                                                                 \
1532                                                                                                                                                \
1533    do_intrinsic(_VectorScatterOp, jdk_internal_vm_vector_VectorSupport, vector_scatter_name, vector_scatter_sig, F_S)                          \
1534     do_signature(vector_scatter_sig, "(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/Class;"                                                   \
1535                                       "Ljava/lang/Object;J"                                                                                    \
1536                                       "Ljdk/internal/vm/vector/VectorSupport$Vector;Ljdk/internal/vm/vector/VectorSupport$Vector;"             \
1537                                       "Ljava/lang/Object;I[II"                                                                                 \
1538                                       "Ljdk/internal/vm/vector/VectorSupport$StoreVectorOperationWithMap;)V")                                  \
1539     do_name(vector_scatter_name, "storeWithMap")                                                                                               \
1540                                                                                                                                                \
1541   do_intrinsic(_VectorRebox, jdk_internal_vm_vector_VectorSupport, vector_rebox_name, vector_rebox_sig, F_S)                                   \
1542    do_alias(vector_rebox_sig, object_object_signature)                                                                                         \
1543    do_name(vector_rebox_name, "maybeRebox")                                                                                                    \
1544                                                                                                                                                \
1545                                                                                                                                \
1546    /* (2) Bytecode intrinsics                                                                        */                        \
1547                                                                                                                                \
1548   do_intrinsic(_park,                     jdk_internal_misc_Unsafe,     park_name, park_signature,                     F_R)    \
1549    do_name(     park_name,                                              "park")                                                \
1550    do_signature(park_signature,                                         "(ZJ)V")                                               \
1551   do_intrinsic(_unpark,                   jdk_internal_misc_Unsafe,     unpark_name, unpark_signature,                 F_R)    \
1552    do_name(     unpark_name,                                            "unpark")                                              \
1553    do_alias(    unpark_signature,                                       /*(LObject;)V*/ object_void_signature)                 \
1554                                                                                                                                \
1555   do_intrinsic(_StringBuilder_void,   java_lang_StringBuilder, object_initializer_name, void_method_signature,     F_R)   \
1556   do_intrinsic(_StringBuilder_int,    java_lang_StringBuilder, object_initializer_name, int_void_signature,        F_R)   \
1557   do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature,     F_R)   \
1558                                                                                                                           \
1559   do_intrinsic(_StringBuilder_append_char,   java_lang_StringBuilder, append_name, char_StringBuilder_signature,   F_R)   \
1560   do_intrinsic(_StringBuilder_append_int,    java_lang_StringBuilder, append_name, int_StringBuilder_signature,    F_R)   \
1561   do_intrinsic(_StringBuilder_append_String, java_lang_StringBuilder, append_name, String_StringBuilder_signature, F_R)   \
1562                                                                                                                           \
1563   do_intrinsic(_StringBuilder_toString, java_lang_StringBuilder, toString_name, void_string_signature,             F_R)   \
1564                                                                                                                           \
1565   do_intrinsic(_StringBuffer_void,   java_lang_StringBuffer, object_initializer_name, void_method_signature,       F_R)   \


1709   static const char* name_for(SID sid);
1710 #endif //PRODUCT
1711 };
1712 
1713 // VM Intrinsic ID's uniquely identify some very special methods
1714 class vmIntrinsics: AllStatic {
1715   friend class vmSymbols;
1716   friend class ciObjectFactory;
1717 
1718  public:
1719   // Accessing
1720   enum ID {
1721     _none = 0,                      // not an intrinsic (default answer)
1722 
1723     #define VM_INTRINSIC_ENUM(id, klass, name, sig, flags)  id,
1724     VM_INTRINSICS_DO(VM_INTRINSIC_ENUM,
1725                      VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE)
1726     #undef VM_INTRINSIC_ENUM
1727 
1728     ID_LIMIT,
1729     LAST_COMPILER_INLINE = _VectorScatterOp,
1730     FIRST_MH_SIG_POLY    = _invokeGeneric,
1731     FIRST_MH_STATIC      = _linkToVirtual,
1732     LAST_MH_SIG_POLY     = _linkToInterface,
1733 
1734     FIRST_ID = _none + 1
1735   };
1736 
1737   enum Flags {
1738     // AccessFlags syndromes relevant to intrinsics.
1739     F_none = 0,
1740     F_R,                        // !static ?native !synchronized (R="regular")
1741     F_S,                        //  static ?native !synchronized
1742     F_Y,                        // !static ?native  synchronized
1743     F_RN,                       // !static  native !synchronized
1744     F_SN,                       //  static  native !synchronized
1745     F_RNY,                      // !static  native  synchronized
1746 
1747     FLAG_LIMIT
1748   };
1749   enum {


< prev index next >