From ab1d559aee05873f70494514922ad4b767c6a709 Mon Sep 17 00:00:00 2001 From: Santiago Aboy Solanes Date: Fri, 24 Jun 2022 11:16:35 +0100 Subject: 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 --- compiler/exception_test.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'compiler/exception_test.cc') 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(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(method_f_)); -- cgit v1.2.3-59-g8ed1b