comparison src/share/vm/ci/ciInstanceKlass.hpp @ 1138:dd57230ba8fe

6893268: additional dynamic language related optimizations in C2 Summary: C2 needs some additional optimizations to be able to handle MethodHandle invokes and invokedynamic instructions at the best performance. Reviewed-by: kvn, never
author twisti
date Tue, 05 Jan 2010 15:21:25 +0100
parents 7c57aead6d3e
children 5571b97fc1ec c18cbe5936b8
comparison
equal deleted inserted replaced
1137:97125851f396 1138:dd57230ba8fe
27 // This class represents a klassOop in the HotSpot virtual machine 27 // This class represents a klassOop in the HotSpot virtual machine
28 // whose Klass part is an instanceKlass. It may or may not 28 // whose Klass part is an instanceKlass. It may or may not
29 // be loaded. 29 // be loaded.
30 class ciInstanceKlass : public ciKlass { 30 class ciInstanceKlass : public ciKlass {
31 CI_PACKAGE_ACCESS 31 CI_PACKAGE_ACCESS
32 friend class ciBytecodeStream;
32 friend class ciEnv; 33 friend class ciEnv;
34 friend class ciExceptionHandler;
33 friend class ciMethod; 35 friend class ciMethod;
34 friend class ciField; 36 friend class ciField;
35 friend class ciBytecodeStream;
36 37
37 private: 38 private:
38 jobject _loader; 39 jobject _loader;
39 jobject _protection_domain; 40 jobject _protection_domain;
40 41
75 76
76 oop protection_domain(); 77 oop protection_domain();
77 jobject protection_domain_handle(); 78 jobject protection_domain_handle();
78 79
79 const char* type_string() { return "ciInstanceKlass"; } 80 const char* type_string() { return "ciInstanceKlass"; }
81
82 bool is_in_package_impl(const char* packagename, int len);
80 83
81 void print_impl(outputStream* st); 84 void print_impl(outputStream* st);
82 85
83 ciConstantPoolCache* field_cache(); 86 ciConstantPoolCache* field_cache();
84 87
194 // Is the defining class loader of this class the default loader? 197 // Is the defining class loader of this class the default loader?
195 bool uses_default_loader(); 198 bool uses_default_loader();
196 199
197 bool is_java_lang_Object(); 200 bool is_java_lang_Object();
198 201
202 // Is this klass in the given package?
203 bool is_in_package(const char* packagename) {
204 return is_in_package(packagename, (int) strlen(packagename));
205 }
206 bool is_in_package(const char* packagename, int len);
207
199 // What kind of ciObject is this? 208 // What kind of ciObject is this?
200 bool is_instance_klass() { return true; } 209 bool is_instance_klass() { return true; }
201 bool is_java_klass() { return true; } 210 bool is_java_klass() { return true; }
202 }; 211 };