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