summaryrefslogtreecommitdiff
path: root/runtime/quick/inline_method_analyser.h
diff options
context:
space:
mode:
author Aart Bik <ajcbik@google.com> 2016-01-25 14:20:58 -0800
committer Aart Bik <ajcbik@google.com> 2016-01-26 10:18:42 -0800
commit59c9454b92c2096a30a2bbdffb64edf33dbdd916 (patch)
treee9063a473e7e96a647917c1365c172d927c7d87b /runtime/quick/inline_method_analyser.h
parent8881c422743ac4ffd3d594420fec078d896dd05f (diff)
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
Diffstat (limited to 'runtime/quick/inline_method_analyser.h')
-rw-r--r--runtime/quick/inline_method_analyser.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/runtime/quick/inline_method_analyser.h b/runtime/quick/inline_method_analyser.h
index ca456c2861..1bb816bb20 100644
--- a/runtime/quick/inline_method_analyser.h
+++ b/runtime/quick/inline_method_analyser.h
@@ -37,13 +37,21 @@ class MethodVerifier;
enum InlineMethodOpcode : uint16_t {
kIntrinsicDoubleCvt,
kIntrinsicFloatCvt,
+ kIntrinsicFloatIsInfinite,
+ kIntrinsicDoubleIsInfinite,
+ kIntrinsicFloatIsNaN,
+ kIntrinsicDoubleIsNaN,
kIntrinsicReverseBits,
kIntrinsicReverseBytes,
kIntrinsicBitCount,
+ kIntrinsicCompare,
+ kIntrinsicHighestOneBit,
+ kIntrinsicLowestOneBit,
kIntrinsicNumberOfLeadingZeros,
kIntrinsicNumberOfTrailingZeros,
kIntrinsicRotateRight,
kIntrinsicRotateLeft,
+ kIntrinsicSignum,
kIntrinsicAbsInt,
kIntrinsicAbsLong,
kIntrinsicAbsFloat,