diff options
author | 2022-06-24 11:16:35 +0100 | |
---|---|---|
committer | 2022-10-07 14:48:14 +0000 | |
commit | ab1d559aee05873f70494514922ad4b767c6a709 (patch) | |
tree | 0a0831e8b9fe543b050a56fc03b2e395721cca46 /compiler/exception_test.cc | |
parent | 8c5e881904c30de5dbc03536ea67bbe2d48088fd (diff) |
Runtime implementation of try catch inlining
The main differences in the runtime are:
1) We now use a list of dex_pcs to find the correct catch handler
instead of a single dex pc
2) We now need to restore vregs of the whole frame, which may be
an inline frame.
Bug: 227283224
Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b
Change-Id: I95d2f32088e1d420c83962a1693be18f3b63f8b4
Diffstat (limited to 'compiler/exception_test.cc')
-rw-r--r-- | compiler/exception_test.cc | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/compiler/exception_test.cc b/compiler/exception_test.cc index f86e0b9b01..f55ba8e0e5 100644 --- a/compiler/exception_test.cc +++ b/compiler/exception_test.cc @@ -194,15 +194,13 @@ TEST_F(ExceptionTest, StackTraceElement) { OatQuickMethodHeader* header = OatQuickMethodHeader::FromEntryPoint( method_g_->GetEntryPointFromQuickCompiledCode()); - fake_stack.push_back(header->ToNativeQuickPc( - method_g_, kDexPc, /* is_for_catch_handler= */ false)); // return pc + fake_stack.push_back(header->ToNativeQuickPc(method_g_, kDexPc)); // return pc // Create/push fake 16byte stack frame for method g fake_stack.push_back(reinterpret_cast<uintptr_t>(method_g_)); fake_stack.push_back(0); fake_stack.push_back(0); - fake_stack.push_back(header->ToNativeQuickPc( - method_g_, kDexPc, /* is_for_catch_handler= */ false)); // return pc + fake_stack.push_back(header->ToNativeQuickPc(method_g_, kDexPc)); // return pc // Create/push fake 16byte stack frame for method f fake_stack.push_back(reinterpret_cast<uintptr_t>(method_f_)); |