26 # include "incls/_constantTag.cpp.incl" |
26 # include "incls/_constantTag.cpp.incl" |
27 |
27 |
28 #ifndef PRODUCT |
28 #ifndef PRODUCT |
29 |
29 |
30 void constantTag::print_on(outputStream* st) const { |
30 void constantTag::print_on(outputStream* st) const { |
|
31 st->print(internal_name()); |
|
32 } |
|
33 |
|
34 #endif // PRODUCT |
|
35 |
|
36 BasicType constantTag::basic_type() const { |
31 switch (_tag) { |
37 switch (_tag) { |
|
38 case JVM_CONSTANT_Integer : |
|
39 return T_INT; |
|
40 case JVM_CONSTANT_Float : |
|
41 return T_FLOAT; |
|
42 case JVM_CONSTANT_Long : |
|
43 return T_LONG; |
|
44 case JVM_CONSTANT_Double : |
|
45 return T_DOUBLE; |
|
46 |
32 case JVM_CONSTANT_Class : |
47 case JVM_CONSTANT_Class : |
33 st->print("Class"); |
|
34 break; |
|
35 case JVM_CONSTANT_Fieldref : |
|
36 st->print("Field"); |
|
37 break; |
|
38 case JVM_CONSTANT_Methodref : |
|
39 st->print("Method"); |
|
40 break; |
|
41 case JVM_CONSTANT_InterfaceMethodref : |
|
42 st->print("InterfaceMethod"); |
|
43 break; |
|
44 case JVM_CONSTANT_String : |
48 case JVM_CONSTANT_String : |
45 st->print("String"); |
|
46 break; |
|
47 case JVM_CONSTANT_Integer : |
|
48 st->print("Integer"); |
|
49 break; |
|
50 case JVM_CONSTANT_Float : |
|
51 st->print("Float"); |
|
52 break; |
|
53 case JVM_CONSTANT_Long : |
|
54 st->print("Long"); |
|
55 break; |
|
56 case JVM_CONSTANT_Double : |
|
57 st->print("Double"); |
|
58 break; |
|
59 case JVM_CONSTANT_NameAndType : |
|
60 st->print("NameAndType"); |
|
61 break; |
|
62 case JVM_CONSTANT_Utf8 : |
|
63 st->print("Utf8"); |
|
64 break; |
|
65 case JVM_CONSTANT_UnresolvedClass : |
49 case JVM_CONSTANT_UnresolvedClass : |
66 st->print("Unresolved class"); |
50 case JVM_CONSTANT_UnresolvedClassInError : |
67 break; |
|
68 case JVM_CONSTANT_ClassIndex : |
51 case JVM_CONSTANT_ClassIndex : |
69 st->print("Unresolved class index"); |
|
70 break; |
|
71 case JVM_CONSTANT_UnresolvedString : |
52 case JVM_CONSTANT_UnresolvedString : |
72 st->print("Unresolved string"); |
|
73 break; |
|
74 case JVM_CONSTANT_StringIndex : |
53 case JVM_CONSTANT_StringIndex : |
75 st->print("Unresolved string index"); |
54 case JVM_CONSTANT_MethodHandle : |
76 break; |
55 case JVM_CONSTANT_MethodType : |
|
56 case JVM_CONSTANT_Object : |
|
57 return T_OBJECT; |
77 default: |
58 default: |
78 ShouldNotReachHere(); |
59 ShouldNotReachHere(); |
79 break; |
60 return T_ILLEGAL; |
80 } |
61 } |
81 } |
62 } |
82 |
63 |
83 #endif // PRODUCT |
64 |
|
65 |
|
66 const char* constantTag::internal_name() const { |
|
67 switch (_tag) { |
|
68 case JVM_CONSTANT_Invalid : |
|
69 return "Invalid index"; |
|
70 case JVM_CONSTANT_Class : |
|
71 return "Class"; |
|
72 case JVM_CONSTANT_Fieldref : |
|
73 return "Field"; |
|
74 case JVM_CONSTANT_Methodref : |
|
75 return "Method"; |
|
76 case JVM_CONSTANT_InterfaceMethodref : |
|
77 return "InterfaceMethod"; |
|
78 case JVM_CONSTANT_String : |
|
79 return "String"; |
|
80 case JVM_CONSTANT_Integer : |
|
81 return "Integer"; |
|
82 case JVM_CONSTANT_Float : |
|
83 return "Float"; |
|
84 case JVM_CONSTANT_Long : |
|
85 return "Long"; |
|
86 case JVM_CONSTANT_Double : |
|
87 return "Double"; |
|
88 case JVM_CONSTANT_NameAndType : |
|
89 return "NameAndType"; |
|
90 case JVM_CONSTANT_MethodHandle : |
|
91 return "MethodHandle"; |
|
92 case JVM_CONSTANT_MethodType : |
|
93 return "MethodType"; |
|
94 case JVM_CONSTANT_Object : |
|
95 return "Object"; |
|
96 case JVM_CONSTANT_Utf8 : |
|
97 return "Utf8"; |
|
98 case JVM_CONSTANT_UnresolvedClass : |
|
99 return "Unresolved Class"; |
|
100 case JVM_CONSTANT_UnresolvedClassInError : |
|
101 return "Unresolved Class Error"; |
|
102 case JVM_CONSTANT_ClassIndex : |
|
103 return "Unresolved Class Index"; |
|
104 case JVM_CONSTANT_UnresolvedString : |
|
105 return "Unresolved String"; |
|
106 case JVM_CONSTANT_StringIndex : |
|
107 return "Unresolved String Index"; |
|
108 default: |
|
109 ShouldNotReachHere(); |
|
110 return "Illegal"; |
|
111 } |
|
112 } |