From 6cff09a873e0179f2a8d28727d4cd2447bd1bf16 Mon Sep 17 00:00:00 2001 From: agicsaki Date: Wed, 12 Aug 2015 21:20:43 -0700 Subject: [PATCH] Intrinsics recognizer returns kNone for MIPS, MIPS64 instruction sets Since no intrinsics are implemented in MIPS or MIPS64, the intrinsics recognizer now does not mark methods as being intrinsified if the current instruction set is either MIPS or MIPS64. Change-Id: I9819ccd11d280e548623ad18add057eefefbf6d5 --- compiler/optimizing/intrinsics.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/optimizing/intrinsics.cc b/compiler/optimizing/intrinsics.cc index a3cb14422..78d6437c4 100644 --- a/compiler/optimizing/intrinsics.cc +++ b/compiler/optimizing/intrinsics.cc @@ -84,7 +84,10 @@ static Primitive::Type GetType(uint64_t data, bool is_op_size) { } } -static Intrinsics GetIntrinsic(InlineMethod method) { +static Intrinsics GetIntrinsic(InlineMethod method, InstructionSet instruction_set) { + if (instruction_set == kMips || instruction_set == kMips64) { + return Intrinsics::kNone; + } switch (method.opcode) { // Floating-point conversions. case kIntrinsicDoubleCvt: @@ -363,7 +366,7 @@ void IntrinsicsRecognizer::Run() { driver_->GetMethodInlinerMap()->GetMethodInliner(&invoke->GetDexFile()); DCHECK(inliner != nullptr); if (inliner->IsIntrinsic(invoke->GetDexMethodIndex(), &method)) { - Intrinsics intrinsic = GetIntrinsic(method); + Intrinsics intrinsic = GetIntrinsic(method, graph_->GetInstructionSet()); if (intrinsic != Intrinsics::kNone) { if (!CheckInvokeType(intrinsic, invoke)) { -- 2.11.0