From 524e7ea8cd17bad17bd9f3e0ccbb19ad0d4d9c02 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Fri, 16 Oct 2015 17:13:34 +0100 Subject: 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 --- runtime/quick_exception_handler.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'runtime/quick_exception_handler.h') 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. -- cgit v1.2.3-59-g8ed1b