From c032e74b57d31861b6bb55500016ebb5476eb142 Mon Sep 17 00:00:00 2001 From: "xueliang.zhong" Date: Mon, 28 Mar 2016 16:44:32 +0100 Subject: 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 --- compiler/optimizing/common_arm.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'compiler/optimizing/common_arm.h') 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(); -- cgit v1.2.3-59-g8ed1b