summaryrefslogtreecommitdiff
path: root/compiler/optimizing/common_arm.h
diff options
context:
space:
mode:
author xueliang.zhong <xueliang.zhong@linaro.org> 2016-03-28 16:44:32 +0100
committer xueliang.zhong <xueliang.zhong@linaro.org> 2017-02-02 17:04:03 +0000
commitc032e74b57d31861b6bb55500016ebb5476eb142 (patch)
tree044af8b3efe9326245a9f32144a6b23b64ec0e22 /compiler/optimizing/common_arm.h
parent1e6578a68d6f4499362254bcdeb6bbf55e309ea4 (diff)
Math.min and Math.max intrinsics for ARM
This patch implements min/max intrinsics for: * Long * Float * Double Test: m test-art-host Test: m test-art-target Test: 082-inline-execute Change-Id: I2dfab8ab606f3d01fba712f9014d2e0617449d74
Diffstat (limited to 'compiler/optimizing/common_arm.h')
-rw-r--r--compiler/optimizing/common_arm.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/common_arm.h b/compiler/optimizing/common_arm.h
index 21c3ae628a..ecb86875d6 100644
--- a/compiler/optimizing/common_arm.h
+++ b/compiler/optimizing/common_arm.h
@@ -146,6 +146,12 @@ inline vixl::aarch32::Register InputRegister(HInstruction* instr) {
return InputRegisterAt(instr, 0);
}
+inline vixl::aarch32::DRegister DRegisterFromS(vixl::aarch32::SRegister s) {
+ vixl::aarch32::DRegister d = vixl::aarch32::DRegister(s.GetCode() / 2);
+ DCHECK(s.Is(d.GetLane(0)) || s.Is(d.GetLane(1)));
+ return d;
+}
+
inline int32_t Int32ConstantFrom(HInstruction* instr) {
if (instr->IsIntConstant()) {
return instr->AsIntConstant()->GetValue();