comparison src/share/vm/graal/graalCompilerToVM.cpp @ 6950:41938af2b3d8

modifications to support non-perm-gen changes in HotSpot fixed issue when intrinsifying Class.getModifiers() for primitive classes
author Doug Simon <doug.simon@oracle.com>
date Wed, 14 Nov 2012 11:28:02 +0100
parents e522a00b91aa
children e54fcd0405f6
comparison
equal deleted inserted replaced
6949:d09b0fed89db 6950:41938af2b3d8
250 Handle name = VmIds::toString<Handle>(method->name(), CHECK); 250 Handle name = VmIds::toString<Handle>(method->name(), CHECK);
251 InstanceKlass::cast(HotSpotResolvedJavaMethod::klass())->initialize(CHECK); 251 InstanceKlass::cast(HotSpotResolvedJavaMethod::klass())->initialize(CHECK);
252 HotSpotResolvedJavaMethod::set_name(hotspot_method, name()); 252 HotSpotResolvedJavaMethod::set_name(hotspot_method, name());
253 HotSpotResolvedJavaMethod::set_codeSize(hotspot_method, method->code_size()); 253 HotSpotResolvedJavaMethod::set_codeSize(hotspot_method, method->code_size());
254 HotSpotResolvedJavaMethod::set_exceptionHandlerCount(hotspot_method, method->exception_table_length()); 254 HotSpotResolvedJavaMethod::set_exceptionHandlerCount(hotspot_method, method->exception_table_length());
255 HotSpotResolvedJavaMethod::set_canBeInlined(hotspot_method, !method->is_not_compilable() && !CompilerOracle::should_not_inline(method)); 255 C2V_END
256
257 C2V_VMENTRY(jboolean, isMethodCompilable,(JNIEnv *, jobject, jlong metaspace_method))
258 methodHandle method = asMethod(metaspace_method);
259 return !method->is_not_compilable() && !CompilerOracle::should_not_inline(method);
256 C2V_END 260 C2V_END
257 261
258 C2V_VMENTRY(void, initializeMethodData,(JNIEnv *, jobject, jlong metaspace_method_data, jobject hotspot_method_data)) 262 C2V_VMENTRY(void, initializeMethodData,(JNIEnv *, jobject, jlong metaspace_method_data, jobject hotspot_method_data))
259 MethodData* method_data = asMethodData(metaspace_method_data); 263 MethodData* method_data = asMethodData(metaspace_method_data);
260 HotSpotMethodData::set_normalDataSize(hotspot_method_data, method_data->data_size()); 264 HotSpotMethodData::set_normalDataSize(hotspot_method_data, method_data->data_size());
533 Klass* lca = this_klass->LCA(other_klass); 537 Klass* lca = this_klass->LCA(other_klass);
534 538
535 return JNIHandles::make_local(GraalCompiler::get_JavaType(lca, THREAD)()); 539 return JNIHandles::make_local(GraalCompiler::get_JavaType(lca, THREAD)());
536 C2V_END 540 C2V_END
537 541
538 C2V_VMENTRY(jobject, getComponentType, (JNIEnv *, jobject, jobject klass))
539 KlassHandle array_klass = java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(klass));
540 if(array_klass->oop_is_typeArray()) {
541 BasicType t = TypeArrayKlass::cast(array_klass())->element_type();
542 oop primitive_type = VMToCompiler::createPrimitiveJavaType((int) t, CHECK_NULL);
543 return JNIHandles::make_local(primitive_type);
544 }
545 assert(array_klass->oop_is_objArray(), "just checking");
546 Klass* element_type = ObjArrayKlass::cast(array_klass())->element_klass();
547 assert(JNIHandles::resolve(klass) != NULL, "");
548 return JNIHandles::make_local(GraalCompiler::get_JavaType(element_type, THREAD)());
549 C2V_END
550
551 C2V_VMENTRY(jlong, getPrototypeMarkWord, (JNIEnv *, jobject, jobject klass)) 542 C2V_VMENTRY(jlong, getPrototypeMarkWord, (JNIEnv *, jobject, jobject klass))
552 KlassHandle klass_handle(java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(klass))); 543 KlassHandle klass_handle(java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(klass)));
553 if (klass_handle->oop_is_array()) { 544 if (klass_handle->oop_is_array()) {
554 return (int32_t)(intptr_t) markOopDesc::prototype(); 545 return (int32_t)(intptr_t) markOopDesc::prototype();
555 } else { 546 } else {
556 return (jlong) (intptr_t) klass_handle->prototype_header(); 547 return (jlong) (intptr_t) klass_handle->prototype_header();
557 } 548 }
558 C2V_END 549 C2V_END
559 550
560 C2V_VMENTRY(jobject, getSuperType, (JNIEnv *, jobject, jlong metaspace_klass))
561 KlassHandle klass_handle(asKlass(metaspace_klass));
562 Klass* k;
563
564 if (klass_handle->oop_is_array()) {
565 k = SystemDictionary::Object_klass();
566 } else {
567 guarantee(klass_handle->oop_is_instance(), "must be instance klass");
568 k = klass_handle->super();
569 }
570
571 if (k != NULL) {
572 return JNIHandles::make_local(GraalCompiler::get_JavaType(k, THREAD)());
573 } else {
574 return NULL;
575 }
576 C2V_END
577
578 C2V_VMENTRY(jobject, getUniqueConcreteSubtype, (JNIEnv *, jobject, jobject klass)) 551 C2V_VMENTRY(jobject, getUniqueConcreteSubtype, (JNIEnv *, jobject, jobject klass))
579 KlassHandle klass_handle(java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(klass))); 552 KlassHandle klass_handle(java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(klass)));
580 Klass *up_cast = klass_handle->up_cast_abstract(); 553 Klass *up_cast = klass_handle->up_cast_abstract();
581 if (!up_cast->is_interface() && up_cast->subklass() == NULL) { 554 if (!up_cast->is_interface() && up_cast->subklass() == NULL) {
582 return JNIHandles::make_local(GraalCompiler::get_JavaType(up_cast, THREAD)()); 555 return JNIHandles::make_local(GraalCompiler::get_JavaType(up_cast, THREAD)());
592 565
593 C2V_VMENTRY(void, initializeType, (JNIEnv *, jobject, jobject hotspot_klass)) 566 C2V_VMENTRY(void, initializeType, (JNIEnv *, jobject, jobject hotspot_klass))
594 Klass* klass = java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(hotspot_klass)); 567 Klass* klass = java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(hotspot_klass));
595 assert(klass != NULL, "method must not be called for primitive types"); 568 assert(klass != NULL, "method must not be called for primitive types");
596 InstanceKlass::cast(klass)->initialize(JavaThread::current()); 569 InstanceKlass::cast(klass)->initialize(JavaThread::current());
597 C2V_END
598
599 C2V_VMENTRY(jobject, getArrayOf, (JNIEnv *, jobject, jobject klass))
600 KlassHandle klass_handle(java_lang_Class::as_Klass(HotSpotResolvedJavaType::javaMirror(klass)));
601 KlassHandle arr = klass_handle->array_klass(THREAD);
602 Handle name = VmIds::toString<Handle>(arr->name(), CHECK_NULL);
603 assert(arr->oop_is_array(), "");
604 return JNIHandles::make_local(THREAD, GraalCompiler::createHotSpotResolvedJavaType(arr, name, THREAD)());
605 C2V_END 570 C2V_END
606 571
607 C2V_VMENTRY(jobject, getInstanceFields, (JNIEnv *, jobject, jobject klass)) 572 C2V_VMENTRY(jobject, getInstanceFields, (JNIEnv *, jobject, jobject klass))
608 ResourceMark rm; 573 ResourceMark rm;
609 574
625 field_array->obj_at_put(i, fields.at(i)()); 590 field_array->obj_at_put(i, fields.at(i)());
626 } 591 }
627 return JNIHandles::make_local(field_array()); 592 return JNIHandles::make_local(field_array());
628 C2V_END 593 C2V_END
629 594
630 C2V_VMENTRY(jobject, getPrimitiveArrayType, (JNIEnv *env, jobject, jobject kind))
631 BasicType type = GraalCompiler::kindToBasicType(Kind::typeChar(kind));
632 assert(type != T_OBJECT, "primitive type expecteds");
633 Handle result = GraalCompiler::get_JavaType(Universe::typeArrayKlassObj(type), CHECK_NULL);
634 return JNIHandles::make_local(THREAD, result());
635 C2V_END
636
637 C2V_VMENTRY(jlong, getMaxCallTargetOffset, (JNIEnv *env, jobject, jlong stub)) 595 C2V_VMENTRY(jlong, getMaxCallTargetOffset, (JNIEnv *env, jobject, jlong stub))
638 address target_addr = (address) stub; 596 address target_addr = (address) stub;
639 if (target_addr != 0x0) { 597 if (target_addr != 0x0) {
640 int64_t off_low = (int64_t)target_addr - ((int64_t)CodeCache::low_bound() + sizeof(int)); 598 int64_t off_low = (int64_t)target_addr - ((int64_t)CodeCache::low_bound() + sizeof(int));
641 int64_t off_high = (int64_t)target_addr - ((int64_t)CodeCache::high_bound() + sizeof(int)); 599 int64_t off_high = (int64_t)target_addr - ((int64_t)CodeCache::high_bound() + sizeof(int));
642 return MAX2(ABS(off_low), ABS(off_high)); 600 return MAX2(ABS(off_low), ABS(off_high));
643 } 601 }
644 return -1; 602 return -1;
645 C2V_END 603 C2V_END
646 604
647 C2V_VMENTRY(jobject, getType, (JNIEnv *env, jobject, jobject javaClass)) 605 C2V_VMENTRY(jobject, getResolvedType, (JNIEnv *env, jobject, jobject javaClass))
648 oop javaClassOop = JNIHandles::resolve(javaClass); 606 oop java_mirror = JNIHandles::resolve(javaClass);
649 if (javaClassOop == NULL) { 607 assert(java_mirror != NULL, "argument to CompilerToVM.getResolvedType must not be NULL");
650 fatal("argument to CompilerToVM.getType must not be NULL"); 608 Handle type = GraalCompiler::get_JavaTypeFromClass(java_mirror, CHECK_NULL);
651 return NULL;
652 }
653 Handle type = GraalCompiler::get_JavaTypeFromClass(javaClassOop, CHECK_NULL);
654 return JNIHandles::make_local(THREAD, type()); 609 return JNIHandles::make_local(THREAD, type());
655 C2V_END 610 C2V_END
656 611
657 612
658 // helpers used to set fields in the HotSpotVMConfig object 613 // helpers used to set fields in the HotSpotVMConfig object
971 926
972 927
973 #define CC (char*) /*cast a literal from (const char*)*/ 928 #define CC (char*) /*cast a literal from (const char*)*/
974 #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &(c2v_ ## f)) 929 #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &(c2v_ ## f))
975 930
931 #define RESOLVED_TYPE "Lcom/oracle/graal/api/meta/ResolvedJavaType;"
976 #define TYPE "Lcom/oracle/graal/api/meta/JavaType;" 932 #define TYPE "Lcom/oracle/graal/api/meta/JavaType;"
977 #define RESOLVED_TYPE "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaType;"
978 #define METHOD "Lcom/oracle/graal/api/meta/JavaMethod;" 933 #define METHOD "Lcom/oracle/graal/api/meta/JavaMethod;"
979 #define RESOLVED_METHOD "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod;" 934 #define FIELD "Lcom/oracle/graal/api/meta/JavaField;"
935 #define SIGNATURE "Lcom/oracle/graal/api/meta/Signature;"
936 #define CONSTANT_POOL "Lcom/oracle/graal/api/meta/ConstantPool;"
937 #define CONSTANT "Lcom/oracle/graal/api/meta/Constant;"
938 #define KIND "Lcom/oracle/graal/api/meta/Kind;"
939 #define RUNTIME_CALL "Lcom/oracle/graal/api/code/RuntimeCall;"
940 #define EXCEPTION_HANDLERS "[Lcom/oracle/graal/api/meta/ExceptionHandler;"
980 #define REFLECT_METHOD "Ljava/lang/reflect/Method;" 941 #define REFLECT_METHOD "Ljava/lang/reflect/Method;"
981 #define SIGNATURE "Lcom/oracle/graal/api/meta/Signature;"
982 #define FIELD "Lcom/oracle/graal/api/meta/JavaField;"
983 #define RESOLVED_FIELD "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaField;"
984 #define REFLECT_FIELD "Ljava/lang/reflect/Field;" 942 #define REFLECT_FIELD "Ljava/lang/reflect/Field;"
985 #define CONSTANT_POOL "Lcom/oracle/graal/api/meta/ConstantPool;" 943 #define STRING "Ljava/lang/String;"
986 #define EXCEPTION_HANDLERS "[Lcom/oracle/graal/api/meta/ExceptionHandler;" 944 #define OBJECT "Ljava/lang/Object;"
945 #define CLASS "Ljava/lang/Class;"
946 #define STACK_TRACE_ELEMENT "Ljava/lang/StackTraceElement;"
947 #define HS_RESOLVED_TYPE "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaType;"
948 #define HS_RESOLVED_METHOD "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod;"
949 #define HS_RESOLVED_FIELD "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaField;"
987 #define HS_COMP_RESULT "Lcom/oracle/graal/hotspot/HotSpotCompilationResult;" 950 #define HS_COMP_RESULT "Lcom/oracle/graal/hotspot/HotSpotCompilationResult;"
988 #define CONFIG "Lcom/oracle/graal/hotspot/HotSpotVMConfig;" 951 #define HS_CONFIG "Lcom/oracle/graal/hotspot/HotSpotVMConfig;"
989 #define HS_METHOD "Lcom/oracle/graal/hotspot/meta/HotSpotMethod;" 952 #define HS_METHOD "Lcom/oracle/graal/hotspot/meta/HotSpotMethod;"
990 #define HS_INSTALLED_CODE "Lcom/oracle/graal/hotspot/meta/HotSpotInstalledCode;" 953 #define HS_INSTALLED_CODE "Lcom/oracle/graal/hotspot/meta/HotSpotInstalledCode;"
991 #define HS_CODE_INFO "Lcom/oracle/graal/hotspot/meta/HotSpotCodeInfo;" 954 #define HS_CODE_INFO "Lcom/oracle/graal/hotspot/meta/HotSpotCodeInfo;"
992 #define METHOD_DATA "Lcom/oracle/graal/hotspot/meta/HotSpotMethodData;" 955 #define METHOD_DATA "Lcom/oracle/graal/hotspot/meta/HotSpotMethodData;"
993 #define CONSTANT "Lcom/oracle/graal/api/meta/Constant;"
994 #define KIND "Lcom/oracle/graal/api/meta/Kind;"
995 #define RUNTIME_CALL "Lcom/oracle/graal/api/code/RuntimeCall;"
996 #define STRING "Ljava/lang/String;"
997 #define OBJECT "Ljava/lang/Object;"
998 #define CLASS "Ljava/lang/Class;"
999 #define STACK_TRACE_ELEMENT "Ljava/lang/StackTraceElement;"
1000 #define METASPACE_METHOD "J" 956 #define METASPACE_METHOD "J"
1001 #define METASPACE_METHOD_DATA "J" 957 #define METASPACE_METHOD_DATA "J"
1002 #define NMETHOD "J" 958 #define NMETHOD "J"
1003 959
1004 JNINativeMethod CompilerToVM_methods[] = { 960 JNINativeMethod CompilerToVM_methods[] = {
1005 {CC"initializeBytecode", CC"("METASPACE_METHOD"[B)[B", FN_PTR(initializeBytecode)}, 961 {CC"initializeBytecode", CC"("METASPACE_METHOD"[B)[B", FN_PTR(initializeBytecode)},
1006 {CC"getSignature", CC"("METASPACE_METHOD")"STRING, FN_PTR(getSignature)}, 962 {CC"getSignature", CC"("METASPACE_METHOD")"STRING, FN_PTR(getSignature)},
1007 {CC"initializeExceptionHandlers", CC"("METASPACE_METHOD EXCEPTION_HANDLERS")"EXCEPTION_HANDLERS, FN_PTR(initializeExceptionHandlers)}, 963 {CC"initializeExceptionHandlers", CC"("METASPACE_METHOD EXCEPTION_HANDLERS")"EXCEPTION_HANDLERS, FN_PTR(initializeExceptionHandlers)},
1008 {CC"hasBalancedMonitors", CC"("METASPACE_METHOD")Z", FN_PTR(hasBalancedMonitors)}, 964 {CC"hasBalancedMonitors", CC"("METASPACE_METHOD")Z", FN_PTR(hasBalancedMonitors)},
1009 {CC"getUniqueConcreteMethod", CC"("METASPACE_METHOD"["RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getUniqueConcreteMethod)}, 965 {CC"getUniqueConcreteMethod", CC"("METASPACE_METHOD"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getUniqueConcreteMethod)},
1010 {CC"getStackTraceElement", CC"("METASPACE_METHOD"I)"STACK_TRACE_ELEMENT, FN_PTR(getStackTraceElement)}, 966 {CC"getStackTraceElement", CC"("METASPACE_METHOD"I)"STACK_TRACE_ELEMENT, FN_PTR(getStackTraceElement)},
1011 {CC"initializeMethod", CC"("METASPACE_METHOD RESOLVED_METHOD")V", FN_PTR(initializeMethod)}, 967 {CC"initializeMethod", CC"("METASPACE_METHOD HS_RESOLVED_METHOD")V", FN_PTR(initializeMethod)},
1012 {CC"initializeMethodData", CC"("METASPACE_METHOD_DATA METHOD_DATA")V", FN_PTR(initializeMethodData)}, 968 {CC"initializeMethodData", CC"("METASPACE_METHOD_DATA METHOD_DATA")V", FN_PTR(initializeMethodData)},
1013 {CC"getInvocationCount", CC"("METASPACE_METHOD")I", FN_PTR(getInvocationCount)}, 969 {CC"isMethodCompilable", CC"("METASPACE_METHOD")Z", FN_PTR(isMethodCompilable)},
1014 {CC"getCompiledCodeSize", CC"("METASPACE_METHOD")I", FN_PTR(getCompiledCodeSize)}, 970 {CC"getInvocationCount", CC"("METASPACE_METHOD")I", FN_PTR(getInvocationCount)},
1015 {CC"getVtableEntryOffset", CC"("METASPACE_METHOD")I", FN_PTR(getVtableEntryOffset)}, 971 {CC"getCompiledCodeSize", CC"("METASPACE_METHOD")I", FN_PTR(getCompiledCodeSize)},
1016 {CC"lookupType", CC"("STRING RESOLVED_TYPE"Z)"TYPE, FN_PTR(lookupType)}, 972 {CC"getVtableEntryOffset", CC"("METASPACE_METHOD")I", FN_PTR(getVtableEntryOffset)},
1017 {CC"lookupConstantInPool", CC"("RESOLVED_TYPE"I)"OBJECT, FN_PTR(lookupConstantInPool)}, 973 {CC"lookupType", CC"("STRING HS_RESOLVED_TYPE"Z)"TYPE, FN_PTR(lookupType)},
1018 {CC"lookupMethodInPool", CC"("RESOLVED_TYPE"IB)"METHOD, FN_PTR(lookupMethodInPool)}, 974 {CC"lookupConstantInPool", CC"("HS_RESOLVED_TYPE"I)"OBJECT, FN_PTR(lookupConstantInPool)},
1019 {CC"lookupTypeInPool", CC"("RESOLVED_TYPE"I)"TYPE, FN_PTR(lookupTypeInPool)}, 975 {CC"lookupMethodInPool", CC"("HS_RESOLVED_TYPE"IB)"METHOD, FN_PTR(lookupMethodInPool)},
1020 {CC"lookupReferencedTypeInPool", CC"("RESOLVED_TYPE"IB)V", FN_PTR(lookupReferencedTypeInPool)}, 976 {CC"lookupTypeInPool", CC"("HS_RESOLVED_TYPE"I)"TYPE, FN_PTR(lookupTypeInPool)},
1021 {CC"lookupFieldInPool", CC"("RESOLVED_TYPE"IB)"FIELD, FN_PTR(lookupFieldInPool)}, 977 {CC"lookupReferencedTypeInPool", CC"("HS_RESOLVED_TYPE"IB)V", FN_PTR(lookupReferencedTypeInPool)},
1022 {CC"resolveMethod", CC"("RESOLVED_TYPE STRING STRING")"METHOD, FN_PTR(resolveMethod)}, 978 {CC"lookupFieldInPool", CC"("HS_RESOLVED_TYPE"IB)"FIELD, FN_PTR(lookupFieldInPool)},
1023 {CC"isSubtypeOf", CC"("RESOLVED_TYPE TYPE")Z", FN_PTR(isSubtypeOf)}, 979 {CC"resolveMethod", CC"("HS_RESOLVED_TYPE STRING STRING")"METHOD, FN_PTR(resolveMethod)},
1024 {CC"getLeastCommonAncestor", CC"("RESOLVED_TYPE RESOLVED_TYPE")"TYPE, FN_PTR(getLeastCommonAncestor)}, 980 {CC"isSubtypeOf", CC"("HS_RESOLVED_TYPE TYPE")Z", FN_PTR(isSubtypeOf)},
1025 {CC"getComponentType", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(getComponentType)}, 981 {CC"getLeastCommonAncestor", CC"("HS_RESOLVED_TYPE HS_RESOLVED_TYPE")"TYPE, FN_PTR(getLeastCommonAncestor)},
1026 {CC"getUniqueConcreteSubtype", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(getUniqueConcreteSubtype)}, 982 {CC"getUniqueConcreteSubtype", CC"("HS_RESOLVED_TYPE")"TYPE, FN_PTR(getUniqueConcreteSubtype)},
1027 {CC"getSuperType", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(getSuperType)}, 983 {CC"getPrototypeMarkWord", CC"("HS_RESOLVED_TYPE")J", FN_PTR(getPrototypeMarkWord)},
1028 {CC"getPrototypeMarkWord", CC"("RESOLVED_TYPE")J", FN_PTR(getPrototypeMarkWord)}, 984 {CC"getInstanceFields", CC"("HS_RESOLVED_TYPE")["HS_RESOLVED_FIELD, FN_PTR(getInstanceFields)},
1029 {CC"getArrayOf", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(getArrayOf)}, 985 {CC"isTypeInitialized", CC"("HS_RESOLVED_TYPE")Z", FN_PTR(isTypeInitialized)},
1030 {CC"getInstanceFields", CC"("RESOLVED_TYPE")["RESOLVED_FIELD, FN_PTR(getInstanceFields)}, 986 {CC"initializeType", CC"("HS_RESOLVED_TYPE")V", FN_PTR(initializeType)},
1031 {CC"isTypeInitialized", CC"("RESOLVED_TYPE")Z", FN_PTR(isTypeInitialized)}, 987 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)},
1032 {CC"initializeType", CC"("RESOLVED_TYPE")V", FN_PTR(initializeType)}, 988 {CC"getResolvedType", CC"("CLASS")"RESOLVED_TYPE, FN_PTR(getResolvedType)},
1033 {CC"getPrimitiveArrayType", CC"("KIND")"TYPE, FN_PTR(getPrimitiveArrayType)}, 989 {CC"getMetaspaceMethod", CC"("REFLECT_METHOD"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)},
1034 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)}, 990 {CC"getJavaField", CC"("REFLECT_FIELD")"HS_RESOLVED_FIELD, FN_PTR(getJavaField)},
1035 {CC"getType", CC"("CLASS")"TYPE, FN_PTR(getType)}, 991 {CC"initializeConfiguration", CC"("HS_CONFIG")V", FN_PTR(initializeConfiguration)},
1036 {CC"getMetaspaceMethod", CC"("REFLECT_METHOD"["RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)},
1037 {CC"getJavaField", CC"("REFLECT_FIELD")"RESOLVED_FIELD, FN_PTR(getJavaField)},
1038 {CC"initializeConfiguration", CC"("CONFIG")V", FN_PTR(initializeConfiguration)},
1039 {CC"installCode", CC"("HS_COMP_RESULT HS_INSTALLED_CODE HS_CODE_INFO")"HS_INSTALLED_CODE, FN_PTR(installCode)}, 992 {CC"installCode", CC"("HS_COMP_RESULT HS_INSTALLED_CODE HS_CODE_INFO")"HS_INSTALLED_CODE, FN_PTR(installCode)},
1040 {CC"disassembleNative", CC"([BJ)"STRING, FN_PTR(disassembleNative)}, 993 {CC"disassembleNative", CC"([BJ)"STRING, FN_PTR(disassembleNative)},
1041 {CC"executeCompiledMethod", CC"("METASPACE_METHOD NMETHOD OBJECT OBJECT OBJECT")"OBJECT, FN_PTR(executeCompiledMethod)}, 994 {CC"executeCompiledMethod", CC"("METASPACE_METHOD NMETHOD OBJECT OBJECT OBJECT")"OBJECT, FN_PTR(executeCompiledMethod)},
1042 {CC"executeCompiledMethodVarargs", CC"("METASPACE_METHOD NMETHOD "["OBJECT")"OBJECT, FN_PTR(executeCompiledMethodVarargs)}, 995 {CC"executeCompiledMethodVarargs", CC"("METASPACE_METHOD NMETHOD "["OBJECT")"OBJECT, FN_PTR(executeCompiledMethodVarargs)},
1043 {CC"getDeoptedLeafGraphIds", CC"()[J", FN_PTR(getDeoptedLeafGraphIds)}, 996 {CC"getDeoptedLeafGraphIds", CC"()[J", FN_PTR(getDeoptedLeafGraphIds)},
1044 {CC"decodePC", CC"(J)"STRING, FN_PTR(decodePC)}, 997 {CC"decodePC", CC"(J)"STRING, FN_PTR(decodePC)},
1045 }; 998 };
1046 999
1047 int CompilerToVM_methods_count() { 1000 int CompilerToVM_methods_count() {
1048 return sizeof(CompilerToVM_methods) / sizeof(JNINativeMethod); 1001 return sizeof(CompilerToVM_methods) / sizeof(JNINativeMethod);
1049 } 1002 }