194 #endif |
194 #endif |
195 #ifdef TARGET_ARCH_ppc |
195 #ifdef TARGET_ARCH_ppc |
196 # include "methodHandles_ppc.hpp" |
196 # include "methodHandles_ppc.hpp" |
197 #endif |
197 #endif |
198 |
198 |
199 |
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 } |
200 }; |
220 }; |
201 |
221 |
202 |
222 |
203 //------------------------------------------------------------------------------ |
223 //------------------------------------------------------------------------------ |
204 // MethodHandlesAdapterGenerator |
224 // MethodHandlesAdapterGenerator |