diff options
author | Yixin Shou <yixin.shou@intel.com> | 2014-03-05 06:07:48 -0500 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2014-06-18 10:57:26 +0100 |
commit | 7071c8d5885175a746723a3b38a347855965be08 (patch) | |
tree | cc97452b25cc3ed588760b89a4a4f8e5f03c3091 /compiler/dex/quick/dex_file_method_inliner.cc | |
parent | ad6a328506e30b7feb8ddfd2867dec7633a3e52b (diff) | |
download | art-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.cc | 8 |
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) { |