Mercurial > hg > graal-compiler
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)},