diff src/share/vm/graal/graalCompilerToVM.cpp @ 11381:001c41b01d13

HotSpotInstalledCode: moved getCode to Java and added the ability to get the whole blob
author twisti
date Tue, 20 Aug 2013 12:48:28 -0700
parents a7c7b0bd0557
children 8d4e5e08d83f
line wrap: on
line diff
--- a/src/share/vm/graal/graalCompilerToVM.cpp	Tue Aug 20 20:04:33 2013 +0200
+++ b/src/share/vm/graal/graalCompilerToVM.cpp	Tue Aug 20 12:48:28 2013 -0700
@@ -928,9 +928,11 @@
         if (TraceGPUInteraction) {
           tty->print_cr("installCode0: ExternalCompilationResult");
         }
-        HotSpotInstalledCode::set_start(installed_code_handle, ExternalCompilationResult::entryPoint(comp_result));
+        HotSpotInstalledCode::set_codeStart(installed_code_handle, ExternalCompilationResult::entryPoint(comp_result));
       } else {
-        HotSpotInstalledCode::set_start(installed_code_handle, (jlong) cb->code_begin());
+        HotSpotInstalledCode::set_size(installed_code_handle, cb->size());
+        HotSpotInstalledCode::set_codeStart(installed_code_handle, (jlong) cb->code_begin());
+        HotSpotInstalledCode::set_codeSize(installed_code_handle, cb->code_size());
       }
       nmethod* nm = cb->as_nmethod_or_null();
       assert(nm == NULL || !installed_code_handle->is_scavengable() || nm->on_scavenge_root_list(), "nm should be scavengable if installed_code is scavengable");
@@ -939,26 +941,6 @@
   return result;
 C2V_END
 
-C2V_VMENTRY(jobject, getCode, (JNIEnv *jniEnv, jobject,  jlong codeBlob))
-  ResourceMark rm;
-  HandleMark hm;
-
-  CodeBlob* cb = (CodeBlob*) (address) codeBlob;
-  if (cb == NULL) {
-    return NULL;
-  }
-  if (cb->is_nmethod()) {
-    nmethod* nm = (nmethod*) cb;
-    if (!nm->is_alive()) {
-      return NULL;
-    }
-  }
-  int length = cb->code_size();
-  arrayOop codeCopy = oopFactory::new_byteArray(length, CHECK_0);
-  memcpy(codeCopy->base(T_BYTE), cb->code_begin(), length);
-  return JNIHandles::make_local(codeCopy);
-C2V_END
-
 C2V_VMENTRY(jobject, disassembleCodeBlob, (JNIEnv *jniEnv, jobject, jlong codeBlob))
   ResourceMark rm;
   HandleMark hm;
@@ -1244,7 +1226,6 @@
   {CC"getJavaField",                  CC"("REFLECT_FIELD")"HS_RESOLVED_FIELD,                           FN_PTR(getJavaField)},
   {CC"initializeConfiguration",       CC"("HS_CONFIG")V",                                               FN_PTR(initializeConfiguration)},
   {CC"installCode0",                  CC"("HS_COMPILED_CODE HS_INSTALLED_CODE"[Z)I",                    FN_PTR(installCode0)},
-  {CC"getCode",                       CC"(J)[B",                                                        FN_PTR(getCode)},
   {CC"disassembleCodeBlob",           CC"(J)"STRING,                                                    FN_PTR(disassembleCodeBlob)},
   {CC"executeCompiledMethodVarargs",  CC"(["OBJECT HS_INSTALLED_CODE")"OBJECT,                          FN_PTR(executeCompiledMethodVarargs)},
   {CC"getDeoptedLeafGraphIds",        CC"()[J",                                                         FN_PTR(getDeoptedLeafGraphIds)},