diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-10-16 17:13:34 +0100 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-10-20 11:52:11 +0100 |
commit | 524e7ea8cd17bad17bd9f3e0ccbb19ad0d4d9c02 (patch) | |
tree | ad07cc96f633bdae839ff2f1553d84b9c864a930 /runtime/quick_exception_handler.h | |
parent | b697c447eb61c2e14315166ec3b0d16375ae403c (diff) |
Remove ArtCode.
- Instead use OatQuickMethodHeader.
- Various cleanups now that we don't have all those
ArtMethod -> ArtCode -> OatQuickMethodHeader indirections.
As a consequence of this cleanup, exception handling got a bit
faster.
ParserCombinators benchmark (exception intensive) on x64: (lower is better)
Before:
ParserCombinators(RunTime): 1062500.0 us.
After:
ParserCombinators(RunTime): 833000.0 us.
Change-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3
Diffstat (limited to 'runtime/quick_exception_handler.h')
-rw-r--r-- | runtime/quick_exception_handler.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/quick_exception_handler.h b/runtime/quick_exception_handler.h index 89d6a25128..eedf83f6df 100644 --- a/runtime/quick_exception_handler.h +++ b/runtime/quick_exception_handler.h @@ -71,6 +71,10 @@ class QuickExceptionHandler { handler_quick_frame_pc_ = handler_quick_frame_pc; } + void SetHandlerMethodHeader(const OatQuickMethodHeader* handler_method_header) { + handler_method_header_ = handler_method_header; + } + void SetHandlerQuickArg0(uintptr_t handler_quick_arg0) { handler_quick_arg0_ = handler_quick_arg0; } @@ -115,6 +119,8 @@ class QuickExceptionHandler { ArtMethod** handler_quick_frame_; // PC to branch to for the handler. uintptr_t handler_quick_frame_pc_; + // Quick code of the handler. + const OatQuickMethodHeader* handler_method_header_; // The value for argument 0. uintptr_t handler_quick_arg0_; // The handler method to report to the debugger. |