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/arch/mips/context_mips.cc | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'runtime/arch/mips/context_mips.cc') diff --git a/runtime/arch/mips/context_mips.cc b/runtime/arch/mips/context_mips.cc index dba62d9200..4dedb3339e 100644 --- a/runtime/arch/mips/context_mips.cc +++ b/runtime/arch/mips/context_mips.cc @@ -16,7 +16,6 @@ #include "context_mips.h" -#include "art_method-inl.h" #include "base/bit_utils.h" #include "quick/quick_method_frame_info.h" @@ -37,21 +36,19 @@ void MipsContext::Reset() { arg0_ = 0; } -void MipsContext::FillCalleeSaves(const StackVisitor& fr) { - ArtCode code = fr.GetCurrentCode(); - const QuickMethodFrameInfo frame_info = code.GetQuickFrameInfo(); +void MipsContext::FillCalleeSaves(uint8_t* frame, const QuickMethodFrameInfo& frame_info) { int spill_pos = 0; // Core registers come first, from the highest down to the lowest. for (uint32_t core_reg : HighToLowBits(frame_info.CoreSpillMask())) { - gprs_[core_reg] = fr.CalleeSaveAddress(spill_pos, frame_info.FrameSizeInBytes()); + gprs_[core_reg] = CalleeSaveAddress(frame, spill_pos, frame_info.FrameSizeInBytes()); ++spill_pos; } DCHECK_EQ(spill_pos, POPCOUNT(frame_info.CoreSpillMask())); // FP registers come second, from the highest down to the lowest. for (uint32_t fp_reg : HighToLowBits(frame_info.FpSpillMask())) { - fprs_[fp_reg] = fr.CalleeSaveAddress(spill_pos, frame_info.FrameSizeInBytes()); + fprs_[fp_reg] = CalleeSaveAddress(frame, spill_pos, frame_info.FrameSizeInBytes()); ++spill_pos; } DCHECK_EQ(spill_pos, POPCOUNT(frame_info.CoreSpillMask()) + POPCOUNT(frame_info.FpSpillMask())); -- cgit v1.2.3-59-g8ed1b