8168503: JEP 297: Unified arm32/arm64 Port

Reviewed-by: kvn, enevill, ihse, dholmes, erikj, coleenp, cjplummer
This commit is contained in:
Bob Vandette 2016-12-19 12:39:01 -05:00
parent 4106c6bc9b
commit 6009cf0793
131 changed files with 62914 additions and 519 deletions

View file

@ -29,7 +29,6 @@
#include "classfile/vmSymbols.hpp"
#include "code/codeCache.hpp"
#include "code/compiledIC.hpp"
#include "code/codeCacheExtensions.hpp"
#include "code/scopeDesc.hpp"
#include "code/vtableStubs.hpp"
#include "compiler/abstractCompiler.hpp"
@ -2580,27 +2579,15 @@ void AdapterHandlerLibrary::initialize() {
if (_adapters != NULL) return;
_adapters = new AdapterHandlerTable();
if (!CodeCacheExtensions::skip_compiler_support()) {
// Create a special handler for abstract methods. Abstract methods
// are never compiled so an i2c entry is somewhat meaningless, but
// throw AbstractMethodError just in case.
// Pass wrong_method_abstract for the c2i transitions to return
// AbstractMethodError for invalid invocations.
address wrong_method_abstract = SharedRuntime::get_handle_wrong_method_abstract_stub();
_abstract_method_handler = AdapterHandlerLibrary::new_entry(new AdapterFingerPrint(0, NULL),
StubRoutines::throw_AbstractMethodError_entry(),
wrong_method_abstract, wrong_method_abstract);
} else {
// Adapters are not supposed to be used.
// Generate a special one to cause an error if used (and store this
// singleton in place of the useless _abstract_method_error adapter).
address entry = (address) &unexpected_adapter_call;
_abstract_method_handler = AdapterHandlerLibrary::new_entry(new AdapterFingerPrint(0, NULL),
entry,
entry,
entry);
}
// Create a special handler for abstract methods. Abstract methods
// are never compiled so an i2c entry is somewhat meaningless, but
// throw AbstractMethodError just in case.
// Pass wrong_method_abstract for the c2i transitions to return
// AbstractMethodError for invalid invocations.
address wrong_method_abstract = SharedRuntime::get_handle_wrong_method_abstract_stub();
_abstract_method_handler = AdapterHandlerLibrary::new_entry(new AdapterFingerPrint(0, NULL),
StubRoutines::throw_AbstractMethodError_entry(),
wrong_method_abstract, wrong_method_abstract);
}
AdapterHandlerEntry* AdapterHandlerLibrary::new_entry(AdapterFingerPrint* fingerprint,
@ -2651,17 +2638,6 @@ AdapterHandlerEntry* AdapterHandlerLibrary::get_adapter0(const methodHandle& met
// make sure data structure is initialized
initialize();
// during dump time, always generate adapters, even if the
// compiler has been turned off.
if (!DumpSharedSpaces && CodeCacheExtensions::skip_compiler_support()) {
// adapters are useless and should not be used, including the
// abstract_method_handler. However, some callers check that
// an adapter was installed.
// Return the singleton adapter, stored into _abstract_method_handler
// and modified to cause an error if we ever call it.
return _abstract_method_handler;
}
if (method->is_abstract()) {
return _abstract_method_handler;
}