comparison src/share/vm/graal/graalCodeInstaller.cpp @ 13641:5a9afbf72714

Add a speculation oop for uncommon trap deoptimization. Save it in the SpeculationLog during deoptimization.
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 12 Dec 2013 15:13:02 +0100
parents b1838411e896
children 8d8732e14447
comparison
equal deleted inserted replaced
13640:bfe7a8c8c3c6 13641:5a9afbf72714
358 358
359 return result; 359 return result;
360 } 360 }
361 361
362 // constructor used to create a method 362 // constructor used to create a method
363 GraalEnv::CodeInstallResult CodeInstaller::install(Handle& compiled_code, CodeBlob*& cb, Handle installed_code, Handle triggered_deoptimizations) { 363 GraalEnv::CodeInstallResult CodeInstaller::install(Handle& compiled_code, CodeBlob*& cb, Handle installed_code, Handle speculation_log) {
364 BufferBlob* buffer_blob = GraalCompiler::initialize_buffer_blob(); 364 BufferBlob* buffer_blob = GraalCompiler::initialize_buffer_blob();
365 if (buffer_blob == NULL) { 365 if (buffer_blob == NULL) {
366 return GraalEnv::cache_full; 366 return GraalEnv::cache_full;
367 } 367 }
368 368
401 nmethod* nm = NULL; 401 nmethod* nm = NULL;
402 methodHandle method = getMethodFromHotSpotMethod(HotSpotCompiledNmethod::method(compiled_code)); 402 methodHandle method = getMethodFromHotSpotMethod(HotSpotCompiledNmethod::method(compiled_code));
403 jint entry_bci = HotSpotCompiledNmethod::entryBCI(compiled_code); 403 jint entry_bci = HotSpotCompiledNmethod::entryBCI(compiled_code);
404 jint id = HotSpotCompiledNmethod::id(compiled_code); 404 jint id = HotSpotCompiledNmethod::id(compiled_code);
405 result = GraalEnv::register_method(method, nm, entry_bci, &_offsets, _custom_stack_area_offset, &buffer, stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table, 405 result = GraalEnv::register_method(method, nm, entry_bci, &_offsets, _custom_stack_area_offset, &buffer, stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table,
406 GraalCompiler::instance(), _debug_recorder, _dependencies, NULL, id, false, leaf_graph_ids, installed_code, triggered_deoptimizations); 406 GraalCompiler::instance(), _debug_recorder, _dependencies, NULL, id, false, leaf_graph_ids, installed_code, speculation_log);
407 cb = nm; 407 cb = nm;
408 } 408 }
409 409
410 if (cb != NULL) { 410 if (cb != NULL) {
411 // Make sure the pre-calculated constants section size was correct. 411 // Make sure the pre-calculated constants section size was correct.