279 static methodHandle resolve_interface_call_or_null(KlassHandle receiver_klass,
280 const LinkInfo& link_info);
281 static methodHandle resolve_static_call_or_null (const LinkInfo& link_info);
282 static methodHandle resolve_special_call_or_null (const LinkInfo& link_info);
283
284 static int vtable_index_of_interface_method(KlassHandle klass, const methodHandle& resolved_method);
285
286 // same as above for compile-time resolution; returns vtable_index if current_klass if linked
287 static int resolve_virtual_vtable_index (KlassHandle receiver_klass,
288 const LinkInfo& link_info);
289
290 // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful)
291 static methodHandle linktime_resolve_virtual_method_or_null (const LinkInfo& link_info);
292 static methodHandle linktime_resolve_interface_method_or_null(const LinkInfo& link_info);
293
294 // runtime resolving from constant pool
295 static void resolve_invoke(CallInfo& result, Handle recv,
296 const constantPoolHandle& pool, int index,
297 Bytecodes::Code byte, TRAPS);
298 private:
299 static void trace_method_resolution(const char* prefix, KlassHandle klass,
300 KlassHandle resolved_klass,
301 const methodHandle& method) PRODUCT_RETURN;
302 };
303 #endif // SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
|
279 static methodHandle resolve_interface_call_or_null(KlassHandle receiver_klass,
280 const LinkInfo& link_info);
281 static methodHandle resolve_static_call_or_null (const LinkInfo& link_info);
282 static methodHandle resolve_special_call_or_null (const LinkInfo& link_info);
283
284 static int vtable_index_of_interface_method(KlassHandle klass, const methodHandle& resolved_method);
285
286 // same as above for compile-time resolution; returns vtable_index if current_klass if linked
287 static int resolve_virtual_vtable_index (KlassHandle receiver_klass,
288 const LinkInfo& link_info);
289
290 // static resolving for compiler (does not throw exceptions, returns null handle if unsuccessful)
291 static methodHandle linktime_resolve_virtual_method_or_null (const LinkInfo& link_info);
292 static methodHandle linktime_resolve_interface_method_or_null(const LinkInfo& link_info);
293
294 // runtime resolving from constant pool
295 static void resolve_invoke(CallInfo& result, Handle recv,
296 const constantPoolHandle& pool, int index,
297 Bytecodes::Code byte, TRAPS);
298 private:
299 static void trace_method_resolution(outputStream* st,
300 const char* prefix, KlassHandle klass,
301 KlassHandle resolved_klass,
302 const methodHandle& method) PRODUCT_RETURN;
303 };
304 #endif // SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
|