diff options
author | David Srbecky <dsrbecky@google.com> | 2019-07-01 15:31:41 +0100 |
---|---|---|
committer | David Srbecky <dsrbecky@google.com> | 2019-07-22 13:11:49 +0000 |
commit | cffa254b3b7c307b557ba2250fc822db352d3293 (patch) | |
tree | ef49730b09bd0f4ebb26387311ed4501db3e29bf /runtime/quick_exception_handler.cc | |
parent | 9a8634a7bc4f69e6c89933f906ddd0a45dd05aa7 (diff) |
Add fast path for exception vreg copying.
It is not necessary to decode CodeInfo in GetVReg
since the caller already did it.
Test: ./art/test.py -b --host --64 --interpreter
Change-Id: I0f8941f43acdc0f2c43b78ef87d3e796e320c959
Diffstat (limited to 'runtime/quick_exception_handler.cc')
-rw-r--r-- | runtime/quick_exception_handler.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/runtime/quick_exception_handler.cc b/runtime/quick_exception_handler.cc index 1777b3d0ff..727bdf02e1 100644 --- a/runtime/quick_exception_handler.cc +++ b/runtime/quick_exception_handler.cc @@ -325,10 +325,12 @@ void QuickExceptionHandler::SetCatchEnvironmentForOptimizedHandler(StackVisitor* // Get vreg value from its current location. uint32_t vreg_value; VRegKind vreg_kind = ToVRegKind(throw_vreg_map[vreg].GetKind()); - bool get_vreg_success = stack_visitor->GetVReg(stack_visitor->GetMethod(), - vreg, - vreg_kind, - &vreg_value); + bool get_vreg_success = + stack_visitor->GetVReg(stack_visitor->GetMethod(), + vreg, + vreg_kind, + &vreg_value, + throw_vreg_map[vreg]); CHECK(get_vreg_success) << "VReg " << vreg << " was optimized out (" << "method=" << ArtMethod::PrettyMethod(stack_visitor->GetMethod()) << ", dex_pc=" << stack_visitor->GetDexPc() << ", " |