src/share/vm/code/nmethod.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/code/nmethod.cpp	Tue Sep 22 16:26:51 2015
--- new/src/share/vm/code/nmethod.cpp	Tue Sep 22 16:26:51 2015

*** 29,39 **** --- 29,39 ---- #include "code/nmethod.hpp" #include "code/scopeDesc.hpp" #include "compiler/abstractCompiler.hpp" #include "compiler/compileBroker.hpp" #include "compiler/compileLog.hpp" ! #include "compiler/compilerOracle.hpp" ! #include "compiler/compilerDirectives.hpp" #include "compiler/disassembler.hpp" #include "interpreter/bytecode.hpp" #include "oops/methodData.hpp" #include "oops/oop.inline.hpp" #include "prims/jvmtiRedefineClassesTrace.hpp"
*** 502,515 **** --- 502,518 ---- compile_id, &offsets, code_buffer, frame_size, basic_lock_owner_sp_offset, basic_lock_sp_offset, oop_maps); NOT_PRODUCT(if (nm != NULL) nmethod_stats.note_native_nmethod(nm)); if ((PrintAssembly || CompilerOracle::should_print(method)) && nm != NULL) { + + if (Thread::current()->is_Compiler_thread()) { + if (CURRENT_ENV->dirset()->PrintAssemblyOption && nm != NULL) { Disassembler::decode(nm); } } + } // verify nmethod debug_only(if (nm) nm->verify();) // might block if (nm != NULL) { nm->log_new_nmethod();
*** 577,589 **** --- 580,589 ---- // record this nmethod as dependent on this klass InstanceKlass::cast(klass)->add_dependent_nmethod(nm); } } NOT_PRODUCT(nmethod_stats.note_nmethod(nm)); if (PrintAssembly || CompilerOracle::has_option_string(method, "PrintAssembly")) { Disassembler::decode(nm); } } } // Do verification and logging outside CodeCache_lock. if (nm != NULL) { // Safepoints in nmethod::verify aren't allowed because nm hasn't been installed yet.
*** 781,800 **** --- 781,792 ---- // static or non static assert(compiler->is_c2() || _method->is_static() == (entry_point() == _verified_entry_point), " entry points must be same for static methods and vice versa"); } bool printnmethods = PrintNMethods || CompilerOracle::should_print(_method) || CompilerOracle::has_option_string(_method, "PrintNMethods"); if (printnmethods || PrintDebugInfo || PrintRelocations || PrintDependencies || PrintExceptionHandlers) { print_nmethod(printnmethods); } } // Print a short set of xml attributes to identify this nmethod. The // output should be embedded in some other element. void nmethod::log_identity(xmlStream* log) const { log->print(" compile_id='%d'", compile_id()); const char* nm_kind = compile_kind();

src/share/vm/code/nmethod.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File