220 Bytecodes::Code put_code, // the bytecode used for writing the field |
220 Bytecodes::Code put_code, // the bytecode used for writing the field |
221 Klass* field_holder, // the object/klass holding the field |
221 Klass* field_holder, // the object/klass holding the field |
222 int orig_field_index, // the original field index in the field holder |
222 int orig_field_index, // the original field index in the field holder |
223 int field_offset, // the field offset in words in the field holder |
223 int field_offset, // the field offset in words in the field holder |
224 TosState field_type, // the (machine) field type |
224 TosState field_type, // the (machine) field type |
225 bool is_final, // the field is final |
225 bool is_final, // the field is final |
226 bool is_volatile, // the field is volatile |
226 bool is_volatile, // the field is volatile |
227 Klass* root_klass // needed by the GC to dirty the klass |
227 Klass* root_klass // needed by the GC to dirty the klass |
228 ); |
228 ); |
229 |
229 |
230 private: |
230 private: |
231 void set_direct_or_vtable_call( |
231 void set_direct_or_vtable_call( |
232 Bytecodes::Code invoke_code, // the bytecode used for invoking the method |
232 Bytecodes::Code invoke_code, // the bytecode used for invoking the method |
233 methodHandle method, // the method/prototype if any (NULL, otherwise) |
233 const methodHandle& method, // the method/prototype if any (NULL, otherwise) |
234 int vtable_index, // the vtable index if any, else negative |
234 int vtable_index, // the vtable index if any, else negative |
235 bool sender_is_interface |
235 bool sender_is_interface |
236 ); |
236 ); |
237 |
237 |
238 public: |
238 public: |
239 void set_direct_call( // sets entry to exact concrete method entry |
239 void set_direct_call( // sets entry to exact concrete method entry |
240 Bytecodes::Code invoke_code, // the bytecode used for invoking the method |
240 Bytecodes::Code invoke_code, // the bytecode used for invoking the method |
241 methodHandle method, // the method to call |
241 const methodHandle& method, // the method to call |
242 bool sender_is_interface |
242 bool sender_is_interface |
243 ); |
243 ); |
244 |
244 |
245 void set_vtable_call( // sets entry to vtable index |
245 void set_vtable_call( // sets entry to vtable index |
246 Bytecodes::Code invoke_code, // the bytecode used for invoking the method |
246 Bytecodes::Code invoke_code, // the bytecode used for invoking the method |
247 methodHandle method, // resolved method which declares the vtable index |
247 const methodHandle& method, // resolved method which declares the vtable index |
248 int vtable_index // the vtable index |
248 int vtable_index // the vtable index |
249 ); |
249 ); |
250 |
250 |
251 void set_itable_call( |
251 void set_itable_call( |
252 Bytecodes::Code invoke_code, // the bytecode used; must be invokeinterface |
252 Bytecodes::Code invoke_code, // the bytecode used; must be invokeinterface |