src/share/vm/ci/ciEnv.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6829187 Sdiff src/share/vm/ci

src/share/vm/ci/ciEnv.hpp

Print this page
rev 1082 : [mq]: indy.compiler.patch


  60   bool  _jvmti_can_post_exceptions;
  61 
  62   // Cache DTrace flags
  63   bool  _dtrace_extended_probes;
  64   bool  _dtrace_monitor_probes;
  65   bool  _dtrace_method_probes;
  66   bool  _dtrace_alloc_probes;
  67 
  68   // Distinguished instances of certain ciObjects..
  69   static ciObject*              _null_object_instance;
  70   static ciMethodKlass*         _method_klass_instance;
  71   static ciSymbolKlass*         _symbol_klass_instance;
  72   static ciKlassKlass*          _klass_klass_instance;
  73   static ciInstanceKlassKlass*  _instance_klass_klass_instance;
  74   static ciTypeArrayKlassKlass* _type_array_klass_klass_instance;
  75   static ciObjArrayKlassKlass*  _obj_array_klass_klass_instance;
  76 
  77   static ciInstanceKlass* _ArrayStoreException;
  78   static ciInstanceKlass* _Class;
  79   static ciInstanceKlass* _ClassCastException;

  80   static ciInstanceKlass* _Object;
  81   static ciInstanceKlass* _Throwable;
  82   static ciInstanceKlass* _Thread;
  83   static ciInstanceKlass* _OutOfMemoryError;
  84   static ciInstanceKlass* _String;
  85   static ciInstanceKlass* _StringBuffer;
  86   static ciInstanceKlass* _StringBuilder;
  87   static ciInstanceKlass* _Integer;
  88 
  89   static ciSymbol*        _unloaded_cisymbol;
  90   static ciInstanceKlass* _unloaded_ciinstance_klass;
  91   static ciObjArrayKlass* _unloaded_ciobjarrayklass;
  92 
  93   static jobject _ArrayIndexOutOfBoundsException_handle;
  94   static jobject _ArrayStoreException_handle;
  95   static jobject _ClassCastException_handle;
  96 
  97   ciInstance* _NullPointerException_instance;
  98   ciInstance* _ArithmeticException_instance;
  99   ciInstance* _ArrayIndexOutOfBoundsException_instance;


 134   ciMethod*  get_method_by_index(ciInstanceKlass* loading_klass,
 135                                  int method_index, Bytecodes::Code bc);
 136 
 137   // Implementation methods for loading and constant pool access.
 138   ciKlass* get_klass_by_name_impl(ciKlass* accessing_klass,
 139                                   ciSymbol* klass_name,
 140                                   bool require_local);
 141   ciKlass*   get_klass_by_index_impl(ciInstanceKlass* loading_klass,
 142                                      int klass_index,
 143                                      bool& is_accessible);
 144   ciConstant get_constant_by_index_impl(ciInstanceKlass* loading_klass,
 145                                         int constant_index);
 146   bool       is_unresolved_string_impl (instanceKlass* loading_klass,
 147                                         int constant_index) const;
 148   bool       is_unresolved_klass_impl (instanceKlass* loading_klass,
 149                                         int constant_index) const;
 150   ciField*   get_field_by_index_impl(ciInstanceKlass* loading_klass,
 151                                      int field_index);
 152   ciMethod*  get_method_by_index_impl(ciInstanceKlass* loading_klass,
 153                                       int method_index, Bytecodes::Code bc);


 154 
 155   // Helper methods
 156   bool       check_klass_accessibility(ciKlass* accessing_klass,
 157                                       klassOop resolved_klassOop);
 158   methodOop  lookup_method(instanceKlass*  accessor,
 159                            instanceKlass*  holder,
 160                            symbolOop       name,
 161                            symbolOop       sig,
 162                            Bytecodes::Code bc);
 163 
 164   // Get a ciObject from the object factory.  Ensures uniqueness
 165   // of ciObjects.
 166   ciObject* get_object(oop o) {
 167     if (o == NULL) {
 168       return _null_object_instance;
 169     } else {
 170       return _factory->get(o);
 171     }
 172   }
 173 


 284                        int                       frame_words,
 285                        OopMapSet*                oop_map_set,
 286                        ExceptionHandlerTable*    handler_table,
 287                        ImplicitExceptionTable*   inc_table,
 288                        AbstractCompiler*         compiler,
 289                        int                       comp_level,
 290                        bool                      has_debug_info = true,
 291                        bool                      has_unsafe_access = false);
 292 
 293 
 294   // Access to certain well known ciObjects.
 295   ciInstanceKlass* ArrayStoreException_klass() {
 296     return _ArrayStoreException;
 297   }
 298   ciInstanceKlass* Class_klass() {
 299     return _Class;
 300   }
 301   ciInstanceKlass* ClassCastException_klass() {
 302     return _ClassCastException;
 303   }



 304   ciInstanceKlass* Object_klass() {
 305     return _Object;
 306   }
 307   ciInstanceKlass* Throwable_klass() {
 308     return _Throwable;
 309   }
 310   ciInstanceKlass* Thread_klass() {
 311     return _Thread;
 312   }
 313   ciInstanceKlass* OutOfMemoryError_klass() {
 314     return _OutOfMemoryError;
 315   }
 316   ciInstanceKlass* String_klass() {
 317     return _String;
 318   }
 319   ciInstanceKlass* StringBuilder_klass() {
 320     return _StringBuilder;
 321   }
 322   ciInstanceKlass* StringBuffer_klass() {
 323     return _StringBuffer;




  60   bool  _jvmti_can_post_exceptions;
  61 
  62   // Cache DTrace flags
  63   bool  _dtrace_extended_probes;
  64   bool  _dtrace_monitor_probes;
  65   bool  _dtrace_method_probes;
  66   bool  _dtrace_alloc_probes;
  67 
  68   // Distinguished instances of certain ciObjects..
  69   static ciObject*              _null_object_instance;
  70   static ciMethodKlass*         _method_klass_instance;
  71   static ciSymbolKlass*         _symbol_klass_instance;
  72   static ciKlassKlass*          _klass_klass_instance;
  73   static ciInstanceKlassKlass*  _instance_klass_klass_instance;
  74   static ciTypeArrayKlassKlass* _type_array_klass_klass_instance;
  75   static ciObjArrayKlassKlass*  _obj_array_klass_klass_instance;
  76 
  77   static ciInstanceKlass* _ArrayStoreException;
  78   static ciInstanceKlass* _Class;
  79   static ciInstanceKlass* _ClassCastException;
  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 
  90   static ciSymbol*        _unloaded_cisymbol;
  91   static ciInstanceKlass* _unloaded_ciinstance_klass;
  92   static ciObjArrayKlass* _unloaded_ciobjarrayklass;
  93 
  94   static jobject _ArrayIndexOutOfBoundsException_handle;
  95   static jobject _ArrayStoreException_handle;
  96   static jobject _ClassCastException_handle;
  97 
  98   ciInstance* _NullPointerException_instance;
  99   ciInstance* _ArithmeticException_instance;
 100   ciInstance* _ArrayIndexOutOfBoundsException_instance;


 135   ciMethod*  get_method_by_index(ciInstanceKlass* loading_klass,
 136                                  int method_index, Bytecodes::Code bc);
 137 
 138   // Implementation methods for loading and constant pool access.
 139   ciKlass* get_klass_by_name_impl(ciKlass* accessing_klass,
 140                                   ciSymbol* klass_name,
 141                                   bool require_local);
 142   ciKlass*   get_klass_by_index_impl(ciInstanceKlass* loading_klass,
 143                                      int klass_index,
 144                                      bool& is_accessible);
 145   ciConstant get_constant_by_index_impl(ciInstanceKlass* loading_klass,
 146                                         int constant_index);
 147   bool       is_unresolved_string_impl (instanceKlass* loading_klass,
 148                                         int constant_index) const;
 149   bool       is_unresolved_klass_impl (instanceKlass* loading_klass,
 150                                         int constant_index) const;
 151   ciField*   get_field_by_index_impl(ciInstanceKlass* loading_klass,
 152                                      int field_index);
 153   ciMethod*  get_method_by_index_impl(ciInstanceKlass* loading_klass,
 154                                       int method_index, Bytecodes::Code bc);
 155   ciMethod*  get_fake_invokedynamic_method_impl(ciInstanceKlass* accessor,
 156                                                 int index, Bytecodes::Code bc);
 157 
 158   // Helper methods
 159   bool       check_klass_accessibility(ciKlass* accessing_klass,
 160                                       klassOop resolved_klassOop);
 161   methodOop  lookup_method(instanceKlass*  accessor,
 162                            instanceKlass*  holder,
 163                            symbolOop       name,
 164                            symbolOop       sig,
 165                            Bytecodes::Code bc);
 166 
 167   // Get a ciObject from the object factory.  Ensures uniqueness
 168   // of ciObjects.
 169   ciObject* get_object(oop o) {
 170     if (o == NULL) {
 171       return _null_object_instance;
 172     } else {
 173       return _factory->get(o);
 174     }
 175   }
 176 


 287                        int                       frame_words,
 288                        OopMapSet*                oop_map_set,
 289                        ExceptionHandlerTable*    handler_table,
 290                        ImplicitExceptionTable*   inc_table,
 291                        AbstractCompiler*         compiler,
 292                        int                       comp_level,
 293                        bool                      has_debug_info = true,
 294                        bool                      has_unsafe_access = false);
 295 
 296 
 297   // Access to certain well known ciObjects.
 298   ciInstanceKlass* ArrayStoreException_klass() {
 299     return _ArrayStoreException;
 300   }
 301   ciInstanceKlass* Class_klass() {
 302     return _Class;
 303   }
 304   ciInstanceKlass* ClassCastException_klass() {
 305     return _ClassCastException;
 306   }
 307   ciInstanceKlass* InvokeDynamic_klass() {
 308     return _InvokeDynamic;
 309   }
 310   ciInstanceKlass* Object_klass() {
 311     return _Object;
 312   }
 313   ciInstanceKlass* Throwable_klass() {
 314     return _Throwable;
 315   }
 316   ciInstanceKlass* Thread_klass() {
 317     return _Thread;
 318   }
 319   ciInstanceKlass* OutOfMemoryError_klass() {
 320     return _OutOfMemoryError;
 321   }
 322   ciInstanceKlass* String_klass() {
 323     return _String;
 324   }
 325   ciInstanceKlass* StringBuilder_klass() {
 326     return _StringBuilder;
 327   }
 328   ciInstanceKlass* StringBuffer_klass() {
 329     return _StringBuffer;


src/share/vm/ci/ciEnv.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File