72 static ciKlassKlass* _klass_klass_instance; |
72 static ciKlassKlass* _klass_klass_instance; |
73 static ciInstanceKlassKlass* _instance_klass_klass_instance; |
73 static ciInstanceKlassKlass* _instance_klass_klass_instance; |
74 static ciTypeArrayKlassKlass* _type_array_klass_klass_instance; |
74 static ciTypeArrayKlassKlass* _type_array_klass_klass_instance; |
75 static ciObjArrayKlassKlass* _obj_array_klass_klass_instance; |
75 static ciObjArrayKlassKlass* _obj_array_klass_klass_instance; |
76 |
76 |
77 static ciInstanceKlass* _ArrayStoreException; |
77 #define WK_KLASS_DECL(name, ignore_s, ignore_o) static ciInstanceKlass* _##name; |
78 static ciInstanceKlass* _Class; |
78 WK_KLASSES_DO(WK_KLASS_DECL) |
79 static ciInstanceKlass* _ClassCastException; |
79 #undef WK_KLASS_DECL |
80 static ciInstanceKlass* _InvokeDynamic; |
|
81 static ciInstanceKlass* _Object; |
|
82 static ciInstanceKlass* _Throwable; |
|
83 static ciInstanceKlass* _Thread; |
|
84 static ciInstanceKlass* _OutOfMemoryError; |
|
85 static ciInstanceKlass* _String; |
|
86 static ciInstanceKlass* _StringBuffer; |
|
87 static ciInstanceKlass* _StringBuilder; |
|
88 static ciInstanceKlass* _Integer; |
|
89 |
80 |
90 static ciSymbol* _unloaded_cisymbol; |
81 static ciSymbol* _unloaded_cisymbol; |
91 static ciInstanceKlass* _unloaded_ciinstance_klass; |
82 static ciInstanceKlass* _unloaded_ciinstance_klass; |
92 static ciObjArrayKlass* _unloaded_ciobjarrayklass; |
83 static ciObjArrayKlass* _unloaded_ciobjarrayklass; |
93 |
84 |
299 bool has_debug_info = true, |
290 bool has_debug_info = true, |
300 bool has_unsafe_access = false); |
291 bool has_unsafe_access = false); |
301 |
292 |
302 |
293 |
303 // Access to certain well known ciObjects. |
294 // Access to certain well known ciObjects. |
304 ciInstanceKlass* ArrayStoreException_klass() { |
295 #define WK_KLASS_FUNC(name, ignore_s, ignore_o) \ |
305 return _ArrayStoreException; |
296 ciInstanceKlass* name() { \ |
306 } |
297 return _##name;\ |
307 ciInstanceKlass* Class_klass() { |
298 } |
308 return _Class; |
299 WK_KLASSES_DO(WK_KLASS_FUNC) |
309 } |
300 #undef WK_KLASS_FUNC |
310 ciInstanceKlass* ClassCastException_klass() { |
301 |
311 return _ClassCastException; |
|
312 } |
|
313 ciInstanceKlass* InvokeDynamic_klass() { |
|
314 return _InvokeDynamic; |
|
315 } |
|
316 ciInstanceKlass* Object_klass() { |
|
317 return _Object; |
|
318 } |
|
319 ciInstanceKlass* Throwable_klass() { |
|
320 return _Throwable; |
|
321 } |
|
322 ciInstanceKlass* Thread_klass() { |
|
323 return _Thread; |
|
324 } |
|
325 ciInstanceKlass* OutOfMemoryError_klass() { |
|
326 return _OutOfMemoryError; |
|
327 } |
|
328 ciInstanceKlass* String_klass() { |
|
329 return _String; |
|
330 } |
|
331 ciInstanceKlass* StringBuilder_klass() { |
|
332 return _StringBuilder; |
|
333 } |
|
334 ciInstanceKlass* StringBuffer_klass() { |
|
335 return _StringBuffer; |
|
336 } |
|
337 ciInstanceKlass* Integer_klass() { |
|
338 return _Integer; |
|
339 } |
|
340 ciInstance* NullPointerException_instance() { |
302 ciInstance* NullPointerException_instance() { |
341 assert(_NullPointerException_instance != NULL, "initialization problem"); |
303 assert(_NullPointerException_instance != NULL, "initialization problem"); |
342 return _NullPointerException_instance; |
304 return _NullPointerException_instance; |
343 } |
305 } |
344 ciInstance* ArithmeticException_instance() { |
306 ciInstance* ArithmeticException_instance() { |