From 59c9454b92c2096a30a2bbdffb64edf33dbdd916 Mon Sep 17 00:00:00 2001 From: Aart Bik Date: Mon, 25 Jan 2016 14:20:58 -0800 Subject: Recognize common utilities as intrinsics. Rationale: Recognizing these method calls as intrinsics already has major advantages (compiler knows about no-side-effects/no-throw properties). Next step is, of course, to implement these with native instructions on each architecture. Change-Id: I06fd12973238caec00d67b31b195d7f8807a538e --- compiler/optimizing/intrinsics_x86.cc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'compiler/optimizing/intrinsics_x86.cc') diff --git a/compiler/optimizing/intrinsics_x86.cc b/compiler/optimizing/intrinsics_x86.cc index 3f5688b0db..acc40bc998 100644 --- a/compiler/optimizing/intrinsics_x86.cc +++ b/compiler/optimizing/intrinsics_x86.cc @@ -2593,11 +2593,27 @@ void IntrinsicCodeGeneratorX86::Visit ## Name(HInvoke* invoke ATTRIBUTE_UNUSED) UNIMPLEMENTED_INTRINSIC(MathRoundDouble) UNIMPLEMENTED_INTRINSIC(ReferenceGetReferent) +UNIMPLEMENTED_INTRINSIC(SystemArrayCopy) + +UNIMPLEMENTED_INTRINSIC(FloatIsInfinite) +UNIMPLEMENTED_INTRINSIC(DoubleIsInfinite) +UNIMPLEMENTED_INTRINSIC(FloatIsNaN) +UNIMPLEMENTED_INTRINSIC(DoubleIsNaN) + +UNIMPLEMENTED_INTRINSIC(IntegerCompare) +UNIMPLEMENTED_INTRINSIC(LongCompare) +UNIMPLEMENTED_INTRINSIC(IntegerHighestOneBit) +UNIMPLEMENTED_INTRINSIC(LongHighestOneBit) +UNIMPLEMENTED_INTRINSIC(IntegerLowestOneBit) +UNIMPLEMENTED_INTRINSIC(LongLowestOneBit) +UNIMPLEMENTED_INTRINSIC(IntegerSignum) +UNIMPLEMENTED_INTRINSIC(LongSignum) + +// Rotate operations are handled as HRor instructions. UNIMPLEMENTED_INTRINSIC(IntegerRotateLeft) UNIMPLEMENTED_INTRINSIC(IntegerRotateRight) UNIMPLEMENTED_INTRINSIC(LongRotateRight) UNIMPLEMENTED_INTRINSIC(LongRotateLeft) -UNIMPLEMENTED_INTRINSIC(SystemArrayCopy) #undef UNIMPLEMENTED_INTRINSIC -- cgit v1.2.3-59-g8ed1b