comparison src/share/vm/classfile/vmSymbols.hpp @ 856:75596850f863

6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics Summary: remove useless lazy evaluation of intrinsics; add LAST_COMPILER_INLINE to help categorize them Reviewed-by: kvn
author jrose
date Tue, 21 Jul 2009 16:56:06 -0700
parents 93c14e5562c4
children 389049f3f393
comparison
equal deleted inserted replaced
854:606c988ff684 856:75596850f863
511 // 511 //
512 // The F_xx is one of the Flags enum; see below. 512 // The F_xx is one of the Flags enum; see below.
513 // 513 //
514 // for Emacs: (let ((c-backslash-column 120) (c-backslash-max-column 120)) (c-backslash-region (point) (point-max) nil t)) 514 // for Emacs: (let ((c-backslash-column 120) (c-backslash-max-column 120)) (c-backslash-region (point) (point-max) nil t))
515 #define VM_INTRINSICS_DO(do_intrinsic, do_class, do_name, do_signature, do_alias) \ 515 #define VM_INTRINSICS_DO(do_intrinsic, do_class, do_name, do_signature, do_alias) \
516 do_intrinsic(_Object_init, java_lang_Object, object_initializer_name, void_method_signature, F_R) \
517 /* (symbol object_initializer_name defined above) */ \
518 \
519 do_intrinsic(_hashCode, java_lang_Object, hashCode_name, void_int_signature, F_R) \ 516 do_intrinsic(_hashCode, java_lang_Object, hashCode_name, void_int_signature, F_R) \
520 do_name( hashCode_name, "hashCode") \ 517 do_name( hashCode_name, "hashCode") \
521 do_intrinsic(_getClass, java_lang_Object, getClass_name, void_class_signature, F_R) \ 518 do_intrinsic(_getClass, java_lang_Object, getClass_name, void_class_signature, F_R) \
522 do_name( getClass_name, "getClass") \ 519 do_name( getClass_name, "getClass") \
523 do_intrinsic(_clone, java_lang_Object, clone_name, void_object_signature, F_R) \ 520 do_intrinsic(_clone, java_lang_Object, clone_name, void_object_signature, F_R) \
633 do_signature(copyOfRange_signature, "([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;") \ 630 do_signature(copyOfRange_signature, "([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;") \
634 \ 631 \
635 do_intrinsic(_equalsC, java_util_Arrays, equals_name, equalsC_signature, F_S) \ 632 do_intrinsic(_equalsC, java_util_Arrays, equals_name, equalsC_signature, F_S) \
636 do_signature(equalsC_signature, "([C[C)Z") \ 633 do_signature(equalsC_signature, "([C[C)Z") \
637 \ 634 \
638 do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_array_object_object_signature, F_R) \
639 /* (symbols invoke_name and invoke_signature defined above) */ \
640 \
641 do_intrinsic(_compareTo, java_lang_String, compareTo_name, string_int_signature, F_R) \ 635 do_intrinsic(_compareTo, java_lang_String, compareTo_name, string_int_signature, F_R) \
642 do_name( compareTo_name, "compareTo") \ 636 do_name( compareTo_name, "compareTo") \
643 do_intrinsic(_indexOf, java_lang_String, indexOf_name, string_int_signature, F_R) \ 637 do_intrinsic(_indexOf, java_lang_String, indexOf_name, string_int_signature, F_R) \
644 do_name( indexOf_name, "indexOf") \ 638 do_name( indexOf_name, "indexOf") \
645 do_intrinsic(_equals, java_lang_String, equals_name, object_boolean_signature, F_R) \ 639 do_intrinsic(_equals, java_lang_String, equals_name, object_boolean_signature, F_R) \
653 /* (symbols get_name and void_long_signature defined above) */ \ 647 /* (symbols get_name and void_long_signature defined above) */ \
654 \ 648 \
655 do_intrinsic(_attemptUpdate, sun_misc_AtomicLongCSImpl, attemptUpdate_name, attemptUpdate_signature, F_R) \ 649 do_intrinsic(_attemptUpdate, sun_misc_AtomicLongCSImpl, attemptUpdate_name, attemptUpdate_signature, F_R) \
656 do_name( attemptUpdate_name, "attemptUpdate") \ 650 do_name( attemptUpdate_name, "attemptUpdate") \
657 do_signature(attemptUpdate_signature, "(JJ)Z") \ 651 do_signature(attemptUpdate_signature, "(JJ)Z") \
658 \
659 do_intrinsic(_fillInStackTrace, java_lang_Throwable, fillInStackTrace_name, void_throwable_signature, F_RNY) \
660 \ 652 \
661 /* support for sun.misc.Unsafe */ \ 653 /* support for sun.misc.Unsafe */ \
662 do_class(sun_misc_Unsafe, "sun/misc/Unsafe") \ 654 do_class(sun_misc_Unsafe, "sun/misc/Unsafe") \
663 \ 655 \
664 do_intrinsic(_allocateInstance, sun_misc_Unsafe, allocateInstance_name, allocateInstance_signature, F_RN) \ 656 do_intrinsic(_allocateInstance, sun_misc_Unsafe, allocateInstance_name, allocateInstance_signature, F_RN) \
817 do_name( prefetchWrite_name, "prefetchWrite") \ 809 do_name( prefetchWrite_name, "prefetchWrite") \
818 do_intrinsic(_prefetchReadStatic, sun_misc_Unsafe, prefetchReadStatic_name, prefetch_signature, F_SN) \ 810 do_intrinsic(_prefetchReadStatic, sun_misc_Unsafe, prefetchReadStatic_name, prefetch_signature, F_SN) \
819 do_name( prefetchReadStatic_name, "prefetchReadStatic") \ 811 do_name( prefetchReadStatic_name, "prefetchReadStatic") \
820 do_intrinsic(_prefetchWriteStatic, sun_misc_Unsafe, prefetchWriteStatic_name, prefetch_signature, F_SN) \ 812 do_intrinsic(_prefetchWriteStatic, sun_misc_Unsafe, prefetchWriteStatic_name, prefetch_signature, F_SN) \
821 do_name( prefetchWriteStatic_name, "prefetchWriteStatic") \ 813 do_name( prefetchWriteStatic_name, "prefetchWriteStatic") \
814 /*== LAST_COMPILER_INLINE*/ \
815 /*the compiler does have special inlining code for these; bytecode inline is just fine */ \
816 \
817 do_intrinsic(_fillInStackTrace, java_lang_Throwable, fillInStackTrace_name, void_throwable_signature, F_RNY) \
818 \
819 do_intrinsic(_Object_init, java_lang_Object, object_initializer_name, void_method_signature, F_R) \
820 /* (symbol object_initializer_name defined above) */ \
821 \
822 do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_array_object_object_signature, F_R) \
823 /* (symbols invoke_name and invoke_signature defined above) */ \
824 \
822 /*end*/ 825 /*end*/
826
823 827
824 828
825 829
826 // Class vmSymbols 830 // Class vmSymbols
827 831
933 VM_INTRINSICS_DO(VM_INTRINSIC_ENUM, 937 VM_INTRINSICS_DO(VM_INTRINSIC_ENUM,
934 VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) 938 VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE)
935 #undef VM_INTRINSIC_ENUM 939 #undef VM_INTRINSIC_ENUM
936 940
937 ID_LIMIT, 941 ID_LIMIT,
942 LAST_COMPILER_INLINE = _prefetchWriteStatic,
938 FIRST_ID = _none + 1 943 FIRST_ID = _none + 1
939 }; 944 };
940 945
941 enum Flags { 946 enum Flags {
942 // AccessFlags syndromes relevant to intrinsics. 947 // AccessFlags syndromes relevant to intrinsics.
970 static vmSymbols::SID name_for(ID id); 975 static vmSymbols::SID name_for(ID id);
971 static vmSymbols::SID signature_for(ID id); 976 static vmSymbols::SID signature_for(ID id);
972 static Flags flags_for(ID id); 977 static Flags flags_for(ID id);
973 978
974 static const char* short_name_as_C_string(ID id, char* buf, int size); 979 static const char* short_name_as_C_string(ID id, char* buf, int size);
980
981 // Access to intrinsic methods:
982 static methodOop method_for(ID id);
975 }; 983 };