summaryrefslogtreecommitdiffstats
path: root/js/src/jit/InlinableNatives.h
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit/InlinableNatives.h')
-rw-r--r--js/src/jit/InlinableNatives.h166
1 files changed, 166 insertions, 0 deletions
diff --git a/js/src/jit/InlinableNatives.h b/js/src/jit/InlinableNatives.h
new file mode 100644
index 000000000..89c2ff0a4
--- /dev/null
+++ b/js/src/jit/InlinableNatives.h
@@ -0,0 +1,166 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ * vim: set ts=8 sts=4 et sw=4 tw=99:
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef jit_InlinableNatives_h
+#define jit_InlinableNatives_h
+
+#define INLINABLE_NATIVE_LIST(_) \
+ _(Array) \
+ _(ArrayIsArray) \
+ _(ArrayJoin) \
+ _(ArrayPop) \
+ _(ArrayShift) \
+ _(ArrayPush) \
+ _(ArraySlice) \
+ _(ArraySplice) \
+ \
+ _(AtomicsCompareExchange) \
+ _(AtomicsExchange) \
+ _(AtomicsLoad) \
+ _(AtomicsStore) \
+ _(AtomicsAdd) \
+ _(AtomicsSub) \
+ _(AtomicsAnd) \
+ _(AtomicsOr) \
+ _(AtomicsXor) \
+ _(AtomicsIsLockFree) \
+ \
+ _(MathAbs) \
+ _(MathFloor) \
+ _(MathCeil) \
+ _(MathRound) \
+ _(MathClz32) \
+ _(MathSqrt) \
+ _(MathATan2) \
+ _(MathHypot) \
+ _(MathMax) \
+ _(MathMin) \
+ _(MathPow) \
+ _(MathRandom) \
+ _(MathImul) \
+ _(MathFRound) \
+ _(MathSin) \
+ _(MathTan) \
+ _(MathCos) \
+ _(MathExp) \
+ _(MathLog) \
+ _(MathASin) \
+ _(MathATan) \
+ _(MathACos) \
+ _(MathLog10) \
+ _(MathLog2) \
+ _(MathLog1P) \
+ _(MathExpM1) \
+ _(MathSinH) \
+ _(MathTanH) \
+ _(MathCosH) \
+ _(MathASinH) \
+ _(MathATanH) \
+ _(MathACosH) \
+ _(MathSign) \
+ _(MathTrunc) \
+ _(MathCbrt) \
+ \
+ _(RegExpMatcher) \
+ _(RegExpSearcher) \
+ _(RegExpTester) \
+ _(IsRegExpObject) \
+ _(RegExpPrototypeOptimizable) \
+ _(RegExpInstanceOptimizable) \
+ _(GetFirstDollarIndex) \
+ \
+ _(String) \
+ _(StringCharCodeAt) \
+ _(StringFromCharCode) \
+ _(StringFromCodePoint) \
+ _(StringCharAt) \
+ \
+ _(IntrinsicStringReplaceString) \
+ _(IntrinsicStringSplitString) \
+ \
+ _(ObjectCreate) \
+ \
+ _(SimdInt32x4) \
+ _(SimdUint32x4) \
+ _(SimdInt16x8) \
+ _(SimdUint16x8) \
+ _(SimdInt8x16) \
+ _(SimdUint8x16) \
+ _(SimdFloat32x4) \
+ _(SimdBool32x4) \
+ _(SimdBool16x8) \
+ _(SimdBool8x16) \
+ \
+ _(TestBailout) \
+ _(TestAssertFloat32) \
+ _(TestAssertRecoveredOnBailout) \
+ \
+ _(IntrinsicUnsafeSetReservedSlot) \
+ _(IntrinsicUnsafeGetReservedSlot) \
+ _(IntrinsicUnsafeGetObjectFromReservedSlot) \
+ _(IntrinsicUnsafeGetInt32FromReservedSlot) \
+ _(IntrinsicUnsafeGetStringFromReservedSlot) \
+ _(IntrinsicUnsafeGetBooleanFromReservedSlot) \
+ \
+ _(IntrinsicIsCallable) \
+ _(IntrinsicIsConstructor) \
+ _(IntrinsicToObject) \
+ _(IntrinsicIsObject) \
+ _(IntrinsicIsWrappedArrayConstructor) \
+ _(IntrinsicToInteger) \
+ _(IntrinsicToString) \
+ _(IntrinsicIsConstructing) \
+ _(IntrinsicSubstringKernel) \
+ _(IntrinsicDefineDataProperty) \
+ _(IntrinsicObjectHasPrototype) \
+ \
+ _(IntrinsicIsArrayIterator) \
+ _(IntrinsicIsMapIterator) \
+ _(IntrinsicIsSetIterator) \
+ _(IntrinsicIsStringIterator) \
+ _(IntrinsicIsListIterator) \
+ \
+ _(IntrinsicGetNextMapEntryForIterator) \
+ \
+ _(IntrinsicGetNextSetEntryForIterator) \
+ \
+ _(IntrinsicArrayBufferByteLength) \
+ _(IntrinsicPossiblyWrappedArrayBufferByteLength) \
+ \
+ _(TypedArrayConstructor) \
+ _(IntrinsicIsTypedArray) \
+ _(IntrinsicIsPossiblyWrappedTypedArray) \
+ _(IntrinsicTypedArrayLength) \
+ _(IntrinsicPossiblyWrappedTypedArrayLength) \
+ _(IntrinsicSetDisjointTypedElements) \
+ \
+ _(IntrinsicObjectIsTypedObject) \
+ _(IntrinsicObjectIsTransparentTypedObject) \
+ _(IntrinsicObjectIsOpaqueTypedObject) \
+ _(IntrinsicObjectIsTypeDescr) \
+ _(IntrinsicTypeDescrIsSimpleType) \
+ _(IntrinsicTypeDescrIsArrayType)\
+ _(IntrinsicSetTypedObjectOffset)
+
+struct JSJitInfo;
+
+namespace js {
+namespace jit {
+
+enum class InlinableNative : uint16_t {
+#define ADD_NATIVE(native) native,
+ INLINABLE_NATIVE_LIST(ADD_NATIVE)
+#undef ADD_NATIVE
+};
+
+#define ADD_NATIVE(native) extern const JSJitInfo JitInfo_##native;
+ INLINABLE_NATIVE_LIST(ADD_NATIVE)
+#undef ADD_NATIVE
+
+} // namespace jit
+} // namespace js
+
+#endif /* jit_InlinableNatives_h */