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