Mercurial > hg > truffle
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 } |