179 ref_kind == JVM_REF_invokeInterface);
180 }
181
182
183 #ifdef TARGET_ARCH_x86
184 # include "methodHandles_x86.hpp"
185 #endif
186 #ifdef TARGET_ARCH_sparc
187 # include "methodHandles_sparc.hpp"
188 #endif
189 #ifdef TARGET_ARCH_zero
190 # include "methodHandles_zero.hpp"
191 #endif
192 #ifdef TARGET_ARCH_arm
193 # include "methodHandles_arm.hpp"
194 #endif
195 #ifdef TARGET_ARCH_ppc
196 # include "methodHandles_ppc.hpp"
197 #endif
198
199
200 };
201
202
203 //------------------------------------------------------------------------------
204 // MethodHandlesAdapterGenerator
205 //
206 class MethodHandlesAdapterGenerator : public StubCodeGenerator {
207 public:
208 MethodHandlesAdapterGenerator(CodeBuffer* code) : StubCodeGenerator(code, PrintMethodHandleStubs) {}
209
210 void generate();
211 };
212
213 #endif // SHARE_VM_PRIMS_METHODHANDLES_HPP
|
179 ref_kind == JVM_REF_invokeInterface);
180 }
181
182
183 #ifdef TARGET_ARCH_x86
184 # include "methodHandles_x86.hpp"
185 #endif
186 #ifdef TARGET_ARCH_sparc
187 # include "methodHandles_sparc.hpp"
188 #endif
189 #ifdef TARGET_ARCH_zero
190 # include "methodHandles_zero.hpp"
191 #endif
192 #ifdef TARGET_ARCH_arm
193 # include "methodHandles_arm.hpp"
194 #endif
195 #ifdef TARGET_ARCH_ppc
196 # include "methodHandles_ppc.hpp"
197 #endif
198
199 // Tracing
200 static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN;
201 static void trace_method_handle_interpreter_entry(MacroAssembler* _masm, vmIntrinsics::ID iid) {
202 if (TraceMethodHandles) {
203 const char* name = vmIntrinsics::name_at(iid);
204 if (*name == '_') name += 1;
205 const size_t len = strlen(name) + 50;
206 char* qname = NEW_C_HEAP_ARRAY(char, len, mtInternal);
207 const char* suffix = "";
208 if (is_signature_polymorphic(iid)) {
209 if (is_signature_polymorphic_static(iid))
210 suffix = "/static";
211 else
212 suffix = "/private";
213 }
214 jio_snprintf(qname, len, "MethodHandle::interpreter_entry::%s%s", name, suffix);
215 trace_method_handle(_masm, qname);
216 // Note: Don't free the allocated char array because it's used
217 // during runtime.
218 }
219 }
220 };
221
222
223 //------------------------------------------------------------------------------
224 // MethodHandlesAdapterGenerator
225 //
226 class MethodHandlesAdapterGenerator : public StubCodeGenerator {
227 public:
228 MethodHandlesAdapterGenerator(CodeBuffer* code) : StubCodeGenerator(code, PrintMethodHandleStubs) {}
229
230 void generate();
231 };
232
233 #endif // SHARE_VM_PRIMS_METHODHANDLES_HPP
|