comparison src/share/vm/graal/graalCompilerToVM.cpp @ 10476:cd68d6902328

Fix invalidateInstalledCode and delete isInstalledCodeValid.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 21 Jun 2013 22:04:46 +0200
parents 3489047ffea2
children 7943479d36f3
comparison
equal deleted inserted replaced
10475:3489047ffea2 10476:cd68d6902328
1155 method_data->initialize(); 1155 method_data->initialize();
1156 } 1156 }
1157 C2V_END 1157 C2V_END
1158 1158
1159 1159
1160 C2V_VMENTRY(void, invalidateInstalledCode, (JNIEnv *env, jobject, jlong nativeMethod)) 1160 C2V_VMENTRY(void, invalidateInstalledCode, (JNIEnv *env, jobject, jobject hotspotInstalledCode))
1161 jlong nativeMethod = HotSpotInstalledCode::codeBlob(hotspotInstalledCode);
1161 nmethod* m = (nmethod*)nativeMethod; 1162 nmethod* m = (nmethod*)nativeMethod;
1162 if (!m->is_not_entrant()) { 1163 if (!m->is_not_entrant()) {
1163 m->mark_for_deoptimization(); 1164 m->mark_for_deoptimization();
1164 VM_Deoptimize op; 1165 VM_Deoptimize op;
1165 VMThread::execute(&op); 1166 VMThread::execute(&op);
1166 } 1167 }
1167 C2V_END 1168 C2V_END
1168 1169
1169
1170 C2V_VMENTRY(jboolean, isInstalledCodeValid, (JNIEnv *env, jobject, jlong nativeMethod))
1171 nmethod* m = (nmethod*)nativeMethod;
1172 return m->is_alive() && !m->is_not_entrant();
1173 C2V_END
1174 1170
1175 #define CC (char*) /*cast a literal from (const char*)*/ 1171 #define CC (char*) /*cast a literal from (const char*)*/
1176 #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &(c2v_ ## f)) 1172 #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &(c2v_ ## f))
1177 1173
1178 #define RESOLVED_TYPE "Lcom/oracle/graal/api/meta/ResolvedJavaType;" 1174 #define RESOLVED_TYPE "Lcom/oracle/graal/api/meta/ResolvedJavaType;"
1247 {CC"getDeoptedLeafGraphIds", CC"()[J", FN_PTR(getDeoptedLeafGraphIds)}, 1243 {CC"getDeoptedLeafGraphIds", CC"()[J", FN_PTR(getDeoptedLeafGraphIds)},
1248 {CC"getLineNumberTable", CC"("HS_RESOLVED_METHOD")[J", FN_PTR(getLineNumberTable)}, 1244 {CC"getLineNumberTable", CC"("HS_RESOLVED_METHOD")[J", FN_PTR(getLineNumberTable)},
1249 {CC"getLocalVariableTable", CC"("HS_RESOLVED_METHOD")["LOCAL, FN_PTR(getLocalVariableTable)}, 1245 {CC"getLocalVariableTable", CC"("HS_RESOLVED_METHOD")["LOCAL, FN_PTR(getLocalVariableTable)},
1250 {CC"getFileName", CC"("HS_RESOLVED_JAVA_TYPE")"STRING, FN_PTR(getFileName)}, 1246 {CC"getFileName", CC"("HS_RESOLVED_JAVA_TYPE")"STRING, FN_PTR(getFileName)},
1251 {CC"reprofile", CC"("METASPACE_METHOD")V", FN_PTR(reprofile)}, 1247 {CC"reprofile", CC"("METASPACE_METHOD")V", FN_PTR(reprofile)},
1252 {CC"invalidateInstalledCode", CC"(J)V", FN_PTR(invalidateInstalledCode)}, 1248 {CC"invalidateInstalledCode", CC"("HS_INSTALLED_CODE")V", FN_PTR(invalidateInstalledCode)},
1253 {CC"isInstalledCodeValid", CC"(J)Z", FN_PTR(isInstalledCodeValid)},
1254 }; 1249 };
1255 1250
1256 int CompilerToVM_methods_count() { 1251 int CompilerToVM_methods_count() {
1257 return sizeof(CompilerToVM_methods) / sizeof(JNINativeMethod); 1252 return sizeof(CompilerToVM_methods) / sizeof(JNINativeMethod);
1258 } 1253 }