904 905 int nr_meta_refs = recorder->nr_meta_refs(); 906 JVMCIObjectArray metadataArray = JVMCIENV->new_Object_array(nr_meta_refs, JVMCI_CHECK_(JVMCI::cache_full)); 907 for (int i = 0; i < nr_meta_refs; ++i) { 908 jobject element = recorder->meta_element(i); 909 if (element == NULL) { 910 return JVMCI::cache_full; 911 } 912 JVMCIENV->put_object_at(metadataArray, i, JVMCIENV->wrap(element)); 913 } 914 HotSpotJVMCI::HotSpotMetaData::set_metadata(JVMCIENV, metadata_handle, metadataArray); 915 916 ExceptionHandlerTable* handler = code_metadata.get_exception_table(); 917 int table_size = handler->size_in_bytes(); 918 JVMCIPrimitiveArray exceptionArray = JVMCIENV->new_byteArray(table_size, JVMCI_CHECK_(JVMCI::cache_full)); 919 if (table_size > 0) { 920 handler->copy_bytes_to((address) HotSpotJVMCI::resolve(exceptionArray)->byte_at_addr(0)); 921 } 922 HotSpotJVMCI::HotSpotMetaData::set_exceptionBytes(JVMCIENV, metadata_handle, exceptionArray); 923 924 return result; 925 #else 926 JVMCI_THROW_MSG_0(InternalError, "unimplemented"); 927 #endif 928 C2V_END 929 930 C2V_VMENTRY(void, resetCompilationStatistics, (JNIEnv* env, jobject)) 931 JVMCICompiler* compiler = JVMCICompiler::instance(true, CHECK); 932 CompilerStatistics* stats = compiler->stats(); 933 stats->_standard.reset(); 934 stats->_osr.reset(); 935 C2V_END 936 937 C2V_VMENTRY_NULL(jobject, disassembleCodeBlob, (JNIEnv* env, jobject, jobject installedCode)) 938 HandleMark hm; 939 940 if (installedCode == NULL) { 941 JVMCI_THROW_MSG_NULL(NullPointerException, "installedCode is null"); 942 } 943 | 904 905 int nr_meta_refs = recorder->nr_meta_refs(); 906 JVMCIObjectArray metadataArray = JVMCIENV->new_Object_array(nr_meta_refs, JVMCI_CHECK_(JVMCI::cache_full)); 907 for (int i = 0; i < nr_meta_refs; ++i) { 908 jobject element = recorder->meta_element(i); 909 if (element == NULL) { 910 return JVMCI::cache_full; 911 } 912 JVMCIENV->put_object_at(metadataArray, i, JVMCIENV->wrap(element)); 913 } 914 HotSpotJVMCI::HotSpotMetaData::set_metadata(JVMCIENV, metadata_handle, metadataArray); 915 916 ExceptionHandlerTable* handler = code_metadata.get_exception_table(); 917 int table_size = handler->size_in_bytes(); 918 JVMCIPrimitiveArray exceptionArray = JVMCIENV->new_byteArray(table_size, JVMCI_CHECK_(JVMCI::cache_full)); 919 if (table_size > 0) { 920 handler->copy_bytes_to((address) HotSpotJVMCI::resolve(exceptionArray)->byte_at_addr(0)); 921 } 922 HotSpotJVMCI::HotSpotMetaData::set_exceptionBytes(JVMCIENV, metadata_handle, exceptionArray); 923 924 ImplicitExceptionTable* implicit = code_metadata.get_implicit_exception_table(); 925 int implicit_table_size = implicit->size_in_bytes(); 926 JVMCIPrimitiveArray implicitExceptionArray = JVMCIENV->new_byteArray(implicit_table_size, JVMCI_CHECK_(JVMCI::cache_full)); 927 if (implicit_table_size > 0) { 928 implicit->copy_bytes_to((address) HotSpotJVMCI::resolve(implicitExceptionArray)->byte_at_addr(0), implicit_table_size); 929 } 930 HotSpotJVMCI::HotSpotMetaData::set_implicitExceptionBytes(JVMCIENV, metadata_handle, implicitExceptionArray); 931 932 return result; 933 #else 934 JVMCI_THROW_MSG_0(InternalError, "unimplemented"); 935 #endif 936 C2V_END 937 938 C2V_VMENTRY(void, resetCompilationStatistics, (JNIEnv* env, jobject)) 939 JVMCICompiler* compiler = JVMCICompiler::instance(true, CHECK); 940 CompilerStatistics* stats = compiler->stats(); 941 stats->_standard.reset(); 942 stats->_osr.reset(); 943 C2V_END 944 945 C2V_VMENTRY_NULL(jobject, disassembleCodeBlob, (JNIEnv* env, jobject, jobject installedCode)) 946 HandleMark hm; 947 948 if (installedCode == NULL) { 949 JVMCI_THROW_MSG_NULL(NullPointerException, "installedCode is null"); 950 } 951 |