Mercurial > hg > graal-compiler
comparison src/share/vm/classfile/vmSymbols.hpp @ 1144:9b9c1ee9b3f6
Merge
author | iveresov |
---|---|
date | Wed, 06 Jan 2010 22:21:39 -0800 |
parents | a5a6adfca6ec dd57230ba8fe |
children | d7f654633cfe |
comparison
equal
deleted
inserted
replaced
1129:a5a6adfca6ec | 1144:9b9c1ee9b3f6 |
---|---|
217 template(constantPoolOop_name, "constantPoolOop") \ | 217 template(constantPoolOop_name, "constantPoolOop") \ |
218 template(sun_reflect_UnsafeStaticFieldAccessorImpl, "sun/reflect/UnsafeStaticFieldAccessorImpl")\ | 218 template(sun_reflect_UnsafeStaticFieldAccessorImpl, "sun/reflect/UnsafeStaticFieldAccessorImpl")\ |
219 template(base_name, "base") \ | 219 template(base_name, "base") \ |
220 \ | 220 \ |
221 /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */ \ | 221 /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */ \ |
222 template(java_dyn_Dynamic, "java/dyn/Dynamic") \ | 222 template(java_dyn_InvokeDynamic, "java/dyn/InvokeDynamic") \ |
223 template(java_dyn_Linkage, "java/dyn/Linkage") \ | 223 template(java_dyn_Linkage, "java/dyn/Linkage") \ |
224 template(java_dyn_CallSite, "java/dyn/CallSite") \ | 224 template(java_dyn_CallSite, "java/dyn/CallSite") \ |
225 template(java_dyn_MethodHandle, "java/dyn/MethodHandle") \ | 225 template(java_dyn_MethodHandle, "java/dyn/MethodHandle") \ |
226 template(java_dyn_MethodType, "java/dyn/MethodType") \ | 226 template(java_dyn_MethodType, "java/dyn/MethodType") \ |
227 template(java_dyn_WrongMethodTypeException, "java/dyn/WrongMethodTypeException") \ | 227 template(java_dyn_WrongMethodTypeException, "java/dyn/WrongMethodTypeException") \ |
345 /* name symbols needed by intrinsics */ \ | 345 /* name symbols needed by intrinsics */ \ |
346 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, template, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \ | 346 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, template, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \ |
347 \ | 347 \ |
348 /* common signatures names */ \ | 348 /* common signatures names */ \ |
349 template(void_method_signature, "()V") \ | 349 template(void_method_signature, "()V") \ |
350 template(void_boolean_signature, "()Z") \ | |
351 template(void_byte_signature, "()B") \ | |
352 template(void_char_signature, "()C") \ | |
353 template(void_short_signature, "()S") \ | |
350 template(void_int_signature, "()I") \ | 354 template(void_int_signature, "()I") \ |
351 template(void_long_signature, "()J") \ | 355 template(void_long_signature, "()J") \ |
352 template(void_boolean_signature, "()Z") \ | 356 template(void_float_signature, "()F") \ |
357 template(void_double_signature, "()D") \ | |
353 template(int_void_signature, "(I)V") \ | 358 template(int_void_signature, "(I)V") \ |
354 template(int_int_signature, "(I)I") \ | 359 template(int_int_signature, "(I)I") \ |
355 template(int_bool_signature, "(I)Z") \ | 360 template(int_bool_signature, "(I)Z") \ |
356 template(float_int_signature, "(F)I") \ | 361 template(float_int_signature, "(F)I") \ |
357 template(double_long_signature, "(D)J") \ | 362 template(double_long_signature, "(D)J") \ |
852 do_intrinsic(_Object_init, java_lang_Object, object_initializer_name, void_method_signature, F_R) \ | 857 do_intrinsic(_Object_init, java_lang_Object, object_initializer_name, void_method_signature, F_R) \ |
853 /* (symbol object_initializer_name defined above) */ \ | 858 /* (symbol object_initializer_name defined above) */ \ |
854 \ | 859 \ |
855 do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_array_object_object_signature, F_R) \ | 860 do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_array_object_object_signature, F_R) \ |
856 /* (symbols invoke_name and invoke_signature defined above) */ \ | 861 /* (symbols invoke_name and invoke_signature defined above) */ \ |
862 do_intrinsic(_checkSpreadArgument, sun_dyn_MethodHandleImpl, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) \ | |
863 do_name( checkSpreadArgument_name, "checkSpreadArgument") \ | |
864 do_name( checkSpreadArgument_signature, "(Ljava/lang/Object;I)V") \ | |
865 \ | |
866 /* unboxing methods: */ \ | |
867 do_intrinsic(_booleanValue, java_lang_Boolean, booleanValue_name, void_boolean_signature, F_R) \ | |
868 do_name( booleanValue_name, "booleanValue") \ | |
869 do_intrinsic(_byteValue, java_lang_Byte, byteValue_name, void_byte_signature, F_R) \ | |
870 do_name( byteValue_name, "byteValue") \ | |
871 do_intrinsic(_charValue, java_lang_Character, charValue_name, void_char_signature, F_R) \ | |
872 do_name( charValue_name, "charValue") \ | |
873 do_intrinsic(_shortValue, java_lang_Short, shortValue_name, void_short_signature, F_R) \ | |
874 do_name( shortValue_name, "shortValue") \ | |
875 do_intrinsic(_intValue, java_lang_Integer, intValue_name, void_int_signature, F_R) \ | |
876 do_name( intValue_name, "intValue") \ | |
877 do_intrinsic(_longValue, java_lang_Long, longValue_name, void_long_signature, F_R) \ | |
878 do_name( longValue_name, "longValue") \ | |
879 do_intrinsic(_floatValue, java_lang_Float, floatValue_name, void_float_signature, F_R) \ | |
880 do_name( floatValue_name, "floatValue") \ | |
881 do_intrinsic(_doubleValue, java_lang_Double, doubleValue_name, void_double_signature, F_R) \ | |
882 do_name( doubleValue_name, "doubleValue") \ | |
883 \ | |
884 /* boxing methods: */ \ | |
885 do_name( valueOf_name, "valueOf") \ | |
886 do_intrinsic(_Boolean_valueOf, java_lang_Boolean, valueOf_name, Boolean_valueOf_signature, F_S) \ | |
887 do_name( Boolean_valueOf_signature, "(Z)Ljava/lang/Boolean;") \ | |
888 do_intrinsic(_Byte_valueOf, java_lang_Byte, valueOf_name, Byte_valueOf_signature, F_S) \ | |
889 do_name( Byte_valueOf_signature, "(B)Ljava/lang/Byte;") \ | |
890 do_intrinsic(_Character_valueOf, java_lang_Character, valueOf_name, Character_valueOf_signature, F_S) \ | |
891 do_name( Character_valueOf_signature, "(C)Ljava/lang/Character;") \ | |
892 do_intrinsic(_Short_valueOf, java_lang_Short, valueOf_name, Short_valueOf_signature, F_S) \ | |
893 do_name( Short_valueOf_signature, "(S)Ljava/lang/Short;") \ | |
894 do_intrinsic(_Integer_valueOf, java_lang_Integer, valueOf_name, Integer_valueOf_signature, F_S) \ | |
895 do_name( Integer_valueOf_signature, "(I)Ljava/lang/Integer;") \ | |
896 do_intrinsic(_Long_valueOf, java_lang_Long, valueOf_name, Long_valueOf_signature, F_S) \ | |
897 do_name( Long_valueOf_signature, "(J)Ljava/lang/Long;") \ | |
898 do_intrinsic(_Float_valueOf, java_lang_Float, valueOf_name, Float_valueOf_signature, F_S) \ | |
899 do_name( Float_valueOf_signature, "(F)Ljava/lang/Float;") \ | |
900 do_intrinsic(_Double_valueOf, java_lang_Double, valueOf_name, Double_valueOf_signature, F_S) \ | |
901 do_name( Double_valueOf_signature, "(D)Ljava/lang/Double;") \ | |
857 \ | 902 \ |
858 /*end*/ | 903 /*end*/ |
859 | 904 |
860 | 905 |
861 | 906 |
982 F_R, // !static ?native !synchronized (R="regular") | 1027 F_R, // !static ?native !synchronized (R="regular") |
983 F_S, // static ?native !synchronized | 1028 F_S, // static ?native !synchronized |
984 F_Y, // !static ?native synchronized | 1029 F_Y, // !static ?native synchronized |
985 F_RN, // !static native !synchronized | 1030 F_RN, // !static native !synchronized |
986 F_SN, // static native !synchronized | 1031 F_SN, // static native !synchronized |
987 F_RNY // !static native synchronized | 1032 F_RNY, // !static native synchronized |
1033 | |
1034 FLAG_LIMIT | |
1035 }; | |
1036 enum { | |
1037 log2_FLAG_LIMIT = 4 // checked by an assert at start-up | |
988 }; | 1038 }; |
989 | 1039 |
990 public: | 1040 public: |
991 static ID ID_from(int raw_id) { | 1041 static ID ID_from(int raw_id) { |
992 assert(raw_id >= (int)_none && raw_id < (int)ID_LIMIT, | 1042 assert(raw_id >= (int)_none && raw_id < (int)ID_LIMIT, |
994 return (ID)raw_id; | 1044 return (ID)raw_id; |
995 } | 1045 } |
996 | 1046 |
997 static const char* name_at(ID id); | 1047 static const char* name_at(ID id); |
998 | 1048 |
1049 private: | |
1050 static ID find_id_impl(vmSymbols::SID holder, | |
1051 vmSymbols::SID name, | |
1052 vmSymbols::SID sig, | |
1053 jshort flags); | |
1054 | |
1055 public: | |
999 // Given a method's class, name, signature, and access flags, report its ID. | 1056 // Given a method's class, name, signature, and access flags, report its ID. |
1000 static ID find_id(vmSymbols::SID holder, | 1057 static ID find_id(vmSymbols::SID holder, |
1001 vmSymbols::SID name, | 1058 vmSymbols::SID name, |
1002 vmSymbols::SID sig, | 1059 vmSymbols::SID sig, |
1003 jshort flags); | 1060 jshort flags) { |
1061 ID id = find_id_impl(holder, name, sig, flags); | |
1062 #ifdef ASSERT | |
1063 // ID _none does not hold the following asserts. | |
1064 if (id == _none) return id; | |
1065 #endif | |
1066 assert( class_for(id) == holder, "correct id"); | |
1067 assert( name_for(id) == name, "correct id"); | |
1068 assert(signature_for(id) == sig, "correct id"); | |
1069 return id; | |
1070 } | |
1004 | 1071 |
1005 static void verify_method(ID actual_id, methodOop m) PRODUCT_RETURN; | 1072 static void verify_method(ID actual_id, methodOop m) PRODUCT_RETURN; |
1006 | 1073 |
1007 // No need for these in the product: | 1074 // Find out the symbols behind an intrinsic: |
1008 static vmSymbols::SID class_for(ID id); | 1075 static vmSymbols::SID class_for(ID id); |
1009 static vmSymbols::SID name_for(ID id); | 1076 static vmSymbols::SID name_for(ID id); |
1010 static vmSymbols::SID signature_for(ID id); | 1077 static vmSymbols::SID signature_for(ID id); |
1011 static Flags flags_for(ID id); | 1078 static Flags flags_for(ID id); |
1012 | 1079 |
1013 static const char* short_name_as_C_string(ID id, char* buf, int size); | 1080 static const char* short_name_as_C_string(ID id, char* buf, int size); |
1014 | 1081 |
1015 // Access to intrinsic methods: | 1082 // Access to intrinsic methods: |
1016 static methodOop method_for(ID id); | 1083 static methodOop method_for(ID id); |
1084 | |
1085 // Wrapper object methods: | |
1086 static ID for_boxing(BasicType type); | |
1087 static ID for_unboxing(BasicType type); | |
1088 | |
1089 // Raw conversion: | |
1090 static ID for_raw_conversion(BasicType src, BasicType dest); | |
1017 }; | 1091 }; |