comparison src/share/vm/graal/graalCompilerToVM.cpp @ 5466:af07e798947d

lifted fast subtype check into checkcast snippets introduced ExplodeLoopNode for use in snippets to denote a loop that must be completely unrolled
author Doug Simon <doug.simon@oracle.com>
date Fri, 01 Jun 2012 11:10:49 +0200
parents e1f45fcddb49
children 13327e512621
comparison
equal deleted inserted replaced
5465:215981c9fd77 5466:af07e798947d
787 set_boolean(env, config, "useFastNewTypeArray", UseFastNewTypeArray); 787 set_boolean(env, config, "useFastNewTypeArray", UseFastNewTypeArray);
788 set_int(env, config, "codeEntryAlignment", CodeEntryAlignment); 788 set_int(env, config, "codeEntryAlignment", CodeEntryAlignment);
789 set_int(env, config, "vmPageSize", os::vm_page_size()); 789 set_int(env, config, "vmPageSize", os::vm_page_size());
790 set_int(env, config, "stackShadowPages", StackShadowPages); 790 set_int(env, config, "stackShadowPages", StackShadowPages);
791 set_int(env, config, "hubOffset", oopDesc::klass_offset_in_bytes()); 791 set_int(env, config, "hubOffset", oopDesc::klass_offset_in_bytes());
792 set_int(env, config, "superCheckOffsetOffset", in_bytes(Klass::super_check_offset_offset()));
793 set_int(env, config, "secondarySuperCacheOffset", in_bytes(Klass::secondary_super_cache_offset()));
794 set_int(env, config, "secondarySupersOffset", in_bytes(Klass::secondary_supers_offset()));
792 set_int(env, config, "arrayLengthOffset", arrayOopDesc::length_offset_in_bytes()); 795 set_int(env, config, "arrayLengthOffset", arrayOopDesc::length_offset_in_bytes());
793 set_int(env, config, "klassStateOffset", in_bytes(instanceKlass::init_state_offset())); 796 set_int(env, config, "klassStateOffset", in_bytes(instanceKlass::init_state_offset()));
794 set_int(env, config, "klassStateFullyInitialized", (int)instanceKlass::fully_initialized); 797 set_int(env, config, "klassStateFullyInitialized", (int)instanceKlass::fully_initialized);
795 set_int(env, config, "threadTlabTopOffset", in_bytes(JavaThread::tlab_top_offset())); 798 set_int(env, config, "threadTlabTopOffset", in_bytes(JavaThread::tlab_top_offset()));
796 set_int(env, config, "threadTlabEndOffset", in_bytes(JavaThread::tlab_end_offset())); 799 set_int(env, config, "threadTlabEndOffset", in_bytes(JavaThread::tlab_end_offset()));
1019 1022
1020 nmethod* nm = (nmethod*) HotSpotCompiledMethod::nmethod(method); 1023 nmethod* nm = (nmethod*) HotSpotCompiledMethod::nmethod(method);
1021 if (nm == NULL || !nm->is_alive()) { 1024 if (nm == NULL || !nm->is_alive()) {
1022 THROW_0(vmSymbols::MethodInvalidatedException()); 1025 THROW_0(vmSymbols::MethodInvalidatedException());
1023 } 1026 }
1027
1024 JavaCalls::call(&result, mh, nm, &jca, CHECK_NULL); 1028 JavaCalls::call(&result, mh, nm, &jca, CHECK_NULL);
1025 1029
1026 if (jap.get_ret_type() == T_VOID) { 1030 if (jap.get_ret_type() == T_VOID) {
1027 return NULL; 1031 return NULL;
1028 } else if (jap.get_ret_type() == T_OBJECT || jap.get_ret_type() == T_ARRAY) { 1032 } else if (jap.get_ret_type() == T_OBJECT || jap.get_ret_type() == T_ARRAY) {