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

src/share/vm/interpreter/interpreterRuntime.cpp

Print this page
rev 12400 : 8168503: JEP 297: Unified arm32/arm64 Port
Reviewed-by: kvn, enevill, ihse, dholmes, erik, coleenp, cjplummer

*** 25,35 **** #include "precompiled.hpp" #include "classfile/javaClasses.inline.hpp" #include "classfile/systemDictionary.hpp" #include "classfile/vmSymbols.hpp" #include "code/codeCache.hpp" - #include "code/codeCacheExtensions.hpp" #include "compiler/compileBroker.hpp" #include "compiler/disassembler.hpp" #include "gc/shared/collectedHeap.hpp" #include "interpreter/interpreter.hpp" #include "interpreter/interpreterRuntime.hpp" --- 25,34 ----
*** 1197,1216 **** memcpy(handler, buffer->insts_begin(), insts_size); pd_set_handler(handler); ICache::invalidate_range(handler, insts_size); _handler = handler + insts_size; } - CodeCacheExtensions::handle_generated_handler(handler, buffer->name(), _handler); return handler; } void SignatureHandlerLibrary::add(const methodHandle& method) { if (method->signature_handler() == NULL) { // use slow signature handler if we can't do better int handler_index = -1; // check if we can use customized (fast) signature handler ! if (UseFastSignatureHandlers && CodeCacheExtensions::support_fast_signature_handlers() && method->size_of_parameters() <= Fingerprinter::max_size_of_parameters) { // use customized signature handler MutexLocker mu(SignatureHandlerLibrary_lock); // make sure data structure is initialized initialize(); // lookup method signature's fingerprint --- 1196,1214 ---- memcpy(handler, buffer->insts_begin(), insts_size); pd_set_handler(handler); ICache::invalidate_range(handler, insts_size); _handler = handler + insts_size; } return handler; } void SignatureHandlerLibrary::add(const methodHandle& method) { if (method->signature_handler() == NULL) { // use slow signature handler if we can't do better int handler_index = -1; // check if we can use customized (fast) signature handler ! if (UseFastSignatureHandlers && method->size_of_parameters() <= Fingerprinter::max_size_of_parameters) { // use customized signature handler MutexLocker mu(SignatureHandlerLibrary_lock); // make sure data structure is initialized initialize(); // lookup method signature's fingerprint
*** 1223,1241 **** ResourceMark rm; ptrdiff_t align_offset = (address) round_to((intptr_t)_buffer, CodeEntryAlignment) - (address)_buffer; CodeBuffer buffer((address)(_buffer + align_offset), SignatureHandlerLibrary::buffer_size - align_offset); - if (!CodeCacheExtensions::support_dynamic_code()) { - // we need a name for the signature (for lookups or saving) - const int SYMBOL_SIZE = 50; - char *symbolName = NEW_RESOURCE_ARRAY(char, SYMBOL_SIZE); - // support for named signatures - jio_snprintf(symbolName, SYMBOL_SIZE, - "native_" UINT64_FORMAT, fingerprint); - buffer.set_name(symbolName); - } InterpreterRuntime::SignatureHandlerGenerator(method, &buffer).generate(fingerprint); // copy into code heap address handler = set_handler(&buffer); if (handler == NULL) { // use slow signature handler (without memorizing it in the fingerprints) --- 1221,1230 ----
*** 1249,1259 **** (method->is_static() ? "static" : "receiver"), method->name_and_sig_as_C_string(), fingerprint, buffer.insts_size()); if (buffer.insts_size() > 0) { - // buffer may be empty for pregenerated handlers Disassembler::decode(handler, handler + buffer.insts_size()); } #ifndef PRODUCT address rh_begin = Interpreter::result_handler(method()->result_type()); if (CodeCache::contains(rh_begin)) { --- 1238,1247 ----
src/share/vm/interpreter/interpreterRuntime.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File