Mercurial > hg > graal-compiler
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) { |