53 methodHandle _selected_method; // dynamic (actual) target method |
53 methodHandle _selected_method; // dynamic (actual) target method |
54 CallKind _call_kind; // kind of call (static(=bytecode static/special + |
54 CallKind _call_kind; // kind of call (static(=bytecode static/special + |
55 // others inferred), vtable, itable) |
55 // others inferred), vtable, itable) |
56 int _call_index; // vtable or itable index of selected class method (if any) |
56 int _call_index; // vtable or itable index of selected class method (if any) |
57 Handle _resolved_appendix; // extra argument in constant pool (if CPCE::has_appendix) |
57 Handle _resolved_appendix; // extra argument in constant pool (if CPCE::has_appendix) |
58 Handle _resolved_method_type; // MethodType (for invokedynamic and invokehandle call sites) |
|
59 Handle _resolved_method_name; // Object holding the ResolvedMethodName |
58 Handle _resolved_method_name; // Object holding the ResolvedMethodName |
60 |
59 |
61 void set_static(Klass* resolved_klass, const methodHandle& resolved_method, TRAPS); |
60 void set_static(Klass* resolved_klass, const methodHandle& resolved_method, TRAPS); |
62 void set_interface(Klass* resolved_klass, Klass* selected_klass, |
61 void set_interface(Klass* resolved_klass, Klass* selected_klass, |
63 const methodHandle& resolved_method, |
62 const methodHandle& resolved_method, |
66 void set_virtual(Klass* resolved_klass, Klass* selected_klass, |
65 void set_virtual(Klass* resolved_klass, Klass* selected_klass, |
67 const methodHandle& resolved_method, |
66 const methodHandle& resolved_method, |
68 const methodHandle& selected_method, |
67 const methodHandle& selected_method, |
69 int vtable_index, TRAPS); |
68 int vtable_index, TRAPS); |
70 void set_handle(const methodHandle& resolved_method, |
69 void set_handle(const methodHandle& resolved_method, |
71 Handle resolved_appendix, Handle resolved_method_type, TRAPS); |
70 Handle resolved_appendix, TRAPS); |
72 void set_handle(Klass* resolved_klass, |
71 void set_handle(Klass* resolved_klass, |
73 const methodHandle& resolved_method, |
72 const methodHandle& resolved_method, |
74 Handle resolved_appendix, Handle resolved_method_type, TRAPS); |
73 Handle resolved_appendix, TRAPS); |
75 void set_common(Klass* resolved_klass, Klass* selected_klass, |
74 void set_common(Klass* resolved_klass, Klass* selected_klass, |
76 const methodHandle& resolved_method, |
75 const methodHandle& resolved_method, |
77 const methodHandle& selected_method, |
76 const methodHandle& selected_method, |
78 CallKind kind, |
77 CallKind kind, |
79 int index, TRAPS); |
78 int index, TRAPS); |
96 Klass* resolved_klass() const { return _resolved_klass; } |
95 Klass* resolved_klass() const { return _resolved_klass; } |
97 Klass* selected_klass() const { return _selected_klass; } |
96 Klass* selected_klass() const { return _selected_klass; } |
98 methodHandle resolved_method() const { return _resolved_method; } |
97 methodHandle resolved_method() const { return _resolved_method; } |
99 methodHandle selected_method() const { return _selected_method; } |
98 methodHandle selected_method() const { return _selected_method; } |
100 Handle resolved_appendix() const { return _resolved_appendix; } |
99 Handle resolved_appendix() const { return _resolved_appendix; } |
101 Handle resolved_method_type() const { return _resolved_method_type; } |
|
102 Handle resolved_method_name() const { return _resolved_method_name; } |
100 Handle resolved_method_name() const { return _resolved_method_name; } |
103 // Materialize a java.lang.invoke.ResolvedMethodName for this resolved_method |
101 // Materialize a java.lang.invoke.ResolvedMethodName for this resolved_method |
104 void set_resolved_method_name(TRAPS); |
102 void set_resolved_method_name(TRAPS); |
105 |
103 |
106 BasicType result_type() const { return selected_method()->result_type(); } |
104 BasicType result_type() const { return selected_method()->result_type(); } |
205 bool checkpolymorphism, |
203 bool checkpolymorphism, |
206 bool in_imethod_resolve); |
204 bool in_imethod_resolve); |
207 static Method* lookup_method_in_interfaces(const LinkInfo& link_info); |
205 static Method* lookup_method_in_interfaces(const LinkInfo& link_info); |
208 |
206 |
209 static methodHandle lookup_polymorphic_method(const LinkInfo& link_info, |
207 static methodHandle lookup_polymorphic_method(const LinkInfo& link_info, |
210 Handle *appendix_result_or_null, |
208 Handle *appendix_result_or_null, TRAPS); |
211 Handle *method_type_result, TRAPS); |
|
212 JVMCI_ONLY(public:) // Needed for CompilerToVM.resolveMethod() |
209 JVMCI_ONLY(public:) // Needed for CompilerToVM.resolveMethod() |
213 // Not Linktime so doesn't take LinkInfo |
210 // Not Linktime so doesn't take LinkInfo |
214 static methodHandle lookup_instance_method_in_klasses (Klass* klass, Symbol* name, Symbol* signature, |
211 static methodHandle lookup_instance_method_in_klasses (Klass* klass, Symbol* name, Symbol* signature, |
215 Klass::PrivateLookupMode private_mode, TRAPS); |
212 Klass::PrivateLookupMode private_mode, TRAPS); |
216 JVMCI_ONLY(private:) |
213 JVMCI_ONLY(private:) |