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