summaryrefslogtreecommitdiffstats
path: root/compiler/dex/quick/dex_file_method_inliner.cc
diff options
context:
space:
mode:
authorYixin Shou <yixin.shou@intel.com>2014-03-05 06:07:48 -0500
committerVladimir Marko <vmarko@google.com>2014-06-18 10:57:26 +0100
commit7071c8d5885175a746723a3b38a347855965be08 (patch)
treecc97452b25cc3ed588760b89a4a4f8e5f03c3091 /compiler/dex/quick/dex_file_method_inliner.cc
parentad6a328506e30b7feb8ddfd2867dec7633a3e52b (diff)
downloadart-7071c8d5885175a746723a3b38a347855965be08.zip
art-7071c8d5885175a746723a3b38a347855965be08.tar.gz
art-7071c8d5885175a746723a3b38a347855965be08.tar.bz2
Add x86 inlined abs method for float/double
Add the optimized implementation of inlined abs method for float/double for X86 side. Change-Id: I2f367542f321d88a976129f9f7156fd3c2965c8a Signed-off-by: Yixin Shou <yixin.shou@intel.com>
Diffstat (limited to 'compiler/dex/quick/dex_file_method_inliner.cc')
-rw-r--r--compiler/dex/quick/dex_file_method_inliner.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/compiler/dex/quick/dex_file_method_inliner.cc b/compiler/dex/quick/dex_file_method_inliner.cc
index 6397208..3f9379c 100644
--- a/compiler/dex/quick/dex_file_method_inliner.cc
+++ b/compiler/dex/quick/dex_file_method_inliner.cc
@@ -292,10 +292,14 @@ bool DexFileMethodInliner::AnalyseMethodCode(verifier::MethodVerifier* verifier)
return success && AddInlineMethod(verifier->GetMethodReference().dex_method_index, method);
}
-bool DexFileMethodInliner::IsIntrinsic(uint32_t method_index) {
+bool DexFileMethodInliner::IsIntrinsic(uint32_t method_index, InlineMethod* intrinsic) {
ReaderMutexLock mu(Thread::Current(), lock_);
auto it = inline_methods_.find(method_index);
- return it != inline_methods_.end() && (it->second.flags & kInlineIntrinsic) != 0;
+ bool res = (it != inline_methods_.end() && (it->second.flags & kInlineIntrinsic) != 0);
+ if (res && intrinsic != nullptr) {
+ *intrinsic = it->second;
+ }
+ return res;
}
bool DexFileMethodInliner::GenIntrinsic(Mir2Lir* backend, CallInfo* info) {