diff src/share/vm/graal/graalCodeInstaller.cpp @ 7930:fe64b5da8229

Create direct call for Static and Special to avoid out-of-line patching stub.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 05 Mar 2013 16:43:26 +0100
parents 4e1278443941
children 85bd81dba8fc
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Tue Mar 05 11:49:29 2013 +0100
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Tue Mar 05 16:43:26 2013 +0100
@@ -126,6 +126,10 @@
         assert((Klass*) prim == klass, err_msg("%s @ %p != %p", klass->name()->as_C_string(), klass, prim));
         int index = oop_recorder->find_index(klass);
         TRACE_graal_3("metadata[%d of %d] = %s", index, oop_recorder->metadata_count(), klass->name()->as_C_string());
+      } else if (obj->is_a(HotSpotResolvedJavaMethod::klass())) {
+        Method* method = (Method*) (address) HotSpotResolvedJavaMethod::metaspaceMethod(obj);
+        int index = oop_recorder->find_index(method);
+        TRACE_graal_3("metadata[%d of %d] = %s", index, oop_recorder->metadata_count(), method->name()->as_C_string());
       } else {
         assert(java_lang_String::is_instance(obj),
             err_msg("unexpected annotation type (%s) for constant %ld (%p) of kind %c", obj->klass()->name()->as_C_string(), prim, prim, kind));