comparison src/share/vm/graal/graalCompilerToVM.cpp @ 15052:5e6f29f287d6

added InstanceKlass::_graal_node_class field to accelerate Node.getNodeClass()
author Doug Simon <doug.simon@oracle.com>
date Thu, 10 Apr 2014 00:01:30 +0200
parents aa1a43bfdf4e
children d4a9d6f6e57d
comparison
equal deleted inserted replaced
15051:2df054b37edc 15052:5e6f29f287d6
725 VMThread::execute(&op); 725 VMThread::execute(&op);
726 } 726 }
727 HotSpotInstalledCode::set_codeBlob(hotspotInstalledCode, 0); 727 HotSpotInstalledCode::set_codeBlob(hotspotInstalledCode, 0);
728 C2V_END 728 C2V_END
729 729
730 730 C2V_VMENTRY(jobject, getJavaMirror, (JNIEnv *env, jobject, jlong metaspace_klass))
731 C2V_VMENTRY(jobject, readUnsafeUncompressedPointer, (JNIEnv *env, jobject, jobject o, jlong offset)) 731 Klass* klass = asKlass(metaspace_klass);
732 oop resolved_o = JNIHandles::resolve(o); 732 return JNIHandles::make_local(klass->java_mirror());
733 address addr = ((address)resolved_o) + offset; 733 C2V_END
734 return JNIHandles::make_local(*((oop*)addr)); 734
735 C2V_VMENTRY(jobject, getNodeClass, (JNIEnv *env, jobject, jobject java_class_handle))
736 oop java_class = JNIHandles::resolve(java_class_handle);
737 InstanceKlass* iklass = (InstanceKlass*) java_lang_Class::as_Klass(java_class);
738 return JNIHandles::make_local(iklass->graal_node_class());
739 C2V_END
740
741 C2V_VMENTRY(void, setNodeClass, (JNIEnv *env, jobject, jobject java_class_handle, jobject value))
742 oop java_class = JNIHandles::resolve(java_class_handle);
743 InstanceKlass* iklass = (InstanceKlass*) java_lang_Class::as_Klass(java_class);
744 iklass->set_graal_node_class(JNIHandles::resolve(value));
735 C2V_END 745 C2V_END
736 746
737 C2V_VMENTRY(jlong, readUnsafeKlassPointer, (JNIEnv *env, jobject, jobject o)) 747 C2V_VMENTRY(jlong, readUnsafeKlassPointer, (JNIEnv *env, jobject, jobject o))
738 oop resolved_o = JNIHandles::resolve(o); 748 oop resolved_o = JNIHandles::resolve(o);
739 jlong klass = (jlong)(address)resolved_o->klass(); 749 jlong klass = (jlong)(address)resolved_o->klass();
785 #define STACK_TRACE_ELEMENT "Ljava/lang/StackTraceElement;" 795 #define STACK_TRACE_ELEMENT "Ljava/lang/StackTraceElement;"
786 #define HS_RESOLVED_METHOD "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod;" 796 #define HS_RESOLVED_METHOD "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod;"
787 #define HS_COMPILED_CODE "Lcom/oracle/graal/hotspot/HotSpotCompiledCode;" 797 #define HS_COMPILED_CODE "Lcom/oracle/graal/hotspot/HotSpotCompiledCode;"
788 #define HS_CONFIG "Lcom/oracle/graal/hotspot/HotSpotVMConfig;" 798 #define HS_CONFIG "Lcom/oracle/graal/hotspot/HotSpotVMConfig;"
789 #define HS_INSTALLED_CODE "Lcom/oracle/graal/hotspot/meta/HotSpotInstalledCode;" 799 #define HS_INSTALLED_CODE "Lcom/oracle/graal/hotspot/meta/HotSpotInstalledCode;"
800 #define NODE_CLASS "Lcom/oracle/graal/graph/NodeClass;"
790 #define METASPACE_KLASS "J" 801 #define METASPACE_KLASS "J"
791 #define METASPACE_METHOD "J" 802 #define METASPACE_METHOD "J"
792 #define METASPACE_METHOD_DATA "J" 803 #define METASPACE_METHOD_DATA "J"
793 #define METASPACE_CONSTANT_POOL "J" 804 #define METASPACE_CONSTANT_POOL "J"
794 #define METASPACE_SYMBOL "J" 805 #define METASPACE_SYMBOL "J"
833 {CC"getLineNumberTable", CC"("METASPACE_METHOD")[J", FN_PTR(getLineNumberTable)}, 844 {CC"getLineNumberTable", CC"("METASPACE_METHOD")[J", FN_PTR(getLineNumberTable)},
834 {CC"getLocalVariableTableStart", CC"("METASPACE_METHOD")J", FN_PTR(getLocalVariableTableStart)}, 845 {CC"getLocalVariableTableStart", CC"("METASPACE_METHOD")J", FN_PTR(getLocalVariableTableStart)},
835 {CC"getLocalVariableTableLength", CC"("METASPACE_METHOD")I", FN_PTR(getLocalVariableTableLength)}, 846 {CC"getLocalVariableTableLength", CC"("METASPACE_METHOD")I", FN_PTR(getLocalVariableTableLength)},
836 {CC"reprofile", CC"("METASPACE_METHOD")V", FN_PTR(reprofile)}, 847 {CC"reprofile", CC"("METASPACE_METHOD")V", FN_PTR(reprofile)},
837 {CC"invalidateInstalledCode", CC"("HS_INSTALLED_CODE")V", FN_PTR(invalidateInstalledCode)}, 848 {CC"invalidateInstalledCode", CC"("HS_INSTALLED_CODE")V", FN_PTR(invalidateInstalledCode)},
838 {CC"readUnsafeUncompressedPointer", CC"("OBJECT"J)"OBJECT, FN_PTR(readUnsafeUncompressedPointer)}, 849 {CC"getJavaMirror", CC"("METASPACE_KLASS")"CLASS, FN_PTR(getJavaMirror)},
850 {CC"getNodeClass", CC"("CLASS")"NODE_CLASS, FN_PTR(getNodeClass)},
851 {CC"setNodeClass", CC"("CLASS NODE_CLASS")V", FN_PTR(setNodeClass)},
839 {CC"readUnsafeKlassPointer", CC"("OBJECT")J", FN_PTR(readUnsafeKlassPointer)}, 852 {CC"readUnsafeKlassPointer", CC"("OBJECT")J", FN_PTR(readUnsafeKlassPointer)},
840 {CC"collectCounters", CC"()[J", FN_PTR(collectCounters)}, 853 {CC"collectCounters", CC"()[J", FN_PTR(collectCounters)},
841 {CC"getGPUs", CC"()"STRING, FN_PTR(getGPUs)}, 854 {CC"getGPUs", CC"()"STRING, FN_PTR(getGPUs)},
842 {CC"allocateCompileId", CC"("METASPACE_METHOD"I)I", FN_PTR(allocateCompileId)}, 855 {CC"allocateCompileId", CC"("METASPACE_METHOD"I)I", FN_PTR(allocateCompileId)},
843 {CC"isMature", CC"("METASPACE_METHOD_DATA")Z", FN_PTR(isMature)}, 856 {CC"isMature", CC"("METASPACE_METHOD_DATA")Z", FN_PTR(isMature)},