Mercurial > hg > graal-jvmci-8
diff src/share/vm/jvmci/jvmciCodeInstaller.cpp @ 21731:df9d2375512a
Track max live register value in reference map
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Wed, 03 Jun 2015 20:24:05 -0700 |
parents | b9f9b8af17ff |
children | 861108f5408e |
line wrap: on
line diff
--- a/src/share/vm/jvmci/jvmciCodeInstaller.cpp Wed Jun 03 19:57:38 2015 -0700 +++ b/src/share/vm/jvmci/jvmciCodeInstaller.cpp Wed Jun 03 20:24:05 2015 -0700 @@ -72,6 +72,9 @@ // creates a HotSpot oop map out of the byte arrays provided by DebugInfo OopMap* CodeInstaller::create_oop_map(oop debug_info) { oop reference_map = DebugInfo::referenceMap(debug_info); + if (HotSpotReferenceMap::maxRegisterSize(reference_map) > 16) { + _has_wide_vector = true; + } OopMap* map = new OopMap(_total_frame_size, _parameter_count); objArrayOop objects = HotSpotReferenceMap::objects(reference_map); typeArrayOop bytesPerArray = HotSpotReferenceMap::bytesPerElement(reference_map); @@ -447,8 +450,10 @@ // Make sure a valid compile_id is associated with every compile id = CompileBroker::assign_compile_id_unlocked(Thread::current(), method, entry_bci); } - result = JVMCIEnv::register_method(method, nm, entry_bci, &_offsets, _custom_stack_area_offset, &buffer, stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table, - JVMCICompiler::instance(), _debug_recorder, _dependencies, env, id, false, installed_code, compiled_code, speculation_log); + result = JVMCIEnv::register_method(method, nm, entry_bci, &_offsets, _custom_stack_area_offset, &buffer, + stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table, + JVMCICompiler::instance(), _debug_recorder, _dependencies, env, id, + false, _has_wide_vector, installed_code, compiled_code, speculation_log); cb = nm; } @@ -490,6 +495,8 @@ #endif _next_call_type = INVOKE_INVALID; + + _has_wide_vector = false; } int CodeInstaller::estimate_stub_entries() {