< prev index next >

src/share/vm/interpreter/rewriter.hpp

Print this page




 176     return ref_index;
 177   }
 178 
 179   int resolved_references_entry_to_pool_index(int ref_index) {
 180     int cp_index = _resolved_references_map.at(ref_index);
 181     return cp_index;
 182   }
 183 
 184   // Access the contents of _cp_cache_map to determine CP cache layout.
 185   int cp_cache_entry_pool_index(int cache_index) {
 186     int cp_index = _cp_cache_map.at(cache_index);
 187     return cp_index;
 188   }
 189 
 190   // All the work goes in here:
 191   Rewriter(InstanceKlass* klass, const constantPoolHandle& cpool, Array<Method*>* methods, TRAPS);
 192 
 193   void compute_index_maps();
 194   void make_constant_pool_cache(TRAPS);
 195   void scan_method(Method* m, bool reverse, bool* invokespecial_error);
 196   void rewrite_Object_init(methodHandle m, TRAPS);
 197   void rewrite_member_reference(address bcp, int offset, bool reverse);
 198   void maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse);
 199   void rewrite_invokedynamic(address bcp, int offset, bool reverse);
 200   void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse);
 201   void rewrite_invokespecial(address bcp, int offset, bool reverse, bool* invokespecial_error);
 202 
 203   void patch_invokedynamic_bytecodes();
 204 
 205   // Do all the work.
 206   void rewrite_bytecodes(TRAPS);
 207 
 208   // Revert bytecodes in case of an exception.
 209   void restore_bytecodes();
 210 
 211   static methodHandle rewrite_jsrs(methodHandle m, TRAPS);
 212  public:
 213   // Driver routine:
 214   static void rewrite(InstanceKlass* klass, TRAPS);
 215 };
 216 
 217 #endif // SHARE_VM_INTERPRETER_REWRITER_HPP


 176     return ref_index;
 177   }
 178 
 179   int resolved_references_entry_to_pool_index(int ref_index) {
 180     int cp_index = _resolved_references_map.at(ref_index);
 181     return cp_index;
 182   }
 183 
 184   // Access the contents of _cp_cache_map to determine CP cache layout.
 185   int cp_cache_entry_pool_index(int cache_index) {
 186     int cp_index = _cp_cache_map.at(cache_index);
 187     return cp_index;
 188   }
 189 
 190   // All the work goes in here:
 191   Rewriter(InstanceKlass* klass, const constantPoolHandle& cpool, Array<Method*>* methods, TRAPS);
 192 
 193   void compute_index_maps();
 194   void make_constant_pool_cache(TRAPS);
 195   void scan_method(Method* m, bool reverse, bool* invokespecial_error);
 196   void rewrite_Object_init(const methodHandle& m, TRAPS);
 197   void rewrite_member_reference(address bcp, int offset, bool reverse);
 198   void maybe_rewrite_invokehandle(address opc, int cp_index, int cache_index, bool reverse);
 199   void rewrite_invokedynamic(address bcp, int offset, bool reverse);
 200   void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse);
 201   void rewrite_invokespecial(address bcp, int offset, bool reverse, bool* invokespecial_error);
 202 
 203   void patch_invokedynamic_bytecodes();
 204 
 205   // Do all the work.
 206   void rewrite_bytecodes(TRAPS);
 207 
 208   // Revert bytecodes in case of an exception.
 209   void restore_bytecodes();
 210 
 211   static methodHandle rewrite_jsrs(const methodHandle& m, TRAPS);
 212  public:
 213   // Driver routine:
 214   static void rewrite(InstanceKlass* klass, TRAPS);
 215 };
 216 
 217 #endif // SHARE_VM_INTERPRETER_REWRITER_HPP
< prev index next >