comparison src/share/vm/graal/graalCompilerToVM.cpp @ 7044:34753b057324

added unit tests for JavaType, JavaMethod and ResolvedJavaMethod
author Doug Simon <doug.simon@oracle.com>
date Tue, 27 Nov 2012 16:09:05 +0100
parents dd81042f4eb1
children 9ba90252ce08
comparison
equal deleted inserted replaced
7043:947de43c68d6 7044:34753b057324
186 186
187 C2V_VMENTRY(jlong, getMetaspaceMethod, (JNIEnv *, jobject, jobject reflection_method_handle, jobject resultHolder)) 187 C2V_VMENTRY(jlong, getMetaspaceMethod, (JNIEnv *, jobject, jobject reflection_method_handle, jobject resultHolder))
188 oop reflection_method = JNIHandles::resolve(reflection_method_handle); 188 oop reflection_method = JNIHandles::resolve(reflection_method_handle);
189 oop reflection_holder = java_lang_reflect_Method::clazz(reflection_method); 189 oop reflection_holder = java_lang_reflect_Method::clazz(reflection_method);
190 int slot = java_lang_reflect_Method::slot(reflection_method); 190 int slot = java_lang_reflect_Method::slot(reflection_method);
191 Klass* holder = java_lang_Class::as_Klass(reflection_holder);
192 methodHandle method = InstanceKlass::cast(holder)->method_with_idnum(slot);
193 Handle type = GraalCompiler::createHotSpotResolvedJavaType(method, CHECK_0);
194 objArrayOop(JNIHandles::resolve(resultHolder))->obj_at_put(0, type());
195 return (jlong) (address) method();
196 }
197
198 C2V_VMENTRY(jlong, getMetaspaceConstructor, (JNIEnv *, jobject, jobject reflection_ctor_handle, jobject resultHolder))
199 oop reflection_ctor = JNIHandles::resolve(reflection_ctor_handle);
200 oop reflection_holder = java_lang_reflect_Constructor::clazz(reflection_ctor);
201 int slot = java_lang_reflect_Constructor::slot(reflection_ctor);
191 Klass* holder = java_lang_Class::as_Klass(reflection_holder); 202 Klass* holder = java_lang_Class::as_Klass(reflection_holder);
192 methodHandle method = InstanceKlass::cast(holder)->method_with_idnum(slot); 203 methodHandle method = InstanceKlass::cast(holder)->method_with_idnum(slot);
193 Handle type = GraalCompiler::createHotSpotResolvedJavaType(method, CHECK_0); 204 Handle type = GraalCompiler::createHotSpotResolvedJavaType(method, CHECK_0);
194 objArrayOop(JNIHandles::resolve(resultHolder))->obj_at_put(0, type()); 205 objArrayOop(JNIHandles::resolve(resultHolder))->obj_at_put(0, type());
195 return (jlong) (address) method(); 206 return (jlong) (address) method();
890 #define CONSTANT "Lcom/oracle/graal/api/meta/Constant;" 901 #define CONSTANT "Lcom/oracle/graal/api/meta/Constant;"
891 #define KIND "Lcom/oracle/graal/api/meta/Kind;" 902 #define KIND "Lcom/oracle/graal/api/meta/Kind;"
892 #define RUNTIME_CALL "Lcom/oracle/graal/api/code/RuntimeCall;" 903 #define RUNTIME_CALL "Lcom/oracle/graal/api/code/RuntimeCall;"
893 #define EXCEPTION_HANDLERS "[Lcom/oracle/graal/api/meta/ExceptionHandler;" 904 #define EXCEPTION_HANDLERS "[Lcom/oracle/graal/api/meta/ExceptionHandler;"
894 #define REFLECT_METHOD "Ljava/lang/reflect/Method;" 905 #define REFLECT_METHOD "Ljava/lang/reflect/Method;"
906 #define REFLECT_CONSTRUCTOR "Ljava/lang/reflect/Constructor;"
895 #define REFLECT_FIELD "Ljava/lang/reflect/Field;" 907 #define REFLECT_FIELD "Ljava/lang/reflect/Field;"
896 #define STRING "Ljava/lang/String;" 908 #define STRING "Ljava/lang/String;"
897 #define OBJECT "Ljava/lang/Object;" 909 #define OBJECT "Ljava/lang/Object;"
898 #define CLASS "Ljava/lang/Class;" 910 #define CLASS "Ljava/lang/Class;"
899 #define STACK_TRACE_ELEMENT "Ljava/lang/StackTraceElement;" 911 #define STACK_TRACE_ELEMENT "Ljava/lang/StackTraceElement;"
935 {CC"isTypeInitialized", CC"("HS_RESOLVED_TYPE")Z", FN_PTR(isTypeInitialized)}, 947 {CC"isTypeInitialized", CC"("HS_RESOLVED_TYPE")Z", FN_PTR(isTypeInitialized)},
936 {CC"initializeType", CC"("HS_RESOLVED_TYPE")V", FN_PTR(initializeType)}, 948 {CC"initializeType", CC"("HS_RESOLVED_TYPE")V", FN_PTR(initializeType)},
937 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)}, 949 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)},
938 {CC"getResolvedType", CC"("CLASS")"RESOLVED_TYPE, FN_PTR(getResolvedType)}, 950 {CC"getResolvedType", CC"("CLASS")"RESOLVED_TYPE, FN_PTR(getResolvedType)},
939 {CC"getMetaspaceMethod", CC"("REFLECT_METHOD"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)}, 951 {CC"getMetaspaceMethod", CC"("REFLECT_METHOD"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)},
952 {CC"getMetaspaceConstructor", CC"("REFLECT_CONSTRUCTOR"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceConstructor)},
940 {CC"getJavaField", CC"("REFLECT_FIELD")"HS_RESOLVED_FIELD, FN_PTR(getJavaField)}, 953 {CC"getJavaField", CC"("REFLECT_FIELD")"HS_RESOLVED_FIELD, FN_PTR(getJavaField)},
941 {CC"initializeConfiguration", CC"("HS_CONFIG")V", FN_PTR(initializeConfiguration)}, 954 {CC"initializeConfiguration", CC"("HS_CONFIG")V", FN_PTR(initializeConfiguration)},
942 {CC"installCode", CC"("HS_COMP_RESULT HS_INSTALLED_CODE HS_CODE_INFO")"HS_INSTALLED_CODE, FN_PTR(installCode)}, 955 {CC"installCode", CC"("HS_COMP_RESULT HS_INSTALLED_CODE HS_CODE_INFO")"HS_INSTALLED_CODE, FN_PTR(installCode)},
943 {CC"disassembleNative", CC"([BJ)"STRING, FN_PTR(disassembleNative)}, 956 {CC"disassembleNative", CC"([BJ)"STRING, FN_PTR(disassembleNative)},
944 {CC"executeCompiledMethod", CC"("METASPACE_METHOD NMETHOD OBJECT OBJECT OBJECT")"OBJECT, FN_PTR(executeCompiledMethod)}, 957 {CC"executeCompiledMethod", CC"("METASPACE_METHOD NMETHOD OBJECT OBJECT OBJECT")"OBJECT, FN_PTR(executeCompiledMethod)},