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

src/share/vm/runtime/sharedRuntime.cpp

Print this page
rev 29186 : Review changes 2

*** 21,30 **** --- 21,31 ---- * questions. * */ #include "precompiled.hpp" + #include "aot/aotLoader.hpp" #include "classfile/stringTable.hpp" #include "classfile/systemDictionary.hpp" #include "classfile/vmSymbols.hpp" #include "code/codeCache.hpp" #include "code/compiledIC.hpp"
*** 42,52 **** #include "memory/resourceArea.hpp" #include "memory/universe.inline.hpp" #include "oops/klass.hpp" #include "oops/objArrayKlass.hpp" #include "oops/oop.inline.hpp" - #include "aot/aotLoader.hpp" #include "prims/forte.hpp" #include "prims/jvmtiExport.hpp" #include "prims/methodHandles.hpp" #include "prims/nativeLookup.hpp" #include "runtime/arguments.hpp" --- 43,52 ----
*** 504,532 **** } else { return nm->exception_begin(); } } // Entry code if (StubRoutines::returns_to_call_stub(return_address)) { return StubRoutines::catch_exception_entry(); } // Interpreted code if (Interpreter::contains(return_address)) { return Interpreter::rethrow_exception_entry(); } - #if INCLUDE_AOT - // AOT Compiled code - if (UseAOT && AOTLoader::contains(return_address)) { - AOTCompiledMethod* aotm = AOTLoader::find_aot((address) return_address); - // Set flag if return address is a method handle call site. - thread->set_is_method_handle_return(aotm->is_method_handle_return(return_address)); - return aotm->exception_begin(); - } - #endif - guarantee(blob == NULL || !blob->is_runtime_stub(), "caller should have skipped stub"); guarantee(!VtableStubs::contains(return_address), "NULL exceptions in vtables should have been handled already!"); #ifndef PRODUCT { ResourceMark rm; --- 504,529 ---- } else { return nm->exception_begin(); } } + #if INCLUDE_AOT + if (UseAOT && blob->is_aot()) { + // AOT Compiled code + return AOTLoader::exception_begin(thread, blob, return_address); + } + #endif + // Entry code if (StubRoutines::returns_to_call_stub(return_address)) { return StubRoutines::catch_exception_entry(); } // Interpreted code if (Interpreter::contains(return_address)) { return Interpreter::rethrow_exception_entry(); } guarantee(blob == NULL || !blob->is_runtime_stub(), "caller should have skipped stub"); guarantee(!VtableStubs::contains(return_address), "NULL exceptions in vtables should have been handled already!"); #ifndef PRODUCT { ResourceMark rm;
src/share/vm/runtime/sharedRuntime.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File