hotspot/src/share/vm/prims/methodHandles.hpp
changeset 13968 8c9029c01470
parent 13728 882756847a04
child 17029 9ff8d7c0ed79
--- a/hotspot/src/share/vm/prims/methodHandles.hpp	Mon Oct 08 13:02:13 2012 -0700
+++ b/hotspot/src/share/vm/prims/methodHandles.hpp	Mon Oct 08 17:04:00 2012 -0700
@@ -196,7 +196,27 @@
 # include "methodHandles_ppc.hpp"
 #endif
 
-
+  // Tracing
+  static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN;
+  static void trace_method_handle_interpreter_entry(MacroAssembler* _masm, vmIntrinsics::ID iid) {
+    if (TraceMethodHandles) {
+      const char* name = vmIntrinsics::name_at(iid);
+      if (*name == '_')  name += 1;
+      const size_t len = strlen(name) + 50;
+      char* qname = NEW_C_HEAP_ARRAY(char, len, mtInternal);
+      const char* suffix = "";
+      if (is_signature_polymorphic(iid)) {
+        if (is_signature_polymorphic_static(iid))
+          suffix = "/static";
+        else
+          suffix = "/private";
+      }
+      jio_snprintf(qname, len, "MethodHandle::interpreter_entry::%s%s", name, suffix);
+      trace_method_handle(_masm, qname);
+      // Note:  Don't free the allocated char array because it's used
+      // during runtime.
+    }
+  }
 };