Mercurial > hg > graal-compiler
comparison 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 |
comparison
equal
deleted
inserted
replaced
11380:d9bcf8789d57 | 11381:001c41b01d13 |
---|---|
926 oop comp_result = HotSpotCompiledCode::comp(compiled_code_handle); | 926 oop comp_result = HotSpotCompiledCode::comp(compiled_code_handle); |
927 if (comp_result->is_a(ExternalCompilationResult::klass())) { | 927 if (comp_result->is_a(ExternalCompilationResult::klass())) { |
928 if (TraceGPUInteraction) { | 928 if (TraceGPUInteraction) { |
929 tty->print_cr("installCode0: ExternalCompilationResult"); | 929 tty->print_cr("installCode0: ExternalCompilationResult"); |
930 } | 930 } |
931 HotSpotInstalledCode::set_start(installed_code_handle, ExternalCompilationResult::entryPoint(comp_result)); | 931 HotSpotInstalledCode::set_codeStart(installed_code_handle, ExternalCompilationResult::entryPoint(comp_result)); |
932 } else { | 932 } else { |
933 HotSpotInstalledCode::set_start(installed_code_handle, (jlong) cb->code_begin()); | 933 HotSpotInstalledCode::set_size(installed_code_handle, cb->size()); |
934 HotSpotInstalledCode::set_codeStart(installed_code_handle, (jlong) cb->code_begin()); | |
935 HotSpotInstalledCode::set_codeSize(installed_code_handle, cb->code_size()); | |
934 } | 936 } |
935 nmethod* nm = cb->as_nmethod_or_null(); | 937 nmethod* nm = cb->as_nmethod_or_null(); |
936 assert(nm == NULL || !installed_code_handle->is_scavengable() || nm->on_scavenge_root_list(), "nm should be scavengable if installed_code is scavengable"); | 938 assert(nm == NULL || !installed_code_handle->is_scavengable() || nm->on_scavenge_root_list(), "nm should be scavengable if installed_code is scavengable"); |
937 } | 939 } |
938 } | 940 } |
939 return result; | 941 return result; |
940 C2V_END | |
941 | |
942 C2V_VMENTRY(jobject, getCode, (JNIEnv *jniEnv, jobject, jlong codeBlob)) | |
943 ResourceMark rm; | |
944 HandleMark hm; | |
945 | |
946 CodeBlob* cb = (CodeBlob*) (address) codeBlob; | |
947 if (cb == NULL) { | |
948 return NULL; | |
949 } | |
950 if (cb->is_nmethod()) { | |
951 nmethod* nm = (nmethod*) cb; | |
952 if (!nm->is_alive()) { | |
953 return NULL; | |
954 } | |
955 } | |
956 int length = cb->code_size(); | |
957 arrayOop codeCopy = oopFactory::new_byteArray(length, CHECK_0); | |
958 memcpy(codeCopy->base(T_BYTE), cb->code_begin(), length); | |
959 return JNIHandles::make_local(codeCopy); | |
960 C2V_END | 942 C2V_END |
961 | 943 |
962 C2V_VMENTRY(jobject, disassembleCodeBlob, (JNIEnv *jniEnv, jobject, jlong codeBlob)) | 944 C2V_VMENTRY(jobject, disassembleCodeBlob, (JNIEnv *jniEnv, jobject, jlong codeBlob)) |
963 ResourceMark rm; | 945 ResourceMark rm; |
964 HandleMark hm; | 946 HandleMark hm; |
1242 {CC"getMetaspaceMethod", CC"("REFLECT_METHOD"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)}, | 1224 {CC"getMetaspaceMethod", CC"("REFLECT_METHOD"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)}, |
1243 {CC"getMetaspaceConstructor", CC"("REFLECT_CONSTRUCTOR"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceConstructor)}, | 1225 {CC"getMetaspaceConstructor", CC"("REFLECT_CONSTRUCTOR"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceConstructor)}, |
1244 {CC"getJavaField", CC"("REFLECT_FIELD")"HS_RESOLVED_FIELD, FN_PTR(getJavaField)}, | 1226 {CC"getJavaField", CC"("REFLECT_FIELD")"HS_RESOLVED_FIELD, FN_PTR(getJavaField)}, |
1245 {CC"initializeConfiguration", CC"("HS_CONFIG")V", FN_PTR(initializeConfiguration)}, | 1227 {CC"initializeConfiguration", CC"("HS_CONFIG")V", FN_PTR(initializeConfiguration)}, |
1246 {CC"installCode0", CC"("HS_COMPILED_CODE HS_INSTALLED_CODE"[Z)I", FN_PTR(installCode0)}, | 1228 {CC"installCode0", CC"("HS_COMPILED_CODE HS_INSTALLED_CODE"[Z)I", FN_PTR(installCode0)}, |
1247 {CC"getCode", CC"(J)[B", FN_PTR(getCode)}, | |
1248 {CC"disassembleCodeBlob", CC"(J)"STRING, FN_PTR(disassembleCodeBlob)}, | 1229 {CC"disassembleCodeBlob", CC"(J)"STRING, FN_PTR(disassembleCodeBlob)}, |
1249 {CC"executeCompiledMethodVarargs", CC"(["OBJECT HS_INSTALLED_CODE")"OBJECT, FN_PTR(executeCompiledMethodVarargs)}, | 1230 {CC"executeCompiledMethodVarargs", CC"(["OBJECT HS_INSTALLED_CODE")"OBJECT, FN_PTR(executeCompiledMethodVarargs)}, |
1250 {CC"getDeoptedLeafGraphIds", CC"()[J", FN_PTR(getDeoptedLeafGraphIds)}, | 1231 {CC"getDeoptedLeafGraphIds", CC"()[J", FN_PTR(getDeoptedLeafGraphIds)}, |
1251 {CC"getLineNumberTable", CC"("HS_RESOLVED_METHOD")[J", FN_PTR(getLineNumberTable)}, | 1232 {CC"getLineNumberTable", CC"("HS_RESOLVED_METHOD")[J", FN_PTR(getLineNumberTable)}, |
1252 {CC"getLocalVariableTable", CC"("HS_RESOLVED_METHOD")["LOCAL, FN_PTR(getLocalVariableTable)}, | 1233 {CC"getLocalVariableTable", CC"("HS_RESOLVED_METHOD")["LOCAL, FN_PTR(getLocalVariableTable)}, |