hotspot/src/share/vm/interpreter/templateInterpreterGenerator.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.cpp	Fri Dec  2 11:15:45 2016
--- new/hotspot/src/share/vm/interpreter/templateInterpreterGenerator.cpp	Fri Dec  2 11:15:43 2016

*** 21,31 **** --- 21,30 ---- * questions. * */ #include "precompiled.hpp" #include "code/codeCacheExtensions.hpp" #include "interpreter/interpreter.hpp" #include "interpreter/interpreterRuntime.hpp" #include "interpreter/interp_masm.hpp" #include "interpreter/templateInterpreter.hpp" #include "interpreter/templateInterpreterGenerator.hpp"
*** 53,66 **** --- 52,61 ---- T_DOUBLE , T_OBJECT }; void TemplateInterpreterGenerator::generate_all() { // Loop, in case we need several variants of the interpreter entries do { if (!CodeCacheExtensions::skip_code_generation()) { // bypass code generation when useless { CodeletMark cm(_masm, "slow signature handler"); AbstractInterpreter::_slow_signature_handler = generate_slow_signature_handler(); } { CodeletMark cm(_masm, "error exits");
*** 264,275 **** --- 259,268 ---- #undef method_entry // Bytecodes set_entry_points_for_all_bytes(); } } while (CodeCacheExtensions::needs_other_interpreter_variant()); // installation of code in other places in the runtime // (ExcutableCodeManager calls not needed to copy the entries) set_safepoints_for_all_bytes(); }
*** 312,324 **** --- 305,314 ---- Interpreter::_wentry_point[i] = _unimplemented_bytecode; } void TemplateInterpreterGenerator::set_entry_points(Bytecodes::Code code) { if (CodeCacheExtensions::skip_template_interpreter_entries(code)) { return; } CodeletMark cm(_masm, Bytecodes::name(code), code); // initialize entry points assert(_unimplemented_bytecode != NULL, "should have been generated before"); assert(_illegal_bytecode_sequence != NULL, "should have been generated before"); address bep = _illegal_bytecode_sequence;
*** 345,355 **** --- 335,344 ---- } // set entry points EntryPoint entry(bep, zep, cep, sep, aep, iep, lep, fep, dep, vep); Interpreter::_normal_table.set_entry(code, entry); Interpreter::_wentry_point[code] = wep; CodeCacheExtensions::completed_template_interpreter_entries(_masm, code); } void TemplateInterpreterGenerator::set_wide_entry_point(Template* t, address& wep) { assert(t->is_valid(), "template must exist");

hotspot/src/share/vm/interpreter/templateInterpreterGenerator.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File