244 int vtable_index // the vtable index |
244 int vtable_index // the vtable index |
245 ); |
245 ); |
246 |
246 |
247 void set_itable_call( |
247 void set_itable_call( |
248 Bytecodes::Code invoke_code, // the bytecode used; must be invokeinterface |
248 Bytecodes::Code invoke_code, // the bytecode used; must be invokeinterface |
249 methodHandle method, // the resolved interface method |
249 const methodHandle& method, // the resolved interface method |
250 int itable_index // index into itable for the method |
250 int itable_index // index into itable for the method |
251 ); |
251 ); |
252 |
252 |
253 void set_method_handle( |
253 void set_method_handle( |
254 constantPoolHandle cpool, // holding constant pool (required for locking) |
254 const constantPoolHandle& cpool, // holding constant pool (required for locking) |
255 const CallInfo &call_info // Call link information |
255 const CallInfo &call_info // Call link information |
256 ); |
256 ); |
257 |
257 |
258 void set_dynamic_call( |
258 void set_dynamic_call( |
259 constantPoolHandle cpool, // holding constant pool (required for locking) |
259 const constantPoolHandle& cpool, // holding constant pool (required for locking) |
260 const CallInfo &call_info // Call link information |
260 const CallInfo &call_info // Call link information |
261 ); |
261 ); |
262 |
262 |
263 // Common code for invokedynamic and MH invocations. |
263 // Common code for invokedynamic and MH invocations. |
264 |
264 |
274 // reference for the call site, but (if present) it *is* represented in |
274 // reference for the call site, but (if present) it *is* represented in |
275 // the Method* bound to the site. This means that static and dynamic |
275 // the Method* bound to the site. This means that static and dynamic |
276 // resolution logic needs to make slightly different assessments about the |
276 // resolution logic needs to make slightly different assessments about the |
277 // number and types of arguments. |
277 // number and types of arguments. |
278 void set_method_handle_common( |
278 void set_method_handle_common( |
279 constantPoolHandle cpool, // holding constant pool (required for locking) |
279 const constantPoolHandle& cpool, // holding constant pool (required for locking) |
280 Bytecodes::Code invoke_code, // _invokehandle or _invokedynamic |
280 Bytecodes::Code invoke_code, // _invokehandle or _invokedynamic |
281 const CallInfo &call_info // Call link information |
281 const CallInfo &call_info // Call link information |
282 ); |
282 ); |
283 |
283 |
284 // invokedynamic and invokehandle call sites have two entries in the |
284 // invokedynamic and invokehandle call sites have two entries in the |
289 _indy_resolved_references_appendix_offset = 0, |
289 _indy_resolved_references_appendix_offset = 0, |
290 _indy_resolved_references_method_type_offset = 1, |
290 _indy_resolved_references_method_type_offset = 1, |
291 _indy_resolved_references_entries |
291 _indy_resolved_references_entries |
292 }; |
292 }; |
293 |
293 |
294 Method* method_if_resolved(constantPoolHandle cpool); |
294 Method* method_if_resolved(const constantPoolHandle& cpool); |
295 oop appendix_if_resolved(constantPoolHandle cpool); |
295 oop appendix_if_resolved(const constantPoolHandle& cpool); |
296 oop method_type_if_resolved(constantPoolHandle cpool); |
296 oop method_type_if_resolved(const constantPoolHandle& cpool); |
297 |
297 |
298 void set_parameter_size(int value); |
298 void set_parameter_size(int value); |
299 |
299 |
300 // Which bytecode number (1 or 2) in the index field is valid for this bytecode? |
300 // Which bytecode number (1 or 2) in the index field is valid for this bytecode? |
301 // Returns -1 if neither is valid. |
301 // Returns -1 if neither is valid. |